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