Hehkutuksia osa 1

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Marjut Schreck
Sähköposti:    -
Päiväys: 31.10.2003 11:27


Hehkutuksia osa 1



Kirjoittelin aikoinaan SURVO.TUT-lehteen jatkokertomusta
otsikolla järjenvastaista ja lukijoiden toivomukset
huomioiden ja niistä huolimatta, ajattelin jatkaa sarjaa
täällä keskustelupalstalla.

Työskentelen siis jonkinlaisena atk-yleishenkilönä
Kansanterveyslaitoksella vastaten mm. eri mielenterveyteen
liittyvien projektien datojen hallinnasta.

Eräs tarmokas psykologi tuosta alakerrasta on jo pidempään
tiennyt missä kulkee raja SPSS:n antamien mahdollisuuksien
ja todellisen datan muokkaamisen välillä. Hän onkin ottanut
SPSS:n käytön ihan kirjaimellisesti ja noudattaa usein
periaatetta "Selvität Parhaiten Sotkusi Survolla". Ja eilen
taas ovi kävi:

Ongelmana oli potilaiden elämäntapahtumia koskeva data.
Tapahtumia on kaikenkaikkiaan 150 kolmelta eri
mittausajankohdalta, yhteensä siis 450 tapahtumaa ja yhtä
tapahtumaa kuvaa aina 4 eri muuttujaa. Yhteensä muuttujia on
siis: 450*4=1800.

Kutakin tapahtumaa kuvaavista muuttujista yksi kertoo sen,
onko tapahtuma riippuvainen henkilön psyykkisestä häiriöstä
vai ei. Nyt tarkoituksena olikin käsitellä erikseen
sellaisia tapahtumia, jotka olivat riippuvia ja vastaavasti
niitä, jotka olivat riippumattomia.

Projektia varten palkattu tilastoihminen oli aikansa
ongelmaa pähkäillyt ja todennut sitten hiukset hieman
harventuneina, että ainahan sen voi tehdä niin, että tekee
ensin kaksi kopiota alkuperäisesta datasta ja ottaa sitten
käsin pois ensimmäisestä datasta merkinnät niistä kohdista,
missä on kyse riippuvista tapahtumista ja vastaavasti
toisesta riippumattomista. Tällaiset neuvot kyllä
helpottaisivat huomattavasti myös omaa työtilannettani.

No, päädyin samaan ratkaisuun sen kahden datan suhteen,
mutta sitten alkoikin varsinainen kikkailu:

Ekaksi siis määriteltiin muunnokset yhden tapahtuman suhteen:


 11 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
 12 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
 13 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
 14 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
 15 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
 16 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
 17 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
 18 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)

Sitten perään vähän copyointia:

 19 *COPY 11,18,END+1

Tässä vaiheessa toimin vähän laiskasti enkä miettinyt miten
saisin kopioitua yhdellä komennolla 450 kertaa, mutta
nojaamalla esc-nappiin (=aktivoimalla käsky siis 450 kertaa)
se onnistui ihan hyvin. VAR-lauseita tuli kirjoitettua
komiasti 3600 rivin verran. Lista kieltämättä näyttää ensin
vähän tylsältä:

   24 *VAR-lauseiden alku:
   25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
   26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
   27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
   28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
   29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
   30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
   31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
   32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)
   33 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
   34 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
   35 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
   36 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
   37 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
   38 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
   39 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
   40 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)
      .
      .
      .

 3617 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
 3618 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
 3619 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
 3620 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
 3621 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
 3622 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
 3623 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
 3624 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)



Sitten muuttujien numerointi COUNT:lla, lisätietoina aloitusrivi,
lopetusrivi, mallirivi, mistä numerosta aloitetaan, millä välillä
edetään, ja kuinka monta kertaa samaa lukua toistetaan:

   20 *COUNT 24,3624,21,10,1,-8
   21 *      11
   22 *
   23 *
   24 *VAR-lauseiden alku:
   25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
   26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
   27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
   28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
   29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
   30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
   31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
   32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)
   33 *VAR IR11_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
   34 *VAR IR11_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
   35 *VAR IR11_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
   36 *VAR IR11_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
   37 *VAR IR11_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
   38 *VAR IR11_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
   39 *VAR IR11_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
   40 *VAR IR11_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)
      .
      .
      .

 3617 *VAR IR4501A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
 3618 *VAR IR4501A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
 3619 *VAR IR4501A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
 3620 *VAR IR4501A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
 3621 *VAR IR4501A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
 3622 *VAR IR4501A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
 3623 *VAR IR4501A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
 3624 *VAR IR4501A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)



