Paneeliaineiston keskistämisestä

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