Durbin-Watson-testin yleistys ja P-arvot

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 13.4.2004 11:44

On luonnollista yrittää soveltaa edellisessä viestissäni kuvaamaani
laskentatekniikkaa myös muiden kuin 1. kertaluvun autokorrelaatioiden
testaamiseen lineaarisen mallin residuaaleissa.

Ajattelin ensin perustaa toiminnan suoraan autokorrelaatioiden varaan,
mutta alustavat kokeilut osoittivat, että jo 1. kertaluvun tapauksessa
nollahypoteesi rho(1)=0 torjutaan silloin, kun se ei ole tosi,
tehokkaammin Durbin-Watsonin testisuureen D kuin itse autokorrelaatio-
kertoimen avulla. Tätä saattaa ounastella jo allaolevien lausekkeidenkin
perusteella.

Niinpä korkemman kertaluvun k autokorrelaation testaamisessa päädyin
käyttämääm yleistettyä DW-testisuuretta

        summa (r_i - r_i-k)^2
D(k) =  ---------------------    (erikoistapauksena D=D(1))
           summa (r_i)^2

k. kertaluvun autokorrelaatiokertoimen

         summa r_i*r_i-k
rho(k) = ---------------
          summa (r_i)^2

asemasta.

Satunnaistettu testausmenettely on täsmälleen sama kuin edellisessä
viestissä esittämäni.
Residuaalien autokorrelaatiot testataan kertalukuun k asti
lisätäsmennyksellä MAXLAG=k. DWN-täsmennys tarvitaan edelleen
osoittamaan koetoistojen määrää (min. 10000).

Tässä aikaisempi esimerkki muunneltuna yleisempää tilannetta varten:
.......................................................................
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 1000 havaintoa multinormaalijakaumasta N(0,R):
MNSIMUL R,*,DWKOE2,1000,0  / NEWSPACE=16,4

Määritellään muuttujat virhetermiä EPS ja mallin residuaaleja RES
varten:
VAR EPS,RES TO DWKOE2
EPS=0 RES=0
.......................................................................
Luodaan virhetermi autoregressiivisenä:
VAR EPS TO DWKOE2
EPS=if(ORDER<6)then(EPS2)else(EPS2-0.1*EPS[-3]-0.1*EPS[-5])
EPS2=N.G(0,1,rand(2004))

Lasketaan selitettävä muuttuja Y:
VAR Y=1+X1+X2+X3+X4+EPS TO DWKOE2

Teoreettiset regressiokertoimet ovat kaikki ykkösiä ja malliin liittyy
autoregressiivinen jäännöstermi, jossa on jonkin verran 2. ja 5.
kertaluvun autokorrelaatiota.
.......................................................................
Regressiomallin laskenta:
MASK=XXXX--Y / Mallin valinta
REGDIAG DWKOE2,CUR+1 / DWN=10000 MAXLAG=6
Regression diagnostics on data DWKOE2: N=1000
Regressand Y         # of regressors=5 (Constant term included)
Condition number of scaled X: k=1.75549
Variable Regr.coeff. Std.dev.     t
Constant  0.9800168  0.0308762     31.740
X1        1.0204639  0.0333812     30.570
X2        1.0032199  0.0336460     29.817
X3        1.0198269  0.0335827     30.368
X4        0.9848015  0.0349460     28.181
Variance of regressand Y=8.986305686 df=999
Residual variance=0.948503431 df=995
R=0.9460 R^2=0.8949 Durbin-Watson=1.989 (P=0.4331)
Lag   Autocorr. DW       P(positive)  P(negative)  s.e. of P
  1   -0.0007   1.9890   0.4331       0.5669       0.0050
  2    0.0035   1.9801   0.3878       0.6122       0.0049
  3   -0.1357   2.2572   1.0000       0.0000       -
  4    0.0074   1.9702   0.3465       0.6535       0.0048
  5   -0.0876   2.1598   0.9958       0.0042       0.0006
  6    0.0553   1.8714   0.0297       0.9703       0.0017

MAXLAG=6 tuottaa lopussa olevan taulukon, josta paljastuu
selvästi 3. ja 5. autokorrelaation esiintyminen. P-arvot
lasketaan D(k)-arvojen (DW) perusteella, mutta taulukossa esitetään
myös autokorrelaatiot. Viimeisenä ovat P-arvojen keskivirheet.
Aikaa laskentaan kului noin 4 sekuntia (1.6GHz:n koneella).

                        * * *
SAS-ohjelmistossa (AUTOREG) on tehdään vastaavia asioita tekniikalla,
joka on kuvattu mm. sivulla
www.msb.edu/training/statistics/sas/books/ets/chap4/sect24.htm 

Ilmenee, että D(k) saadaan (periaatteessa) esitettyä hyvin
yksinkertaisessa muodossa
       summa d_i*x_i
D(k) = ------------- ,
       summa (x_i)^2

missä d_1,d_2,.. ovat erään X-matriisista muodostetun luokkaa
n*n olevan matriisin singulaariarvoja ja riippuvat myös k:sta.
Laskenta jatkuu tästä muodosta kääntämällä karakteristinen funktio
ja suorittamalla numeerista integrointia.

Nykyisillä koneilla tämä kaikki menee kyllä läpi kohtuullisessa
ajassa kun havaintojen lukumäärä muutamia satoja, mutta ihmettelen,
mitä tapahtuu, jos n on vaikkapa 1000 tai suurempi. Pelkästään
singulaariarvojen laskenta vie minuutteja ja muistitilankin suhteen
saattaa tulla ongelmia.

Niinpä vakaa käsitykseni on se, että käyttämäni satunnaistettu menettely
on käytännössä kätevämpi ja nopeampi.

-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.