[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!