Sotsiaalse Analüüsi Meetodite ja Metodoloogia õpibaas

Andmestike haldamine

Ave Roots
2014

Enamasti ei ole olemasolevates andmestikes andmed sellisel kujul, et neid saaks kohe iga uurimuse jaoks analüüsida. Igal uurimusel on oma spetsiifika, seetõttu tuleb sageli alustada andmete korrastamisest ja andmestiku valmisseadmisest selleks, et oleks üldse võimalik sellist analüüsi teha, nagu on vaja. Selles peatükis antaksegi ülevaade, kuidas tervet andmestikku ja ka üksikuid tunnuseid analüüsiks ette valmistada. Täpsemalt, selles peatükis käsitletakse seda, kuidas muuta andmestiku struktuuri, liita erinevaid andmestikke ning kodeerida ümber tunnuseid.

Analüüsi tegema hakates ei ole tavaliselt vaja kõiki andmestikus olevaid tunnuseid, vaid ainult väikest osa neist. Sel puhul on mõistlik salvestada vajalikud tunnused eraldi andmestikuna ja edaspidi opereerida vaid nendega.

Kasutades Euroopa Sotsiaaluuringu (Edaspidi ESS) 2010. aasta andmestikku, teeme väiksema andmestiku, milles on ainult need tunnused, mis puudutavad pensionile jäämisega seotud temaatikat.

