AR-mallien käsittely ESTIMATE:lla

[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:
[ei vastauksia]

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!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.