[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Petri Palmu |
---|---|
Sähköposti: | - |
Päiväys: | 26.4.2007 13:08 |
Moi, (yhdistelin aiemmat viestit html-teknisestä ongelmasta johtuen) Tutkailin eri vaihtoehtoja keskistää muuttujia paneeliaineistossa (poikkileikkaus+aikasarjadata) siten, että muunnoksen jälkeen mitataan alkuperäisen muuttujan poikkeamaa ao. poikkileikkausyksikön keskiarvosta. Olen ollut siinä käsityksessä, että jos regressioanalyysissa spesifioidaan malli tyyppiä Y = a + b'X + c*^X^2 +e, niin keskistämällä X (>0) nuo kaksi muuttujaa X ja X*X ovat vähemmän korreloituneita, mikä on tietenkin hyvä homma parametrien estimoinnissa. Pohdiskelua herättää se, että tuo X:stä johdettu toisen asteen termi on erilainen keskistämättömän ja keskistetyn tapauksissa (vertautunee momenttiin ja keskusmomenttiin, kun aste on 2). Minulle epäselvää on, mitä tapahtuu, jos alkuperäinen muuttuja (alla Z) saa arvoja koko reaalilukuakselilla. Ja mitä tuo keskistetty toisen asteen termi sitten oikein kuvastaa eri luonteisissa tilanteissa... ESIM1: DATA _KOE1 X Z 1 .6 2 -3 3 .4 4 .5 5 -2 6 -1 7 0 8 1 9 2 10 -6 X esim ikä , Z esim. terveyden tilan ajallinen muutos FILE SHOW KOE1 FILE COPY _KOE1 TO NEW KOE1 ....................... FILE EXPAND KOE1,10,20 / huom kannattaa erottaa rajarivillä ..................... VAR XX=X*X TO KOE1 VAR Y=#CENTER(X) TO KOE1 VAR YY=Y*Y TO KOE1 VAR ZZ=Z*Z TO KOE1 VAR V=#CENTER(Z) TO KOE1 VAR VV=V*V TO KOE1 MODE=PS GPLOT KOE1 X,XX / TREND=[RED],0 GPLOT KOE1 Y,YY / GPLOT KOE1 Z,ZZ / GPLOT KOE1 V,VV / ............ CORR KOE1,CUR+1 / VARS=X,XX Means, std.devs and correlations of KOE1 N=10 Variable Mean Std.dev. X 5.500000 3.027650 XX 38.50000 34.17358 Correlations: X XX X 1.0000 0.9746 XX 0.9746 1.0000 CORR KOE1,CUR+1 / VARS=Y,YY Means, std.devs and correlations of KOE1 N=10 Variable Mean Std.dev. Y 0.000000 3.027650 YY 8.250000 7.659417 Correlations: Y YY Y 1.0000 0.0000 YY 0.0000 1.0000 CORR KOE1,CUR+1 / VARS=Z,ZZ Means, std.devs and correlations of KOE1 N=10 Variable Mean Std.dev. Z -0.750000 2.360438 ZZ 5.577000 11.05636 Correlations: Z ZZ Z 1.0000 -0.8548 ZZ -0.8548 1.0000 CORR KOE1,CUR+1 / VARS=V,VV Means, std.devs and correlations of KOE1 N=10 Variable Mean Std.dev. V 0.000000 2.360438 VV 5.014500 8.237530 Correlations: V VV V 1.0000 -0.7174 VV -0.7174 1.0000 Tuossa tilanteessa keskistäminen teki Y ja YY korreloimattomaksi, mutta V ja VV saatiin aikaan vain pieni parannus. Itse asiassa Z -> V tilanteessa homma voi mennä myös huonompaan suuntaan. ........................ Koodi: No joka tapauksessa, jos haluaa keskistää paneeliaineistoa, niin teknisesti keskistämishomman toivoisi yleistyvän tilanteeseen, jossa alkuperäiset muuttujat X1,X2, ... voivat sisältää puuttuvia havaintoja ja otoskoko ositteiden välillä saa vaihdella. / ACTIVATE + DATA __K1 ID X1 X2 Y Time 1 - 2 1 1 1 1 0.9 2 2 1 3.0 - 3 3 2 2 4 6 2 2 1 6 5 3 ID = poikkileikkausyksikön tunniste FILE COPY __K1 TO NEW _K1 ................................. FILE SORT _K1 BY ID TO K_OUT / tähän lopputulokset FILE SORT _K1 BY ID TO K1 MASKING MASK1 ID: A X1: B X2: B OTHERS: - END FILE MASK K1,MASK1,1 ....................... /AGGRE K1 BY ID TO TEMP1 FILE SHOW TEMP1 / MEAN-aggregated K1 FILE SHOW TEMP1 / MEAN-aggregated K1 FILE LOAD TEMP1 DATA TEMP1*,Q,R,S FREQ ID X1 X2 3 1 2.000 1.450 2 2 1.500 5.000 .................... FILE COPY TEMP1 TO NEW TEMP2 / VARS=ALL,-FREQ FILE SHOW TEMP2 ............. FILE COPY K1 TO NEW K2 / MASK=#1(AB) FILE SHOW K2 ...................... FILE COPY TEMP2 TO K2 / MATCH=ID MODE=3 ODD=NUL FILE LOAD K2 DATA K2*,I,J,U ID X1 X2 1 2.0 1.5 1 2.0 1.5 1 2.0 1.5 2 1.5 5.0 2 1.5 5.0 ....................... Valitaan jokin datan ulkopuolinen luku c (esim: c = min(min(X))-100) MINSTAT K1 / MASK=#1(B) ................ MAT LOAD STAT.M MATRIX STAT.M Basic_statistics_of_K1 /// mean stddev N minimum maximum X1 1.750000 0.957427 4.000000 1.000000 3.000000 X2 3.225000 2.251481 4.000000 0.900000 6.000000 FILE SAVE MAT STAT.M TO STATM ....................... STAT STATM,CUR+2 / RESULTS=0 VARS=minimum ................. Basic statistics: STATM N=2 Variable: minimum min=0.9 in obs.#2 (X2) max=1 in obs.#1 (X1) mean=0.95 stddev=0.070711 skewness=0 kurtosis=-2.5 lower_Q=0.9 median=1 upper_Q=1 c=min-100 (periaatteessa min - 1 kai riittää?) TRANSFORM K1 BY if(X=MISSING)then(c)else(X) / MASK=#1(B) TRANSFORM K2 BY if(X=MISSING)then(c)else(X) / MASK=#1(B) FILE SHOW K1 ...................... MAT SAVE DATA K1 TO A1 / MASK=#1(B) .................. MAT SAVE DATA K2 TO A2 / VARS=ALL,-ID ...................... MAT A3=A1-A2 / *A3~A1-A2 5*2 ........................ FILE DEL _K3 FILE SAVE MAT A3 TO _K3 ..................... FILE COPY _K3 TO NEW K3 / VARS=ALL,-CASE ................ FILE LOAD K3 DATA K3*,A,B,C X1 X2 -101.100 0.550 -1.000 -0.550 1.000 -100.550 0.500 -1.000 -0.500 1.000 .................. STAT STATM,CUR+2 / RESULTS=0 VARS=minimum ................. Basic statistics: STATM N=2 Variable: minimum min=0.9 in obs.#2 (X2) max=1 in obs.#1 (X1) mean=0.95 stddev=0.070711 skewness=0 kurtosis=-2.5 lower_Q=0.9 median=1 upper_Q=1 d=min-99 TRANSFORM K3 BY if(X<d)then(MISSING)else(X) ......................... FILE LOAD K3 DATA K3*,D,F,G X1 X2 - 0.550 -1.000 -0.550 1.000 - 0.500 -1.000 -0.500 1.000 .................... Lopuksi datan liittäminen alkuperäiseen _K1 .................. FILE COPY K3 TO K_OUT / MATCH=# ..................... Lopputulos FILE LOAD K_OUT DATA K_OUT*,K,L,M ID X1 X2 Y Time 1 - 0.5500 1 1 1 -1.0000 -0.5500 2 2 1 1.0000 - 3 3 2 0.5000 -1.0000 6 2 2 -0.5000 1.0000 5 3 Tämänkin homman voinee tehdä useammalla tavalla. Ihan ekaksi tuli mieleen käyttää INDATA-tekniikkaa, mutta tietyn automaatiotason ollessa vaatimus, näin kenties selvitään ilman sukroja (riittää kun kiinnostuksen kohteena olevat muuttujat speksattu MASKINGilla). ............................. ESIM2: Muuttujien jakaumilla on merkitystä korrelaation tasoon X ja X^2 välillä, kun X on keskistetty. Ikä paneeliaineistossa varsinkin, jos mittaukset ovat tasaisin aikavälein ei ehkä ole se paras esimerkki. Ohessa kaksi muuttujaa ikä ja bmi (painoindeksi), jotka on keskistetty eräässä paneeliaineistossa. Poikkileikkausyksikkö i: DATA cent_K_IDQ* / osa datasta m4AGEP m4AGEP2 m4BMI m4BMI2 -2.250 2.531 -0.442 0.097 -2.000 2.000 -0.501 0.125 -1.750 1.531 -0.584 0.170 -1.500 1.125 -0.678 0.230 -1.250 0.781 -0.767 0.294 -1.000 0.500 -0.784 0.307 -0.750 0.281 -0.689 0.237 -0.500 0.125 -0.486 0.118 -0.250 0.031 -0.168 0.014 0.000 0.000 0.174 0.015 0.250 0.031 0.431 0.093 0.500 0.125 0.595 0.177 0.750 0.281 0.655 0.215 1.000 0.500 0.630 0.198 1.250 0.781 0.595 0.177 1.500 1.125 0.559 0.156 1.750 1.531 0.522 0.136 2.000 2.000 0.487 0.119 2.250 2.531 0.450 0.101 ........................... Basic statistics: cent_K_IDQ N=323 Variable: m4AGEP min=-2.75 in obs.#147 max=2.75 in obs.#169 mean=0 stddev=1.385582 skewness=0 kurtosis=-1.161725 lower_Q=-1.210714 median=-0.058824 upper_Q=1.225 Jakauma ei vino mean ~ median Variable: m4AGEP2 ~.5*(m4AGEP^2) min=0 in obs.#18 max=3.78125 in obs.#147 mean=0.956947 stddev=0.880498 skewness=0.797006 kurtosis=-0.330616 lower_Q=0.195313 median=0.78125 upper_Q=1.53125 Variable: m4BMI min=-1.125 in obs.#492 max=4.5 in obs.#508 mean=-0 stddev=0.624153 skewness=2.887058 kurtosis=17.42378 lower_Q=-0.343781 median=-0.183085 upper_Q=-0.022388 Jakauma vino, mean > median , upper_Q < mean Variable: m4BMI2 ~.5*(m4BMI^2) min=0 in obs.#43 max=10.125 in obs.#508 mean=0.19418 stddev=0.858526 skewness=9.976652 kurtosis=109.5054 lower_Q=-0.109821 median=0.116279 upper_Q=0.30407 Means, std.devs and correlations of cent_K_IDQ N=323 Variable Mean Std.dev. m4AGEP 0.000000 1.385582 m4AGEP2 0.956947 0.880498 m4BMI -0.000000 0.624153 m4BMI2 0.194180 0.858526 Correlations: m4AGEP m4AGEP2 m4BMI m4BMI2 m4AGEP 1.0000 0.0000 0.2922 0.1524 m4AGEP2 0.0000 1.0000 0.1796 0.1085 m4BMI 0.2922 0.1796 1.0000 0.6550 m4BMI2 0.1524 0.1085 0.6550 1.0000 Korrelaatio BMI-muuttujan kohdalla on 0.65. Aineistossa on mukana pari selvästi "outlier" -oloista havaintoa, joita ilman korrelaatio olisi luokkaa 0.15. Tähän kvadraattiseen funktioon lukeutuu tietty myös kahden eri muuttujan interaktio X1*X2, josta soppaan lisättynä voi syntyä lisää "teknistä" korrelaatiota. Interaktiot ovat monesti hyvin mielenkiintoisia ilmiön tutkimisessa. t. Petri
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!