Seejärel valime Euroopa Sotsiaaluuringu Eesti 2010. aasta andmestikust (andmed saab siit: http://www.europeansocialsurvey.org/download.html?file=ESS5EE&c=EE&y=2010) tunnused idno (hilisemaks andmestike liitmiseks on oluline, et võtaksime kaasa ID, mis on igal andmereal unikaalne), tööturu staatus (mnactic), pensionile mineku aasta (rtryr) ja vanus, mil sooviti pensionile minna (agertr), sünniaasta (yrbrn) ning vanus (agea).

Võtame andmestiku SPSSi aknas lahti, valime

File → Save as

„Save Data As“ aknas vajutada nupp „Variables“ (vt joonis 1).

andmed.png

Joonis 1. Tunnuste valimiseni jõudmine

andmed2.png

Joonis 2. Tunnuste valimine

Avanenud aknas näitab veerg „Keep“, millised tunnused võetakse andmestiku salvestamisel uude andmestikku kaasa. Automaatselt on valitud kõik. Nupp „Drop All“ võtab kõigilt tunnustelt linnukesed eest ära (tekib olukord, kus salvestatavas andmestikus pole ühtegi tunnust) ja saame hakata tunnuseid ükshaaval valima. Kui vajalikud tunnused on valitud, tuleks vajutada „Continue“ ( vt joonis 3).

andmed3.png

Joonis 3. Tunnuste valiku kinnitamine

Seejärel tuleks anda uuele andmestikule nimi aknas „File name“ ja valida uue faili asukoht (joonis 4).

andmed4.png

Joonis 4. Uue andmestiku salvestamine

Seejärel tuleb vajutada „Save“.

Ongi uus andmestik salvestatud. See tuleb nüüd SPSSis avada ja seda saab kasutama hakata.

Sedasama võib teha palju lihtsamalt ja elegantsemalt programmis R (http://www.r-project.org/):

Kui meile pakub huvi ainult ühe teatava grupi uurimine ja tahame jätta kõik ülejäänud andmestikus olevad indiviidid kõrvale, siis tuleks teha vaid meid huvitavatest indiviididest koosnev alamandmestik. Oletame, et soovime andmestikku, mis koosneb ainult töötavatest inimestest, kes on vanemad kui 50 aastat. Kasutame faili pens1.sav.

Võtta menüüst

Data → Select Cases

Valida avanenud aknas „If condition is satisfied“ ja vajutada nupule „If“ (joonis 6). Siinkohal valime andmestikku vaid need indiviidid, kes vastavad meie etteantud kriteeriumile.

and.png

Joonis 6. Teatud grupi valimine analüüsiks

Avanenud aknas seame tingimuse loodavasse andmestikku kuuluvate indiviidide selekteerimiseks, et inimene on 50aastane või vanem ja töötab (joonis 7).

and1.png

Joonis 7. Tingimuse seadmine

Vajutada „Continue“.

Võiks valida saadud andmestiku tekitamise uue failina („Copy selected cases to a new dataset“) (joonis 8).

Seejärel vajutada „OK“. Andmestik avatakse nimetus aknas, see tuleks ise uuesti salvestada.

and2.png

Joonis 8. Valitud andmete salvestamine uue andmestikuna

Tunnuste liitmine olemasolevasse andmestikku

Tahaksime eelnevasse andmestikku liita indiviidi staatuse tööturul.

Selleks teeme liidetava tunnuse faili, kus on ainult need tunnused, mida soovime juurde liita, ning ID, mis peab olema sama mõlemas liidetavas andmestikus (st sama indiviid peab olema sama ID-numbriga, et ühe inimese andmed satuksid ühele reale). Kasutame faile pens.sav ja tts.sav.

Esmalt tuleb mõlemad andmestikud sorteerida ID-numbri järgi.

Data → Sort Cases

Seejärel tuleb vasakpoolses aknas märgistada tunnus, mille järgi tahetakse faili sorteerida (idno), vajutada akende vahel olevale noolekesele ja see tunnus läheb parempoolsesse aknasse (joonis 9).

and3.png

Joonis 9. Andmete sorteerimine konkreetse tunnuse järgi

Seejärel vajutada „OK“.

Alternatiiv on kasutada SPSSi Syntaxis järgmist käsurida:

sort cases by idno(A).

*sulgudes olev A tähendab, et sorteeritakse kasvavas järjekorras.

Seejärel tuleks võtta ette see andmeaken (põhiandmestiku aken), millele hakkate teist (andmestikku) juurde liitma. Seejärel valige menüüst

Data → Merge Files → Add Variables

Liita saab kas juba lahti olevat andmestikku (joonis 10)

and4.png

Joonis 10. Avatud andmefaili liitmine põhiandmestikule

või andmestikku, mis ei ole avatud (joonis 11)

and5.png

Joonis 11. Failidest valitava andmestiku liitmine põhiandmestikule

Seejärel vajutada „Continue“.

Selleks et juurdeliidetavast andmestikust tulevad andmed saaksid sama rea peale, kus on selle indiviidi põhiandmestikus olevad andmed, peab andmestikus olema tunnus, mis on indiviidi eraldav unikaalne kood. See on igal andmestikus oleval indiviidil erinev. ESSi andmestikus on selleks tunnus „idno“. Järgnevalt tuleb SPSS-ile öelda, et ta paneks andmestikud kokku just „idno“ järgi, et sama „idno“ koodiga andmed oleks uues andmestikus samal real.  Selleks tuleks teha linnuke „Match cases on key variables“ ja „Cases are sorted …“ ette (joonis 12).

and6.png

Joonis 12. Andmestike liitmine konkreetse tunnuse alusel

Seejärel teha ID-tunnus aktiivseks ja saata ta lahtrisse „Key Variables“.

and7.png

Joonis 13. Andmestike liitmine indiviidi identifikaatori järgi

Seejärel vajutada „OK“.

Enne olid andmestikus vaid Eesti andmed, kuid kui tahaksime teha võrdlust näiteks Eesti ja Soome vahel, tuleks Eesti andmetele liita ka Soome andmestiku samad tunnused. Selline tehe eeldab, et mõlemas failis on tunnustel, mida tahame kokku panna, samad nimed. Kasutame andmestikke pens1.sav ja soomepens.sav.

Valida menüüst Data → Merge Files → Add Cases

Valida lisatav fail

f1.png

Joonis 14. Liidetava andmefaili valimine

Valida „Continue“.

f2.png

Joonis 15. Tunnuste nimekiri lõppandmestikus

Valida „OK“

Kui failides on erineva nimega tunnused, siis need ilmuvad aknas „Unpaired Variables“. Kui on siiski tegemist samade tunnustega, millel on eri andmestikes erinev nimi, siis tuleks üks tunnustest ümber nimetada ja nad saab saata kõrvalaknasse. Kui on tegemist tunnustega, mis ühes andmestikus on ja teises ei ole, siis need kustutatakse ja lõppandmestikus ei kajastu. Seega on lõppandmestikus ainult need tunnused, mis on sama nimega mõlemas andmestikus. Andmestike liitmisel tuleks olla tähelepanelik, et tunnused on mõlemas andmestikus sama skaalaga, või siis tuleb skaala vajadusel ümber kodeerida. Näiteks Eesti tööjõu-uuringu eri aastate andmestikes on sama tunnus erinevate nimedega ja mõnikord ka erineva skaalaga.

Võib juhtuda, et andmestik ei ole sellises formaadis, nagu meie analüüsi jaoks tarvis on, nt ei ole ühe indiviidi andmed ühel, vaid mitmel real (iga kordusmõõtmine eraldi real), või oleks tarvis ära vahetada read ja veerud. Järgnev osa puudutabki andmete struktuuri muutmist, käsitledes andmestiku ridade ja veergude vahetamist ning pikkformaadi laiformaadiks muutmist ja vastupidi.

Ridade ja veergude vahetamine

Sellist andmestiku muutmist võib olla vaja, kui soovite analüüsiühikuna kasutada seda, mis algandmestikus on veergudes ehk siis käsitletud tunnustena. Näiteks kui meil on andmed seaduseelnõude ja parlamendisaadikute kohta ja meil on analüüsiühikuks seaduseelnõu ning meid huvitavad hääletustulemused lähtuvalt teatud eelnõude omadustest, siis on meil ridades seaduseelnõud ja veergudes parlamendisaadikud. Kui meid huvitab teatud tüüpi parlamendisaadikute hääletuskäitumine, siis on meil vaja andmestikku, mille ridades on parlamendisaadikud ning veergudes seaduseelnõud.

Kasutame andmestikku Trans1.sav.

Praktiliselt saab seda teha, võttes menüüst

Data → Transpose

Aknasse „Variables“ tuleb saata tunnused, mida soovitakse pöörata. Praegusel juhul on selleks Euroopa Sotsiaaluuringu Eesti 2010. aasta andmetes leibkonnaliikmete suhe respondendiga (st kas on abikaasa, laps jne). Aknasse „Name Variable“ tuleb saata tunnus, mille järgi nimetatakse veerge uues andmestikus, vaadeldaval juhul on selleks respondenti identifitseeriv tunnus idno (joonis 16).

f3.png

Joonis 16. Pööratavate tunnuste valimine andmestikus

Algses andmestikus on tunnused veergudes ja respondendid ridades (joonis 17)

f4.png

Joonis 17. Andmestik enne pööramist

Pööratud andmestikus on veergudes indiviidid ja ridades tunnused (joonis 18).

f5.png

Joonis 18. Andmestik pärast pööramist

Kõige laialdasemalt kasutatav andmeformaat on laiformaat, kus ühe indiviidiga (või mõne muu analüüsiühiku, nt riigiga) seotud andmed on kõik ühel ja samal real. Samas, mõningatel juhtudel, eriti longituudandmete puhul võib vahel vaja minna pikkformaati, nt kui on mõõdetud eri töötusperioodide pikkust. Meie jaoks ei ole oluline, mitu korda üks inimene töötu oli, me tahame uurida hoopis tegureid, mis mõjutavad töötusperioodide pikkust, olenemata ka sellest, mitmenda töötusega on tegemist. Sellisel juhul tahame, et ka sama indiviidi töötusperioodid oleks igaüks eraldi real ja seega näiteks selle inimese kohta, kes on kolm korda töötu olnud, on meil andmestikus kolm andmerida.

Praegusel juhul on meil algandmestikus (Trans2.sav) veergudes tunnused ja iga rea peal on eri indiviidi andmed.

Soovime muuta andmete struktuuri nii, et sama indiviidi leibkonnaliikmed tuleksid üksteise all järjest.

Valida menüüst

Data → Restructure

f6.png

Joonis 19. Andmete ümberstruktureerimise viisi valimine

Võtta esimene valik, nagu on näha joonisel 19.

Kuna tegemist  on nelja tunnuste grupiga (meil on nelja indiviidi andmed, mis grupeeritakse), siis tuleb järgnevas aknas valida alumine valik ja märkida lahtrisse „How Many“ (joonis 20). Seejärel vajutada nupule „Next“.

f7.png

Joonis 20. Tunnuste gruppide arvu märkimine

Seejärel tuleb valida, millised tunnused kuuluvad ühte gruppi. Kõigepealt valida aknas „Target Variable“ „transs 1“ ja seejärel saata selle all olevasse aknasse esimesse gruppi kuuluvad tunnused,  vaadeldava juhul respondendi sugu, sünniaasta ja suhe respondendiga (tunnus näitab praegu, et tegemist on respondendi endaga).

f8.png

Joonis 21. Tunnuste grupeerimine

Seejärel tuleks samas aknas valida transs 2 ja saata alumisse aknasse järgmisesse gruppi kuuluvad tunnused (teise leibkonnaliikme sugu, sünniaasta ja suhe respondendiga). Kui kõik grupid on defineeritud, saab vajutada nupule „Next“ ja järgmises aknas ka „Next“. Et säiliksid ka algsed tunnuste nimed, saab need salvestada eraldi tunnusesse, selleks valida järgmises aknas „Variable names“ (joonis 22).

f9.png

Joonis 22. Algsete tunnusenimede salvestamine eraldi tunnusesse

Seejärel valida „Next“ ja veel kord „Next“.

 Järgnevas aknas on võimalik valida, kas tahetakse andmeid muuta kohe või kõigepealt saada süntaks ja seejärel see käivitada.

f10.png

Joonis 23. Valik kohese andmete muutmise ja süntaksi kaudu muutmise vahel

Pärast selle valiku langetamist vajutada „Finish“.

Tulemuseks on andmestik, kus ühe respondendiga seotud andmed ei ole enam ainult ühel real, vaid kolmel real, ühel real on kõigi selles andmestikus olevate leibkonnaliikmete sugu, teisel kõigi sünniaasta ja kolmandal suhe respondendiga. ID-tunnus näitab leibkonna numbrit, st samasse leibkonda kuuluvatel inimestel on see sama.

f11.png

Joonis 24. Pikkformaati muudetud andmestik

Järgmisena vaatame eelnevale vastupidist andmete struktuuri muutmist.

Valida menüüst Data → Restructure

Märkida ära teine valik (joonis 25).

a1.png

Joonis 25. Andmete ümberstruktureerimise valik

Järgmisena tuleb see tunnus, mille järgi uued read moodustatakse (ehk siis indiviidi ID, kuna tahame, et sama indiviidi andmed läheksid kõik ühele reale), panna lahtrisse „Identifier Variables“ ja see tunnus,  kust võetakse pikkformaadi tunnuste nimed, panna lahtrisse „Index Variables“ (joonis 26).

a2.png

Joonis 26. Tunnuste valimine, mille järgi andmed ümber struktureeritakse

Seejärel võib kolm korda „Next“ vajutada ja originaalvalikud samaks jätta. Lõpuks antakse taas valida, kas soovitakse andmeid kohe muuta või kõigepealt saada süntaks. Pärast selle valiku langetamist ja sellel lehel „Finish“ vajutamist ongi tulemuseks uue struktuuriga andmebaas.

Uus andmestik näeb välja nii, nagu on näha jooniselt 27.

a3.png

Joonis 27. Laiformaati muudetud andmestik

Kategooriate kokkukodeerimine

Tahaksime kokku kodeerida Euroopa Sotsiaaluuringu 2010. aasta Eesti andmestikus oleva tööturu staatust näitava tunnuse kategooriaid. Kasutame andmestikku pens1.sav.

Tuleks võtta menüüst :

Transform → Recode into Different Variables

Valida välja tunnus, mida tahame ümber kodeerida (mnactic), ja saata see keskmisse aknasse

a4.png

Joonis 28. Tunnuse valimine ümberkodeerimiseks

Seejärel anda uuele tunnusele nimi lahtris „Name“ ja vajutada „Change“. Ilma „Change“ vajutamata uus tunnus ei salvestu (joonis 29). Järgmisena tuleb vajutada nupule „Old and New Values“, kus saab määrata uue tunnuse väärtused valitud tunnuse väärtustest lähtuvalt.

a5.png

Joonis 29. Uue tunnuse loomine

Tunnuse originaalskaala on järgmine:

  1. tasustatud tööl või ajutiselt tööst eemal (töövõtja, eraettevõtja, töötate perefirmas);
  2. õpite (tasustamata tööandja poolt) või õpingutest ajutisel puhkusel;
  3. töötu ja otsite aktiivselt tööd;
  4. töötu, kuid ei otsi aktiivselt tööd;
  5. püsivalt töövõimetu või puudega;
  6. pensionil;
  7. kohustuslikul ühiskondlikult kasulikul tööl või ajateenistuses;
  8. kodune, hoolitsete laste või kellegi teise eest;
  9. (MUU);
    88  (EOÖ).

Avanenud aknas tuleb deklareerida ühe kaupa kategooriate vanad (nimekirjas tunnuse ees olevad koodid) ja uued väärtused (meie soovitavad koodid uuele, tekkivale tunnusele) ja igal korral vajutada „Add“.

a6.png

Joonis 30. Olemasoleva tunnuste väärtuste põhjal uue tunnuse väärtuste määramine

Vana väärtuse aknas on mitu valikut. „System-missing“ tähendab deklareerimata puuduvatele väärtustele mingi uue väärtuse andmist.

„System- or user-missing“ tähendab nii deklareeritud kui ka deklareerimata puuduvatele väärtustele mingi uue väärtuse andmist.

„Range“ alla saab määratleda mingi väärtuste vahemiku (nt 3-4, ülemisse kasti 3 ja alumisse 4).

„Range, lowest through value“ tähendab, et võetakse vahemik olemasoleva tunnuse kõige madalamast väärtusest kuni väärtuseni, mis kasti märgitakse.

„Range, value through highest“ tähendab, et võetakse kasti märgitud väärtusest kuni olemasoleva kõige kõrgema väärtuseni.

„All other values“ saab anda mingi konkreetse väärtuse kõigile neile väärtustele, mida pole enne mainitud.

Uue väärtuse aknas „System missing“ tähendab, et mingi olemasoleva väärtuse saab muuta puuduvaks väärtuseks, ning „Copy old values“ tähendab, et vanade väärtuste all deklareeritud konkreetsed koodid jäävad ka uues tunnuses samaks. Toodud näite puhul võiks seda rakendada koodide 1 ja 2 puhul.

Kui väärtuste defineerimine on valmis, vajutada „Continue“ (joonis 31).

a7.png

Joonis 31. Olemasoleva tunnuse väärtuste baasil moodustatud uue tunnuse väärtused

Siis vajutada „OK“.

Andmestiku lõppu tekkiski uus tunnus.

Tunnuse kategooriate kirjeldamiseks võtta ette „Variable View“. Klõpsata vastava tunnuse „Values“ veerus oleval lahtril (joonis 32).

a8.png

Joonis 32. Uus tunnus andmestikus

Avanenud aknas tuleb sisestada aknasse „Value“ kategooria väärtus ja aknasse „Label“ kategooria nimetus.

a9.png

Joonis 33. Tunnuse kategooriatele nimetuste andmine

Kui kõik kategooriad on defineeritud, vajutada „OK“ (joonis 34).

 a10.png

Joonis 34. Tunnuse kategooriate väärtused koos nimetustega

Oletame, et soovime saada kategoriaalset tunnust, mis koosneb kolmest kategooriast: inimesed, kes läksid pensionile varem, kui nad oleks soovinud; inimesed, kes läksid pensionile siis, kui soovisid, ja inimesed, kes läksid pensionile hiljem, kui oleks soovinud. Kasutame andmestikku pens1.dat.

Kõigepealt, kuna Euroopa Sotsiaaluuringu 2010. aasta andmetes on pensionile mineku aasta, aga mitte vanus, tuleb see sünniaasta ja pensionile mineku aasta abil välja arvutada.

Selleks tuleb võtta menüüst:

Transform → Compute

Seejärel tuleb lahutada pensionile mineku aastast sünniaasta (joonis 35).

a11.png

Joonis 35. Uue tunnuse loomine teiste baasil mingi tehte teel

SPSSi Syntaxis näeb uue tunnuse loomine välja nii:

COMPUTE pensvan=yrbrn – rtryr.
EXECUTE.

Järgmisena saab moodustada kategoriaalse tunnuse (joonised 36–39).

 a12.png

Joonis 36. Loodava tunnuse kategooria defineerimine olemasoleva tunnuse väärtuse põhjal

a13.png

Joonis 37. Loodava tunnuse kategooria defineerimine olemasoleva tunnuse väärtuse põhjal

a14.png

Joonis 38. Loodava tunnuse kategooria defineerimine olemasoleva tunnuse väärtuse põhjal

Loome ka kategooria neist, kes ei ole veel pensionil, kasutades selleks tööturu staatuse tunnuse, mis ei tohi võrduda pensionil olekuga (kategooria 6).

a15.png

Joonis 39. Loodava tunnuse kategooria defineerimine olemasoleva tunnuse väärtuse põhjal