[viesti Survo-keskustelupalstalla (2001-2013)]
| Kirjoittaja: | Seppo Mustonen |
|---|---|
| Sähköposti: | - |
| Päiväys: | 19.4.2004 10:00 |
Äskettäisessä Durbin-Watson-testisuuretta koskevassa keskustelussa
esittämäni keinot (erityisesti mallin residuaalien tutkiminen
satunnaistettujen testien avulla) tuovat esille ongelman. Mitä tehdä,
jos residuaalit korreloivat.
Tiedetään, että tällöin esim. pienimmän neliösumman keinolla (LINREG ja
REGDIAG) lasketut regressiokertoimet ovat kyllä tarkentuvia mutta eivät
välttämättä harhattomia eivätkä yleensä tehokkaita.
Tarkempien estimaattien löytäminen edellyttää regressiomallin
Y = X*beta + u
virhetermin u mallintamista ja regressiomallin estimointia sen
perusteella. Jo mallin määrittelyyn puhumattakaan estimoinnista on
kehitetty lukuisia keinoja. Näihin tarkoituksiin on saatavilla mm.
aikasarja-analyysiin ja ekonometriaan erikoistuneita ohjelmia.
Survossa ei tällaisia erikoisohjelmia ei ole, mutta Survon ESTIMATE-
operaatiolla ("jolla voi tehdä melkein mitä tahansa") on mahdollista
saada tuloksia eräissä mallityypeissä.
Eräs aikasarja-analyysissa yleisimmin käytetty virhetermien u(j),
j=1,2,...,n rakenne on ns. ARMA(p,q) (huom. AR=autoregressive, MA=moving
average) eli j. havaintoon liittyvä virhetermi u(j) riippuu
p edellisestä virhetermistä u(j-1),...,u(j-p) ja q riippumattomasta
N(0,sigma^2)-jakautuneesta termistä e(j),e(j-1),...,e(j-q) seuraavasti
u(j)=r(1)*u(j-1)+...+r(p)*u(j-p)+e(j)+a(1)*e(j-1)+...+a(q)*e(j-q),
missä r(1),...,r(p) ja a(1),...,a(q) ovat tuntemattomia parametreja.
Jos riittää regressiokertoimien beta estimointi eikä olla kiinnostuneita
ARMA-mallin tarkemmasta rakenteesta, on apua tiedosta, että ARMA(p,q) on
korvattavissa yksinkertaisemmalla AR(p)- eli ARMA(p,0)- mallilla, kun p
valitaan kyllin suureksi.
Esim. ARMA(0,1)=MA(1), jossa 0<a(1)<1, on sama kuin AR(ääretön), kun
r-parametrit ovat
r(1)=a(1), r(2)=-a(1)^2, r(3)=a(1)^3, r(4)=-a(1)^4, ...
jolloin AR(p)-malli lähestyy nopeasti MA(1)-mallia varsinkin pienillä
arvoilla a(1).
AR(p)-rakenne on siistimpi
u(j)=r(1)*u(j-1)+...+r(p)*u(j-p)+e(j)
ja suorin tapa mallin
Y = X*beta + u
estimointiin on soveltaa pienimmän neliösumman keinoa epälineaariseen
malliin (huom. kääntäen u = Y - X*beta)
p
y(j) = x(j)*beta + summa r(i)*[y(j-i)-x(j-i)*beta] + e(j),
i=1
j=1,2,...,n,
missä x(j) tarkoittaa selittävien muuttujien x1,x2,...,xm j. havainnon
arvoja vaakavektorina.
Estimoitavat parametrit ovat regressiokertoimet beta (k kpl) ja
autokorrelaatiot r(1),...,r(p).
Tämän mallin estimointi tapahtuu esim. AR(2)-mallille käyttämällä
Survon ESTIMATE-operaatiota muodossa (tässä 4 selittäjää X1-X4 ja
Y selitettävänä):
.......................................................................
{A0}=b0+b1*X1+b2*X2+b3*X3+b4*X4
{A1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1])
{A2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2])
MODEL AR2
Y={A0}+{A1}+{A2}
ESTIMATE data,AR2,tulostusrivi
.......................................................................
ESTIMATE tunnistaa itse havaitut muuttujat Y,X1,...,X4 (datasta) ja
tulkitsee tuntemattomat merkinnät b0,b1,...,b4 ja r1,r2 estimoitaviksi
parametreiksi.
Malli on kätevä esittää nimeämällä eri komponentit aaltosuluissa
olevilla nimillä (tässä {A0},{A1},{A2}), jolloin mallin lauseke
saadaan ilmaistuksi hyvin lyhyesti.
Viivästetyt muuttujien arvot kuvataan kuten VAR-operaatiossakin.
Esim. Y[-2] on Y-muuttujan arvo 2 havaintoa aikaisemmin.
Mallin määrittelyä on helppo laajentaa (suuremmille p) ja harrastaa
jopa valikoivaa asettelua jättämällä jotkut {Ai}-komponentit pois.
Parametreille b saadaan yleensä hyvät alkuarvot suoraan tavallisesta
regressioanalyysitulostuksesta (LINREG, REGDIAG) ja autokorrelaatioille
alkuarvot voivat olla nollia (mikä on ESTIMATEssa oletusarvo).
Seuraava simulointikoe osoittaa joiltain osin, mistä on kysymys.
.......................................................................
Tehdään 4 muuttujan X1-X4 (teoreettinen) korrelaatiomatriisi R:
m=4 r=0.7
MAT R=CON(m,m,1-r)+IDN(m,m,r)
MAT RLABELS X TO R
MAT CLABELS X TO R
Generoidaan 400 havaintoa multinormaalijakaumasta N(0,R):
MNSIMUL R,*,ARKOE3,400,0 / NEWSPACE=16,4
Määritellään muuttujat virhetermiä EPS ja mallin residuaaleja RES
varten:
VAR EPS,RES TO ARKOE3
EPS=0 RES=0
.......................................................................
Luodaan virhetermi autoregressiivisenä:
VAR EPS TO ARKOE3
EPS=if(ORDER<4)then(EPS2)else(EPS2+0.5*EPS[-1]+0.2*EPS[-2]+0.1*EPS[-3])
EPS2=N.G(0,1,rand(2004))
Lasketaan selitettävä muuttuja Y:
VAR Y=1+X1+X2+X3+X4+EPS TO ARKOE3
Kyseessä on siis puhdas AR(3)-malli.
Koska ylläoleva generointi lähti liikkeelle tavallaan tyhjästä,
virhetermi EPS saavuttaa lopullisen, teorianmukaisen jakauman
vasta usean askeleen (havainnon) päästä.
Se vuoksi "hylätään" varmuuden vuoksi 100 ensimmäistä havaintoa:
.......................................................................
Kopioidaan jälkipään havainnot tilapäiseen tiedostoon TEMP:
FILE COPY ARKOE3 TO NEW TEMP / IND=ORDER,101,400
.......................................................................
Kopioidaan TEMP (300 havaintoa) takaisin (uudeksi) tiedostoksi AR3:
FILE COPY TEMP TO NEW ARKOE3
.......................................................................
Regressiomallin laskenta tavallisella pns-keinolla:
MASK=XXXX-RY
REGDIAG ARKOE3,CUR+1 / DWN=10000 MAXLAG=6
Regression diagnostics on data ARKOE3: N=300
Regressand Y # of regressors=5 (Constant term included)
Condition number of scaled X: k=1.84921
Variable Regr.coeff. Std.dev. t
Constant 1.2871094 0.0804307 16.003
X1 1.0383344 0.0891000 11.654
X2 1.0385475 0.0942840 11.015
X3 1.0684047 0.0872342 12.248
X4 0.9161202 0.0949423 9.6492
Variance of regressand Y=10.12514626 df=299
Residual variance=1.915495340 df=295
R=0.9019 R^2=0.8133 Durbin-Watson=0.579 (P=0.0000) Autocorr>0
Lag Autocorr. DW P(positive) P(negative) s.e. of P
1 0.6949 0.5791 0.0000 1.0000 -
2 0.5554 0.8279 0.0000 1.0000 -
3 0.4402 1.0334 0.0000 1.0000 -
4 0.4028 1.1032 0.0000 1.0000 -
5 0.3687 1.1675 0.0000 1.0000 -
6 0.3031 1.2988 0.0000 1.0000 -
Randomized tests are based on DW values.
DW-testit osoittavat todella voimakasta residuaalien korrelaatiota.
Tästä johtunee, että vakiotermi (Constant) on yli kolmen hajonnan
mitan päässä "oikeasta" arvostaan, mikä viittaa harhaisuuteen.
.......................................................................
Katsotaan, miten tulokset muuttuvat, kun virhetermi mallinnetaan
AR(3):n mukaisesti.
MASK=-----R / Residuaalit muuttujaan RES
AR(3)-mallin AR3 määrittely ESTIMATE-operaatiota varten:
{A0}=b0+b1*X1+b2*X2+b3*X3+b4*X4
{A1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1])
{A2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2])
{A3}=r3*(Y[-3]-b0-b1*X1[-3]-b2*X2[-3]-b3*X3[-3]-b4*X4[-3])
MODEL AR3
Y={A0}+{A1}+{A2}+{A3}
Regressiokertoimien alkuarvot otettuna REGDIAG-tulostuksesta:
b0=1.2871094
b1=1.0383344
b2=1.0385475
b3=1.0684047
b4=0.9161202
ESTIMATE ARKOE3,AR3,CUR+1 / METHOD=M IND=ORDER,4,300
Estimated parameters of model AR3:
b0=1.23811 (0.260582)
b1=1.00379 (0.0537421)
b2=1.07024 (0.0583898)
b3=1.044 (0.0515278)
b4=0.996647 (0.0557902)
r1=0.613275 (0.0597746)
r2=0.124937 (0.071651)
r3=0.0442013 (0.0614002)
n=294 rss=268.872625 R^2=0.90961 nf=153
Correlations:
b0 b1 b2 b3 b4 r1 r2 r3
b0 1.000 -0.010 -0.014 0.012 -0.003 -0.011 -0.008 -0.033
b1 -0.010 1.000 -0.178 -0.182 -0.184 -0.035 0.134 -0.156
b2 -0.014 -0.178 1.000 -0.172 -0.276 0.115 -0.230 0.176
b3 0.012 -0.182 -0.172 1.000 -0.241 0.077 -0.097 0.031
b4 -0.003 -0.184 -0.276 -0.241 1.000 -0.029 0.053 -0.028
r1 -0.011 -0.035 0.115 0.077 -0.029 1.000 -0.539 -0.113
r2 -0.008 0.134 -0.230 -0.097 0.053 -0.539 1.000 -0.535
r3 -0.033 -0.156 0.176 0.031 -0.028 -0.113 -0.535 1.000
Nyt regressiokertoimet ovat yleensä lähempänä oikeita arvojaan ja
kauniisti jopa keskivirheen mitan sisällä.
Myös autokorrelaatioparametrit näyttävät uskottavilta.
Yleistetyn mallin selitysosuus on kasvanut.
Mallin residuaalit eivät ole enää autokorreloituneita:
XCORR ARKOE3,RES,RES,CUR+1
Autocorrelations of RES in data ARKOE3:
Lag RES
0 1.0000
1 0.0064
2 -0.0138
3 -0.0662
4 0.0422
5 0.0858
6 0.0899
7 -0.0747
8 0.0351
9 -0.0664
10 0.0342
11 0.0008
12 -0.0019
Tässä tapauksessa tiedettiin, että p=3. Tositilanteissa p on tuntematon.
Silloin käytännössä lähdetään liikkeelle AR(1):stä ja kasvatetaan
askeltaen p:tä, kunnes mallin hyvyyttä kuvaavat indikaattorit eivät
enää parane ja residuaalit ovat "valkaistuneet" eli ne eivät ole
enää autokorreloituineita.
.......................................................................
AR(p)-mallien estimointi edellä esitetyllä pns-keinolla olisi
mahdollista saattaa esim. ESTIMATE-operaatiota hyödyntävän
sukron muotoon aivan yleisesti, mutta tässä vaiheessa en sellaista
ole tehnyt. Mielestäni äskeinen esimerkki riittää pohjaksi
muille vastaaville sovelluksille.
En ole tietoinen tämän menettelyn mahdollisista heikkouksista
muihin AR-mallien estimointimenetelmiin verrattuna.
Muut menetelmät ovat sekä teorian että laskennan kannalta yleensä
huomattavasti vaativampia eivätkä alan tutkijat näytä yksimielisiltä
eri menetelmien hyvyyden suhteen.
Olen mm. toistanut SAS-manuaalista löytyvän esimerkin
(Money Demand Model)
www.msb.edu/training/statistics/sas/books/ets/chap4/sect35.htm
jossa on käytetty AR(1)-mallin estimointiin suurimman uskottavuuden
menetelmää. Tulokset ovat tulkinnan kannalta riittävän yhtäpitäviä.
-Seppo
| Vastaukset: |
|---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!