Perään vähän blockin kopiointia, millä sai sievästi
numeroinnit kaikkiin tarvittaviin sarakkeisiin.
Nyt on listassa lopullinen ryhti:


   20 *COUNT 24,3624,21,10,1,-8
   21 *      11
   22 *
   23 *
   24 *VAR-lauseiden alku:
   25 *VAR IR10_1A1=if(IR10_1A3>2)then(MISSING)else(IR10_1A1) TO RDATA1
   26 *VAR IR10_1A2=if(IR10_1A3>2)then(MISSING)else(IR10_1A2)
   27 *VAR IR10_1A3=if(IR10_1A3>2)then(MISSING)else(IR10_1A3)
   28 *VAR IR10_1A4=if(IR10_1A3>2)then(MISSING)else(IR10_1A4)
   29 *VAR IR10_1A1=if(IR10_1A3<4)then(MISSING)else(IR10_1A1) TO RDATA2
   30 *VAR IR10_1A2=if(IR10_1A3<4)then(MISSING)else(IR10_1A2)
   31 *VAR IR10_1A3=if(IR10_1A3<4)then(MISSING)else(IR10_1A3)
   32 *VAR IR10_1A4=if(IR10_1A3<4)then(MISSING)else(IR10_1A4)
   33 *VAR IR11_1A1=if(IR11_1A3>2)then(MISSING)else(IR11_1A1) TO RDATA1
   34 *VAR IR11_1A2=if(IR11_1A3>2)then(MISSING)else(IR11_1A2)
   35 *VAR IR11_1A3=if(IR11_1A3>2)then(MISSING)else(IR11_1A3)
   36 *VAR IR11_1A4=if(IR11_1A3>2)then(MISSING)else(IR11_1A4)
   37 *VAR IR11_1A1=if(IR11_1A3<4)then(MISSING)else(IR11_1A1) TO RDATA2
   38 *VAR IR11_1A2=if(IR11_1A3<4)then(MISSING)else(IR11_1A2)
   39 *VAR IR11_1A3=if(IR11_1A3<4)then(MISSING)else(IR11_1A3)
   40 *VAR IR11_1A4=if(IR11_1A3<4)then(MISSING)else(IR11_1A4)
      .
      .
      .

 3617 *VAR IR4501A1=if(IR4501A3>2)then(MISSING)else(IR4501A1) TO RDATA1
 3618 *VAR IR4501A2=if(IR4501A3>2)then(MISSING)else(IR4501A2)
 3619 *VAR IR4501A3=if(IR4501A3>2)then(MISSING)else(IR4501A3)
 3620 *VAR IR4501A4=if(IR4501A3>2)then(MISSING)else(IR4501A4)
 3621 *VAR IR4501A1=if(IR4501A3<4)then(MISSING)else(IR4501A1) TO RDATA2
 3622 *VAR IR4501A2=if(IR4501A3<4)then(MISSING)else(IR4501A2)
 3623 *VAR IR4501A3=if(IR4501A3<4)then(MISSING)else(IR4501A3)
 3624 *VAR IR4501A4=if(IR4501A3<4)then(MISSING)else(IR4501A4)



Sitten vaan jatkuvaa aktivointia ja kupillinen teetä.
Pikkaisen kävi kyllä mielessä, että mitenhän tuon tekisi
muilla työkaluilla.


Mietityttämään jäi vähän myös se, että pitäisiköhän kääntyä
terapeutin puoleen, kun vielä nukkumaan mennessäkin pyrki
hymy huulille muistellessa päivän työ-tapahtumia.



Marjut

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.