[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Seppo Mustonen |
---|---|
Sähköposti: | - |
Päiväys: | 17.5.2004 12:48 |
Kuten "Survo ja minä" -kirjan viimeisesä luvussa totean, nykyisen Survon kantamuoto (ensimmäinen C-kielinen versio SURVO 84C) lähti liikkeelle kesällä 1985 kahdesta koeohjelmasta, joista syntyivät Survon operaatiot DER ja ESTIMATE. Käytettyäni edeltävien Survojen ohjelmointiin Basic-kieltä, joka eräiden silloisten "asiantuntijoiden" väitteiden mukaan "pilaa aivot", katsoin aiheelliseksi C-kieltä opiskellessani koetella kuntoani mahdollisimman haastavalla tehtävällä. Mielenkiintoinen kokeilukohde olikin yhdistelmä DER, ESTIMATE, jollaisen olin toteuttanut jo muutamaa vuotta aikaisemmin Basic-Survossa. DER tekee symbolista derivointia, mikä on melkoista merkkijonojen pyöritystä ja siitä hyötyy ESTIMATE, jossa suurin ohjelmoinnillinen vaikeus on saada käyttäjän antamat mallilausekkeet (ja niiden derivaatat) tulkittua ja laskettua mahdollisimman nopeasti jopa tuhansia kertoja erilaisten numeeristen optimointimenetelmien yhteydessä. ESTIMATE on ollut ilmeisesti ensimmäinen regressioanalyysiohjelma, jossa mallifunktion derivaatat lasketaan symbolisesti (eikä vain numeerisina likiarvoina kuten muissa silloisissa tilasto-ohjelmissa). Tästä on paljon hyötyä sekä tarkkuuden että nopeuden kannalta. Ohjelma myös pystyy toisen kertaluvun derivaattojen perusteella mm. päättelemään itse, onko malli parametrien suhteen lineaarinen vai ei ja valitsemaan sen mukaan sopivimman laskentatavan. Alkuvaiheista on kulunut nyt 19 vuotta eli ESTIMATE on tullut täysi-ikäiseksi. Jonkin verran olen sitä kasvattanut vuosien varrella mm. lisäämällä uusia optimointialgoritmeja ja kätevöittämällä mallien merkintöjä "aaltosulkulausekkeilla", mutta muuten ohjelman perusmuoto ja toteutustapa on säilynyt alkuperäisenä. Kuten Survon dokumentoinnista (kts. esim. START -> "Survo-kirjan esimerkit" -> /EX-P183 - /EX-P195) näkyy, ESTIMATE on hyvin yleinen työväline, jonka avulla saattaa käsitellä monenlaisia regressiomalleja ja harrastaa suurimman uskottavuuden (maximum likelihood) estimointia tilastollisilla aineistoilla, joissa peräkkäiset havainnot ovat toisistaan riippumattomia. Kuten viimeaikaisista viesteistäni (AR-mallien käsittely ESTIMATE:lla) ilmenee, ESTIMATEn avulla kyetään käsittelemään myös rajoitetusti aikasarja-aineistoja, joissa peräkkäiset havainnot eivät enää ole toisistaan riippumattomia. Olen nyt yleistänyt tätä aikasarjapuolta niin, että myös yleisiä ARMA(p,q)-malleja voidaan laskea ESTIMATElla. Tämän vuoksi - ja siitä lienee hyötyä muissakin sovelluksissa - ESTIMATE-ohjelmaa on laajennettu kolmella tavalla, joista yksi on välttämätön ja muut työskentelyä helpottavia. Välttämätön laajennus on eräänlainen takaisinkytkentä, joka on toteutettu UPDATE-täsmennyksenä. Sen selittämiseksi kertaan, millaisesta tilanteesta on kysymys. Yleinen ARMA(p,q)- tai oikeastaan ARMAX(p,q)-malli on (1) Y = X*beta + u, missä Y on selitettävän muuttujan n-vektori, X on m selittäjän n*m-matriisi, beta on regressiokertoimien m-vektori, u on jäännöstermien u(1),...,u(n) n-vektori ja j. havaintoon liittyvä virhetermi u(j) riippuu p edellisestä virhetermistä u(j-1),...,u(j-p) ja q riippumattomasta N(0,s^2)-jakautuneesta termistä e(j),e(j-1),...,e(j-q) seuraavasti (2) 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. Itse asiassa uudistus yltää samalla epälineaarisiin malleihin, joissa "ulkoisten" muuttujien osa X*beta voidaan korvata millä tahansa derivoituvalla funktiolla f(X,beta). Mallin estimoinnissa käytetään nyt alkupään virhetermien ja havaintojen suhteen ehdollista suurimman uskottavuuden menetelmää, jossa uskottavuusfunktion logaritmi on havaintojen suhteen summa lausekkeista (3) -0.5*(log(s^2)+e(j)^2/s^2), missä e(j):t määräytyvät yhtälöstä (2) ja edelleen u(j):t yhtälöstä (1). (Kts. esim. Hamilton: Time Series Analysis, 1994, luku 5.6, jossa tarkastellaan erikoistapausta Y=c+u.) Koska e(j) riippuu edeltävistä arvoista e(j-1),...,e(j-q), maksimoitaessa uskottavuusfunktion logaritmia muuttujan e (vaikka se ei ole "havaittava" muuttuja) arvot tulee päivittää iteratiivisessa laskentaprosessissa aina, kun estimoitavien parametrien s,beta,r(1),...,r(p),a(1),...,a(q) arvot muuttuvat. ESTIMATE-ohjelmaa varten tulee tällöin varata alkuperäiseen aineistoon lisämuuttuja (esim. EPS), jonka arvot ovat ennen laskentaa nollia ja jota ESTIMATE päivittää jatkuvasti laskennan aikana. Tämä päivitys ja lopullisten e(j)-arvojen tallennus (EPS-muuttujaan) tapahtuu uuden UPDATE-täsmennyksen avulla. Esim. mallissa Y=b0+b1*X1+b2*X2+b3*X3+b4*X4+u, missä u noudattaa rakennetta ARMA(3,1), ESTIMATE-kaavio kirjoitetaan seuraavasti: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 *{A0}=Y-b0-b1*X1-b2*X2-b3*X3-b4*X4 12 *{AR1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1]) 13 *{AR2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2]) 14 *{AR3}=r3*(Y[-3]-b0-b1*X1[-3]-b2*X2[-3]-b3*X3[-3]-b4*X4[-3]) 15 *{EPS}={A0}-{AR1}-{AR2}-{AR3}-a1*EPS[-1] 16 *UPDATE=EPS 17 * 18 *MODEL ARMA31 19 *LOGDENSITY=-0.5*(log(s*s)+({EPS})^2/(s*s)) 20 * 21 *ESTIMATE data,ARMA31,CUR+1 22 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Malli ARMA31 (rivit 18-19) määritellään kaavan (3) mukaisesti ja {EPS}-lauseke eli (2) ratkaistuna e(j):n suhteen on rivillä 15. Mallin eri komponentit (aaltosulkumerkinnöin) löytyvät riveiltä 11-14. Täsmennys UPDATE=EPS pitää huolta siitä, että ESTIMATE päivittää parametriarvojen vaihtuessa muuttujaa EPS vastaavan aaltosulku- lausekkeen {EPS} (rivi 15) mukaisesti ja tallettaa lopulliset arvot havaintoaineistoon muuttujana EPS. UPDATE-täsmennys sallii jopa usean päivitettävän muuttujan luettelon; tämä saattaa olla hyödyksi vielä yleisempien mallien käsittelyssä. UPDATE-täsmennyksen ohella toinen yleistys on se, että aaltosulku- lausekkeita voi esiintyä sisäkkäin. Tämä edelleen lyhentää ja selkeyttää merkintöjä. Esim. {EPS} rivillä 15 on määritelty usean muun aaltosulku- lausekkeen avulla. ESTIMATE avaa nämä lausekkeet täysin mekaanisesti, jolloin on pidettävä huolta siitä, että ne ympäröidään suluilla tarvittaessa kuten ({EPS})^2 itse mallin määrittelyssä rivillä 19. Koska en ole itse harrastanut aikasarja-analyysia enkä ole aikaisemmin perehtynyt ARMA-malleihin, on ollut yllättävää havaita, miten vaikeata saattaa olla "oikeiden" tulosten saaminen jo silloin, kun p+q on luokkaa 3 tai 4. Tulosten epätarkkuuteen vaikuttaa tiettyjen teoreettisten ongelmien ohella luonnollisesti aineiston koko. Tekemieni (epäjärjestelmällisten) simulointikokeiden perusteella vaikuttaa siltä, että esim. muutaman sadan havainnon aineistoilla, jotka todella noudattavat mallia, ulkoisten muuttujien (X) regressiokertoimet (beta) ovat kyllä tarkempia kuin tavalliset pienimmän neliösumman estimaatit, mutta ARMA(p,q)-parametrit jäävät epätarkoiksi siitä syystä, että ne kilpailevat toistensa kanssa. Tämä näkyy näiden estimaattien välisistä korrelaatiokertoimista, jotka ovat huomattavan suuria (jotkut jopa luokkaa 0.95). Nämäkin parametrit kyllä tarkentuvat, mutta vasta silloin, kun aineiston koko on tuhansia. Ehkä tämä on kokemattomuuttani, mutta jään toistaiseksi hieman ihmettelemään, mitä virkaa näin mutkikkailla malleilla on esim. tutkittaessa lyhyitä alle parin sadan havainnon taloudellisia aikasarja-aineistoja. Havaintomäärästä riippumatta mallien laskentaan liittyy käytännön ongelmia, sillä uskottavuusfunktio on monihuippuinen. Tällöin vaanii vaara, että numeerisessa optimoinnissa päädytään lokaaliin maksimiin globaalin maksimin asemasta. Jostain on siis hankittava hyvät alkuarvot estimoitaville parametreille. Tavallinen OLS-estimointi antaa sopivat alkuarvot regressiokertoimille beta ja jäännöshajonnalle s. Varsinaisten ARMA-parametrien alkuarvot on paremman puutteessa etsittävä raa'alla systemaattisella haulla ja se saattaa viedä huomattavasti enemmän aikaa kuin lopullinen tarkentava estimointi. ESTIMATE-operaatiossa METHOD=G tarjoaa keinon tuohon alkuarvojen systemaattiseen metsästykseen. Olen parantanut tätä toimintaa siten, että käyttäjän annettua kullekin parametrille haarukointi- välin ja askelpituuden, ESTIMATE ilmoittaa ennen pitkää mm. "päivämäärän ja kellonajan", milloin metsästys tulee päättymään. Seuraava simulointikoe osoittaa, miten ESTIMATE-laajennukset toimivat ARMAX-mallien estimoinnissa. Simulointikoe ------------- Luodaan ARMAX(3,1)-mallia noudattava 200 havainnon aineisto ja tehdään siitä laskennallisia kokeita. ARMA(3,1)-mallin mukaisen jäännöstermin U generointi: Jotta saman voisi tehdä eri ARMA-rakenteilla, esitän tässä yleisen menettelyn, jossa AR- ja MA-rakenteet annetaan matriiseina. MATRIX AR /// AR r1 0.7 r2 -0.35 r3 0.2 MATRIX MA /// MA a1 0.3 s=1 / jäännöshajonta MAT SAVE AR MAT SAVE MA MAT DIM AR /* rowAR=3 colAR=1 MAT DIM MA /* rowMA=1 colMA=1 rankMA=1 FILE CREATE U,24,2 FIELDS: 1 N 8 U 2 N 8 E END FILE INIT U,300 S1=for(i=1)to(rowAR)sum(MAT_AR(i)*U[-i]) S2=for(i=1)to(rowMA)sum(MAT_MA(i)*E[-i]) U=if(ORDER<4)then(0)else(U1) U1=S1+E+S2 / rakenne (2) E=s*N.G(0,1,rand(2004)) / E noudattaa jakaumaa N(0,s^2). VAR U,E TO U / Luodaan 300 U-arvoa. ....................................................................... Rakenteen vakiinnuttamiseksi poistetaan 100 ensimmäistä havaintoa: FILE COPY U TO NEW TEMP / IND=ORDER,101,300 Tiedostossa TEMP on nyt 200 ARMA(3,1)-arvoa U. ....................................................................... Ulkoiset muuttujat: 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 MNSIMUL R,*,ARMA31,200,0 / NEWSPACE=16,4 VAR U,RES,EPS TO ARMA31 U=0 RES=0 EPS=0 ....................................................................... Kopioidaan U-arvot tiedostoon ARMA31: FILE COPY TEMP TO ARMA31 / VARS=U MATCH=# ....................................................................... Lasketaan selitettävä muuttuja Y: VAR Y=1+X1+X2+X3+X4+U TO ARMA31 Kaikki regressioparametrit on valittu ykkösiksi. ....................................................................... Tavallinen OLS-estimointi: MASK=XXXX-R-Y REGDIAG ARMA31,CUR+1 / DWN=10000 MAXLAG=6 Regression diagnostics on data ARMA31: N=200 Regressand Y # of regressors=5 (Constant term included) Condition number of scaled X: k=1.70476 Variable Regr.coeff. Std.dev. t Constant 1.0895911 0.1040909 10.468 X1 1.1860186 0.1206738 9.8283 X2 1.0400418 0.1095944 9.4899 X3 0.8172322 0.1102408 7.4132 X4 1.0348647 0.1212199 8.5371 Variance of regressand Y=9.117596756 df=199 Residual variance=2.121979121 df=195 R=0.8786 R^2=0.7719 Durbin-Watson=0.700 (P=0.0000) Autocorr>0 Lag Autocorr. DW P(positive) P(negative) s.e. of P 1 0.6468 0.7001 0.0000 1.0000 - 2 0.1904 1.5852 0.0015 0.9985 0.0004 3 0.0599 1.8384 0.1511 0.8489 0.0036 4 0.1039 1.7379 0.0521 0.9479 0.0022 5 0.1484 1.6116 0.0057 0.9943 0.0008 6 0.1464 1.6054 0.0072 0.9928 0.0008 Randomized tests are based on DW values. ....................................................................... ARMA(3,1)-mallin estimointi, kun tunnetaan "oikeat" parametrit: s=1 b0=1 b1=1 b2=1 b3=1 b4=1 r1=0.7 r2=-0.35 a1=0.3 {A0}=Y-b0-b1*X1-b2*X2-b3*X3-b4*X4 {AR1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1]) {AR2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2]) {AR3}=r3*(Y[-3]-b0-b1*X1[-3]-b2*X2[-3]-b3*X3[-3]-b4*X4[-3]) {EPS}={A0}-{AR1}-{AR2}-{AR3}-a1*EPS[-1] UPDATE=EPS MODEL ARMA31 LOGDENSITY=-0.5*(log(s*s)+({EPS})^2/(s*s)) ESTIMATE ARMA31,ARMA31,CUR+1 / PRIND=0 METHOD=D RESULTS=0 Estimated parameters of model ARMA31: s=0.938584 (0.0476877) b0=1.03014 (0.14825) b1=1.07471 (0.0586853) b2=1.03809 (0.0507586) b3=0.941863 (0.0526008) b4=1.01365 (0.0616332) r1=0.740276 (0.197814) r2=-0.408463 (0.196859) r3=0.213487 (0.10201) a1=0.369526 (0.207163) n=197 log(L)=-86.687588 nf=297 Parametrien korrelaatiot on talletettuna matriisitiedostoon EST_CORR.M: MAT LOAD EST_CORR.M,12.12,CUR+1 MATRIX EST_CORR.M R_of_parameter_estimates /// s b0 b1 b2 b3 b4 r1 r2 r3 a1 s 1.00 -0.02 -0.06 -0.09 0.04 -0.04 -0.09 0.09 -0.07 0.09 b0 -0.02 1.00 -0.01 -0.04 -0.02 0.02 -0.07 0.06 -0.09 0.06 b1 -0.06 -0.01 1.00 -0.08 -0.22 -0.23 0.09 -0.10 0.08 -0.09 b2 -0.09 -0.04 -0.08 1.00 -0.19 -0.25 0.10 -0.09 0.06 -0.07 b3 0.04 -0.02 -0.22 -0.19 1.00 -0.18 0.11 -0.11 0.12 -0.11 b4 -0.04 0.02 -0.23 -0.25 -0.18 1.00 0.06 -0.08 0.10 -0.05 r1 -0.09 -0.07 0.09 0.10 0.11 0.06 1.00 -0.95 0.79 -0.94 r2 0.09 0.06 -0.10 -0.09 -0.11 -0.08 -0.95 1.00 -0.88 0.89 r3 -0.07 -0.09 0.08 0.06 0.12 0.10 0.79 -0.88 1.00 -0.74 a1 0.09 0.06 -0.09 -0.07 -0.11 -0.05 -0.94 0.89 -0.74 1.00 ARMA-parametrien r1,r2,r3,a1 välillä on voimakkaita korrelaatioita, jotka heikentävät yksittäisten parametrien tarkkuutta. Muiden parametrien (s,b0,b1,b2,b3,b4) keskinäiset korrelaatiot ja niiden korrelaatiot ARMA-parametrien suhteen ovat nollia tai hyvin lieviä. ....................................................................... Todellisuudessa ei ole tietenkään mahdollista lähteä liikkeelle oikeista parametrinarvoista. Unohdetaan ne ja otetaan parametreille s,b0-b4 alkuarvot OLS-tuloksista. ARMA-parametrien alkuarvot etsitään systemaattisella haulla (METHOD=G) seuraavasti: {A0}=Y-b0-b1*X1-b2*X2-b3*X3-b4*X4 {AR1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1]) {AR2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2]) {AR3}=r3*(Y[-3]-b0-b1*X1[-3]-b2*X2[-3]-b3*X3[-3]-b4*X4[-3]) {EPS}={A0}-{AR1}-{AR2}-{AR3}-a1*EPS[-1] UPDATE=EPS #s=1.46 sqrt(2.12)=1.456... #b0=1.0895911 #b1=1.1860186 # parametrin edessä merkitsee, että #b2=1.0400418 parametria pidetään estimoinnissa vakiona. #b3=0.8172322 #b4=1.0348647 r1=-0.9,0.9,0.1 / min,max,askel r2=-0.9,0.9,0.1 r3=-0.9,0.9,0.1 a1=0,0.9,0.1 MODEL ARMA31 LOGDENSITY=-0.5*(log(s*s)+({EPS})^2/(s*s)) ESTIMATE ARMA31,ARMA31,CUR+1 / PRIND=0 METHOD=G Estimated parameters of model ARMA31: r1=0.7 r2=-0.4 r3=0.2 a1=0.3 n=197 log(L)=-117.422775 nf=589 Hauan aikana ESTIMATE kertoo prosessin etenemisestä seuraavaan tyyliin: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Grid search: 4 parameters, 68590 combinations 15% done, 1.2 minutes left, Ready on Sun May 16 18:01:04 2004 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tämä haku antoi ehkä turhan hyvät alkuarvot, kun todelliset arvot sattuvat olemaan "kauniita" desimaalilukuja. ....................................................................... Lopullinen estimointi saaduilla alkuarvoilla: s=1.46 Huom. jos asetetaan #s=1, saadaan pns-ratkaisu. b0=1.0895911 b1=1.1860186 b2=1.0400418 b3=0.8172322 b4=1.0348647 r1=0.7 r2=-0.4 r3=0.2 a1=0.3 {A0}=Y-b0-b1*X1-b2*X2-b3*X3-b4*X4 {AR1}=r1*(Y[-1]-b0-b1*X1[-1]-b2*X2[-1]-b3*X3[-1]-b4*X4[-1]) {AR2}=r2*(Y[-2]-b0-b1*X1[-2]-b2*X2[-2]-b3*X3[-2]-b4*X4[-2]) {AR3}=r3*(Y[-3]-b0-b1*X1[-3]-b2*X2[-3]-b3*X3[-3]-b4*X4[-3]) {EPS}={A0}-{AR1}-{AR2}-{AR3}-a1*EPS[-1] UPDATE=EPS MODEL ARMA31 LOGDENSITY=-0.5*(log(s*s)+({EPS})^2/(s*s)) ESTIMATE ARMA31,ARMA31,CUR+1 / PRIND=0 METHOD=D RESULTS=0 Estimated parameters of model ARMA31: s=0.921593 (0.0452761) b0=1.11223 (0.165451) b1=1.10293 (0.0500699) b2=1.06283 (0.0431462) b3=0.929833 (0.0455447) b4=1.02968 (0.0532104) r1=0.917985 (0.196195) r2=-0.598676 (0.194326) r3=0.282569 (0.103455) a1=0.176113 (0.207149) n=197 log(L)=-85.896968 nf=429 Tulos ei ole sama kuin "oikeista" alkuarvoista laskettu, mutta log(L), jota maksimoidaan, on jopa hiukan suurempi. Suurista ARMA-parametrien korrelaatioista johtuen löytyy siis useita samanveroisia ratkaisuja. ....................................................................... Tarkistetaan jäännöstermin autokorrelaatiot: 2/sqrt(200)=0.14142135623731 (95%:n luottamusraja) XCORR ARMA31,EPS,EPS,CUR+1 Autocorrelations of EPS in data ARMA31: Lag EPS 0 1.0000 1 -0.0016 2 -0.0228 3 0.0294 4 -0.0111 5 -0.0328 6 0.1343 7 -0.0144 8 0.0278 9 -0.0323 10 -0.0084 11 -0.0325 12 -0.0164 Jäännöstermin jakauma on ilmeisen normaalinen ja sen keskiarvo on riittävällä tarkkuudella 0: STAT ARMA31,CUR+1 / VARS=EPS Basic statistics: ARMA31 N=200 Variable: EPS ~0 min=-2.958339 in obs.#118 max=2.796114 in obs.#60 mean=-0.01284 stddev=0.932929 skewness=-0.15215 kurtosis=0.594885 lower_Q=-0.523529 median=-0.0375 upper_Q=0.623077 up.limit f % class width=0.2 -2.8 2 1.0 ** -2.6 0 0.0 -2.4 0 0.0 -2.2 2 1.0 ** -2 2 1.0 ** -1.8 1 0.5 * -1.6 2 1.0 ** -1.4 5 2.5 ***** -1.2 4 2.0 **** -1 5 2.5 ***** -0.8 12 6.0 ************ -0.6 9 4.5 ********* -0.4 17 8.5 ***************** -0.2 20 10.0 ******************** 0 24 12.0 ************************ 0.2 24 12.0 ************************ 0.4 12 6.0 ************ 0.6 8 4.0 ******** 0.8 13 6.5 ************* 1 10 5.0 ********** 1.2 9 4.5 ********* 1.4 6 3.0 ****** 1.6 4 2.0 **** 1.8 3 1.5 *** 2 4 2.0 **** 2.2 1 0.5 * 2.4 0 0.0 2.6 0 0.0 2.8 1 0.5 * ....................................................................... Eräänlaisena tarkistuksena tein toistokokeen, jossa generoitiin ja estimoitiin (tähän tarkoitukseen laatimani sukron avulla) 1153 samaa rakennetta noudattavaa, riippumatonta aineistoa, joista tosin ulkoiset muuttujat X jätettiin pois ja joissa otoskoko oli 1000 eli suurempi kuin aikaisempi 200. Estimointi aloitettiin oikeista parametrien arvoista. Tehtiin siis 1153 ESTIMATE-ajoa, joista saatujen ARMA-parametri- estimaattien keskiarvot, hajonnat ja korrelaatiot olivat: Parametri Keskiarvo Hajonta Hajonta2 r1 0.701009 0.094905 0.090914 r2 -0.352247 0.090303 0.089673 r3 0.198876 0.047975 0.048813 a1 0.295993 0.095432 0.095100 Parametrien korrelaatiot: r1 r2 r3 a1 r1 1.00000 -0.94449 0.78525 -0.95311 r2 -0.94449 1.00000 -0.85645 0.92160 r3 0.78525 -0.85645 1.00000 -0.78005 a1 -0.95311 0.92160 -0.78005 1.00000 Hajonta2 tarkoittaa 200 havainnon aineistoista saatuja, ESTIMATEn antamia keskivirheitä kerrottuna otoskokojen suhteen neliöjuurella sqrt(200/1000), jolloin tulokset ovat vertailukelpoisia. Tulos osoittaa, että estimaatit ovat ainakin likimain harhattomia ja niiden hajonnat ja korrelaatiot vastaavat hyvin ESTIMATEn antamia. * * * Esimerkki osoittaa, että ARMA-mallien käsittelyyn liittyy ongelmia, vaikka rakenne tunnettaisiinkin etukäteen. Todellisissa aineistoissa myös tuo rakenne (arvot p ja q) joudutaan etsimään (esim. tarkastelemalla autokorrelaatioita ja osittais- autokorrelatioita). Useimmiten tilanne ei vastaa täsmälleen mitään ARMA-rakennetta, mikä vielä enemmän epämääräistää analyysia. -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!