Versiot - vanha Galku - 5.6.2019 versio 1.5.1 Uusi Galku - 2.2.2020 versio 1.5.5, 4.2.2020 versio 1.5.6, 24.2.2020 versio 1.5.7, 6.9.2020 versio 1.5.8
Siivotaan datan käsittelyn koodilohkot, kopiodaan mahdollisesti hyödylliset koodipätkät tiedostoon siivous1.R (30.1.2020).
Uudet datan luku- ja muunnosskriptit (treeni2-projektista), korjaillaan virheitä ja editoidaan koodia.(31.1.2020)
(2.2.20) Toimii johdattelevaan esimerkkiin asti, myös PDF-tulostus. Kuvien otsikot vähän mitä sattuu, ja ´profiilikuviin asti maa-muuttujan järjestys “väärä”, ts. eri kuin vanhemmissa versoissa. Korjattu, lisättiin johdattelevan esimerkin dataan myös maakoodi jossa Saksan ja Belgian jako (V3).
(4.2.20) Versio 1.5.6 - Galku toimii loppuun asti, tarkistettava ja editoitava. Poistetaan tarpeetonta tekstiä, vanha koodi voi jäädä selvästi merkittynä.
(24.2.20) Versio 1.5.7. Pieniä ja isompiakin korjailuja, koodin siistimistä jne. (27.3.20) Muutetaan hieman karttojen koodilohkoja, html-tulosteessa kuvasuhde 1 mutta pdf-tulosteessa ei. Ero on pieni. (8.4.20)
(9.9.20) Pilkotaan liian pitkiä Rmd - tiedostoja pienemmiksi.
HISTORIAA
6.8.2018 versio 1.0
Siistitään -> 12.8.2018 versio 1.05
Kommentit ja korjaukset -> 4.9.2018 versio 1.1
puuttuva riviprofiilikuva, siistimmät interaktiomuuttujien koodaukset, ensimmäinen “pinottu taulu” - analyysi -> 19.9.2018 versio 1.2
25.9.2018 siistitään datan käsittelyä; ei huomioida puuttuvan tiedon tarkempaa koodausta (read_spss - funktion user_na = TRUE asetus)
1.10.2018 Versio 1.3
Muutokset tarkemmin Readme.md - tiedostossa.
Uusi jakso yksinkertaisen CA:n laajennuksille, joissa otetaan analyysiin useampia muuttujia “pinoamalla” ja/tai yhdistämällä taulkoita. Tässä jaksossa otetaan myös käyttöön isompi aineisto (enemmän maita ja muuttujia). Siisti koodipätkä täydentävien muuttujien lisäämiseen.
3.10.2018 Versio 1.4
Siistitään pois turhat datan listaukset. Aineiston rajaaminen selkeäksi. Ensin kuusi maata, sitten 27 (Espanja pois). Valitaan myös muuttujat, jotta käsiteltävän datan listaukset ovat järkevämpiä. Aineistossa esim. Espanjan ja muutaman Unkarin poikkeavien vastausvaihtoehtojen vastaukset ovat omina muuttujina, ja niiden arvo muille havainnoille on NAP (Not applicaple). Samoin paljon maakohtaisia muuttujia, esim. koulutustaso. Mukaan otetaan vain kv-vertailuihin kelpaavat muuttujat, muutama sellainen on myös aineistoon rakennettu. Jätetään pois kaikki perhesuhteisiin liittyvät kysymykset (esim. kotitöiden jakaminen) ja taustatiedot (esim. rahankäyttö, puolison eri tiedot jne.), koska muuten jouduttaisiin miettimään miten näiden osalta käsitellään perheettömiä. Muutamia muuttujia otetaan mukaan (lasten lkm jne.).
8.10.2018
Datan valinta. Data-jaksossa aluksi, voi miettiä siirtääkö esimerkki-lukuun ja “pinotut taululut” - luvun alkuun kuvailut. Tavallaan siistiä, jos alussa lyhyesti.
10.10.2018
Maiden ja muuttujien valinta. TOPBOT halutaan mukaan, joten USA ja GB on jätettävä pois. Muuttuja on kuitenkin hankala, usealla maalla puuttuva tieto yli 10 prosentissa, ja muutamalla nolla tai ihan muutamia. Pohditaan aikanaan. 5.112.18Puuttuvat tiedot ovat puuttuvia, ei voi mitään. Jos vähän ja selviä virheitä (ikä, sukupuoli), voidaan pudottaa havainnot.Muuten mukaan, periaatteessa.
Data-jaksosta siirretään aineiston laajentamisen yhteyteen laajemman muuttujajoukon deskriptiiviset tarkastelu. Taulukko muuttujakuvauksesta jää data-lukuun. 5.12.18 Puuttuneisuuden taulukointia on, mutta siisti NA-taulukko puuttu.
11.10.2018 Versio 1.4
11.10.2018 aloitetaan versio 1.5 - pieniä muutoksia ja kommentteja, aloitetaan uusi versio 1.51 5.12.2018
6.12.2018 1.5.1 - as_factor - funktio käyttöön; testaillaan miten toimii kun (a) user_na - arvoja ei lueta ja (b) puuttuvat ovat mukana.
Muistilista:
Taulukot ja kuvat luvusta 2. alkaen eivät ole “bookdown-muodossa”. CA-tulokset on tulostettu siisteinä taulukoina Bookdown-demo - dokumentissa. Voi tulostaa myös ca-outputin. Ominaisarvojen taulukko keskeneräinen, samoin “scree plot” kuvana puuttuu.
Osa kuvista (esim. profiilikuva) pitää varmaan tulostaa pdf-muodossa ja ottaa capaper-dokkariin include_graphics - funktiolla.
Puuttuvia tai mahdollisesti lisättäviä taulukoita (nämä saa ca-funktion tuloksista suoraan)
Kuvissa vielä hiottavaa, pdf-kuvia lisäilty img-hakemistoon.
Data-tiedostojen nimeäminen (27.12.18)
**ISSP2012*.data** - täysi aineisto
**ISSP2012*jh1.data** - valikoitu aineisto (maat, muuttujat)
**ISSP2012*esim1.dat** - muuttujien muunnoksia ja uusia muuttujia; analyyseissä käytettävä data, tarkenne dat.
Historiaa (11.10.18)
Vanhoja kommentteja
edit 30.1.20 Siivotaan, luodaan faktori-muuttujat heti alussa koko datalle (G1_1_data_fct1.Rmd).
Historiaa
edit tässä luvussa on paljon siistittävää, mutta data on ok. (13.5.2018). edit capaper - dokumentissa parempi uusi jäsentely (4.9.2018) edit ISSP-datan perustietoa dokumentissa ISSP_data1.docx (4.9.2018) edit 24.9.18 Poistettiin turhaa, uusi versio tiedostosta (G1_1_data1.Rmd -> G1_1_data2.Rmd).
Datan esittely ja kuvailut - uusi versio (24.9.18) 10.10.2018 Maat ja muuttujat valittu.
edit 12.8.2020 käsitteet määriteltävä ennen käyttöä.
CA on eksploratiivinen ja graafinen(visuaalinen) menetelmä, peruskäsitteet esitellään rajatulla aineistolla. Se on kuitenkin oikea tutkimusaineisto kaikkine ongelmineen.
CA (ja MCA) sopivat isojen moniulotteisten ja mutkikkaiden aineistojen analyysiin, siksi iso aineisto. Samalla analyysiä voi laajentaa moneen suuntaan. V Benzecri:“kun data menee miljoonaan suuntaan”.
Aineiston esittely, laajan kyselytutkimusaineiston tyypilliset ominaisuudet
Laadukkaan ja hyvin dokumentoidun aineiston edut
Huom! CA sopii ja sitä on käytetty myös hyvin toisen tyyppisiin aineistoihin (esim. ekologia ja biologia, arkeologia, kielen tutkimus). Kyselytutkmukset ovat yksi selkeä menetelmän sovelluskohde. Muuttujat ovat usein kvalitatiivisia, ja ainestojen peruspulma on puuttuvissa havainnoissa. CA soveltuu hyvin.
luvun pitäisi olla mahdollisimman lyhyt (5.12.18)
Hieman historiaa datasta, sosiaalisesti määräytyneet sukupuoliroolit (gender) tutkimusaiheena neljässä ISSP:n kyselytutkimuksessa. *
Tärkeät linkit - ISSP 2012 data
Toimivat html-tulosteessa, PDFtiedostoissa saa toimimaan (vaati tarkat formatoinnit Rmd-koodissa).
www.issp.org, tutkimushankkeen historiaa. Löytyy myös bibliografia tutkimuksista, joissa aineistoja on käytetty.
www.gesis.org - tutkimuksen “sihteeristö”, dokumentaatio ja datat.
data ja dokumentaatio (selattavissa): zacat.gesis.org
edit tässä järkevä viite ISSP - dataan ISSP Research Group (2016): International Social Survey Programme: Family and Changing Gender Roles IV - ISSP 2012. GESIS Data Archive, Cologne. ZA5900 Data file Version 4.0.0, doi:10.4232/1.12661 Alla myös suora linkki
Linkitys dokumentteihin on hankalaa
Edit Refworksiin on kerätty viitteitä, tässä pärjätään kolmen saitin osoitteilla. Alla linkkejä jotka eivät näy PDF-tulosteessa, lisätty tekstinä.
Aineistot https://dbk.gesis.org/dbksearch/sdesc2.asp?no=5900&db=e2012 toimii
[Muuttujakuvaukset ja muut tiedot] (http://zacat.gesis.org/webview/index.jsp?object=http://zacat.gesis.org/obj/fStudy/ZA5900) http://zacat.gesis.org/webview/index.jsp?object=http://zacat.gesis.org/obj/fStudy/ZA5900
Suomenkielinen lomake (ZA5900_q_fi-fi.pdf) Suomessa tutkimusta koordinoi yhteiskuntatieteellinen tietoarkisto
Data ja dokumentit vie vain aineiston dokumentoinnin etusivulle https://dbk.gesis.org/dbksearch/sdesc2.asp?no=5900&db=e
GESIS-palvelun datan yleiset käyttöehdot, viittauskäytännöt Käyttöehdot:
Havaintojen lukumäärät voi tarkistaa täältä http://zacat.gesis.org/webview/index.jsp?object=http://zacat.gesis.org/obj/fStudy/ZA5900. Dokumentointisivusto/katalogi, jossa helppo navigoida zacat.gesis.org.
Dokumentointi on hyvin tarkka, tiedot löytyvät haastattelumenetelmista (parerilomake, tietokoneavusteinen haastattelu, jne), maakohtaisten taustamuuttujien harmonisoinnista maittain, otantamenetelmistä jne. Esittelen vain aineiston tärkeimmät rajaukset. Monitorointiraportti kertoo puuttuneisuuden määrän, otantamenetlmät jne maittain. “Code book” kertoo muuttujien määritelmät sekä yhteisille että maakohtaisille muuttujille. Kaikista muuttujista on taulukko maittain. Lisätään vielä raportti kyselylomakkeen laadinnasta ja linkki Yhteiskunnalliseen tietoarkistoon.
issp_docname <- c("Variable Report", "Study Monitoring Report","Basic Questionnaire",
"Contents of ISSP 2012 module", "Questionnaire Development")
issp_docdesc <- c("Perusdokumentti, muuttujien kuvaukset ja taulukot",
"tiedokeruun toteutus eri maissa",
"Maittain sovellettava kyselylomake", "substanssikysymykset taulukkona",
"kyselylomakkeen laatiminen")
issp_docfile <- c("ZA5900_cdb.pdf", "ZA5900_mr.pdf", "ZA5900_bq.pdf","ZA5900_overview.pdf",
"ssoar-2014-scholz_et_al-ISSP_2012_Family_and_Changing.pdf")
col_isspdocs <- c("dokumentti","sisältö","tiedosto")
# colnames(ISSPdocsT.df) <- col_isspdocs
# Vanha df-koodi
# ISSPdocsT.df <- data_frame(issp_docname, issp_docdesc, issp_docfile)
# knitr::kable(ISSPdocsT.df, booktab=TRUE)
# varoituksia data_framen käytöstä, toimisiko tibble()? (21.2.20)
ISSPdocsT.tbl <- tibble(issp_docname, issp_docdesc, issp_docfile)
colnames(ISSPdocsT.tbl) <- col_isspdocs
knitr::kable(ISSPdocsT.tbl, booktab = TRUE)
dokumentti | sisältö | tiedosto |
---|---|---|
Variable Report | Perusdokumentti, muuttujien kuvaukset ja taulukot | ZA5900_cdb.pdf |
Study Monitoring Report | tiedokeruun toteutus eri maissa | ZA5900_mr.pdf |
Basic Questionnaire | Maittain sovellettava kyselylomake | ZA5900_bq.pdf |
Contents of ISSP 2012 module | substanssikysymykset taulukkona | ZA5900_overview.pdf |
Questionnaire Development | kyselylomakkeen laatiminen | ssoar-2014-scholz_et_al-ISSP_2012_Family_and_Changing.pdf |
zxy capaper - dokumentissa uusi jäsentely (4.9.2018)
zxy Aineiston luonne: maakohtaisesti eri tavoin kerätty data, jossa pyritään yhtenäisiin käytäntöihin ja tietosisältöihin. Silti myös substanssikysymyksissä eroja, isoja ja pienempiä. Näin vain on, en pohdi miksi. Ei ole mitenkään ainutlaatuista. Aineiston editoinnissa ja tiedonkeruun suunnittelussa on nähty paljon vaivaa vertailukelpoisuuden vuoksi. Tästä esimerkkejä, esim. “mitä puoluetta äänestit”.
zxy yksi kappale: Aineitoa on harmonisoitu, kysymyksiä hiottu, vertailukelpoisuuteen on pontevasti pyritty. Silti eroja löytyy, osa ymmärrettäviä (lisäkysymykset jne) ja osa ei (Espanja!). Tällaista on kansainvälisen kyselytutkimuksen data.
Paremipi muotoilu: Varsinaiset substanssimuuttujat eli kyselylomakkeet on koitettu hioa mahdollisimman yhdenmukaisiksi. Silti pieniä eroja löytyy, ja isojakin (Espanja on pudottanut neutraalin “en samaa enkä eri mieltä” - vaihtoehdon pois, ja Unkarissakin on muutamat vastausvaihtoehdot valittu omalla tyylillä). Taustamuuttujissa on pyritty samaan, ja aineistoon on myös rakennettu kansainvälisesti vertailukelpoisia muuttujia kansallisesti kerätyistä tiedoista. Näitä ovat erityisesti tuloihin liittyvät tiedot, ja mone muutkin. Muuttujat jakautuvat substanssi- ja taustamuuttujiin, ja taustamuuttujista monet tiedot on kerätty kansallisiin ainiestossa maan kirjantunnisteella alkaviin muuttujiin.
zxy HUOM! Dataa ei ole kerätty vain kansainvälisiin vertailuhihin! Sitä voi ja ehkä pitäisikin analysoida maa kerrallaan, ja vertailla näitä tuloksia. (#V Blasiuksen artikkeli, jossa arvioidaan yhden ISSP-tutkimuksen vertailukelpoisuutta. Kysymykset eivät kovin hyvin näytä toimivan samalla tavalla eri maissa.)
1. Eurooppa ja samankaltaiset maat (25)
Pois 13: Argentiina,Turkki, Venezuela, Etelä-Afrikka, Korea, Intia, Kiina, Taiwan, Filippiinit, Meksiko, Israel, Japani, Chile.
Bulgaria, Czech Republic, Denmark, Finland,France, Germany, Great Britain, Ireland, Latvia, Lithuania, Norway, Poland, Sweden, Slovakia, Slovenia,Spain, Switzerland, Australia, Austria, Canada, Croatia, Iceland, Russia, United States, Belgium, Hungary, Netherlands, Portugal (28) - Espanja, Iso-Britannia, USA pois -> 25 maata (11.10.18)
Espanja jätettiin pois, koska siellä kysymyksissä jätettiin pois neutraali vaihtoehto (“en puolesta enkä vastaan / en osaa sanoa”). USA ja GB pois koska kiinnostava TOPBOT-muuttuja puuttuu (puuttui 11.10.18, sittemmin USA:n ainestoa on täydennetty).
(24.2.20) Aineistosta valittiin ensin joukko suhteellisen samankaltaisia kehittyneitä teollisuusmaita. Sitten valittiin osa kysymyksistä, ja vielä suppeampi valikoima kiinnostavia taustamuuttujia. Muutama maa pudotettiin pois tämän valinnan jälkeen.
3. kaikki havainnot, joissa on puuttuvia tietoja.
Johdattelevassa esimerkissä on kolme muuttujaa, ei ongelma, aika vähän puuuttuvia.
Isomman 25 aineiston osalta tarkistetaan, mitä “listwise deletion” saa aikaan. Aineisto pienenee nopeasti, ja vaikeasti hahmotettavalla tavalla. Tämä erävastauskato ei ole tutkielman ydinaihe, mutta laajemman aineiston käytössä se täytyy ottaa huomioon. Yksikkövastauskatoa ei käsitellä, tutkimuksen toteutuksen raporteissa on kerrottu tarkemmin miten kyselyn toteuttajat ovat tämän huomioineet. Yksikkövastauskato eli otokseen poimitut joita ei ole tavoitettu ollenkaan on kansallisen tason ongelma, joka on ratkaistu vaihtelevin tavoin. Tiedot löytyvät aineiston dokumentaatiosta. Aineistossa on myös mukana maakohtaiset painomuuttujat, mutta ei painoja maiden vertailuun. Vastausprosentit (response rate) vaihtelevat maittain, kts. monitoring report. (edit toistoa! 24.2.20)
CA:n eräs etu on se, että muuttujien oletetaan olevan luokitteluasteikon (nominaaliasteikon) muuttujia, ja puuttuva havainto on yksi luokka lisää. Puuttuvat havainnot otetaan mukaan laajemmassa aineistossa myös siksi, että CA ja MCA edellyttävt yleensä useamman muuttujan analyyseissä sitä. Jokaisen kahden muuttujan parittaisen ristiintaulukoinnin reunajakaumien pitää olla samoja.
4. Datan hallinta - reproducible research- periaate
edit 24.2.20 Vanhoja perusideoita
Aineistoa käsitellään ja muokataan niin, että jokaisen analyysin voi mahdollisman yksinkertaisesti toistaa suoraan alkuperäisestä datasta.
Aineiston muokkauksen (muuttujien ja havaintojen valikointi, muunnokset ja uusien muuttujien luonti jne.) dokumentoidaan r-koodiin.
zxy 3.10.18
R-spesifiä: R-koodissa tarkemmin, kaikki yksityiskohdat.
Kun SPSS-tiedosto luetaan R:n data frame - tiedostoksi, mukana tulee myös metadata. Uusien muuttujien luonnissa tai data-formaatin vaihtuessa (esim. matriisiksi, taulukoksi jne) metadata katoaa. Siksi muuttujien tyyppimuunnokset (yleensä faktorointi) tallennetaan uusiksi muuttujiksi, metatieto säilyy vanhassa muuttujassa.
Helposti toistettava tutkimus: polku alkuperäisestä datasta analyysien dataan selkeä (ja lyhyt jos mahdollista).
Puuttuva tieto voidaan koodata monella tavalla (ei halua vastata jne), ja SPSS (datan jakelutiedosto) sallii kolme koodia puuttuville tiedoille. Ne voi lukea R-dataan, mutta puuttuneisuutta ei tässä työssä tutkita sen tarkemmin. Detaljit R-koodissa (haven-paketin read_spss-funktion user_na -optio, ei käytetä tässä).
Tiedostonimistä (10.10.18, 30.1.20, 11.2.20)
ISSP2012.data - täysi aineisto, luetaan SPSS-tiedostosta ISSP2012jh1.data - valittu osa aineistosta (maat, muuttujat) ISSP2012*.jh1.dat - valittu osa aineistosta, luotu uusia muuttujia ja muunnettu muuttujia. Alkuperäiset muuttujat säilytetään, voi aina tarkistaa ja verrata. ISSP2012esim1, 2 jne, tarkenne .dat rajattuja aineistoja joissa uusia muuttujia ja muuttujien nimiä. Näitä luodaan analyysin eri vaiheissa.
zxy R-koodiin jätetään myös tarkistuksia yms. joita ei raportoida tässä, samoin niiden tuloksia. Voiko R-koodi olla fingelskaa? Olkoon toistaiseksi.
DATA RAJAAMISTA - maat(5.10.2018)
# Aineiston rajaamisen kolme vaihetta (10.2018)
#
# TIEDOSTOJEN NIMEÄMINEN
#
# R-datatiedostot .data - tarkenteella ovat osajoukkoja koko ISSP-datasta ISSP2012.data
# R-datatiedostot .dat - tarkenteella: mukana alkuperäisten muuttujien muunnoksia
# (yleensä as_factor), alkuperäisissä muuttujissa mukana SPSS-tiedoston metadata.
#
# Luokittelumuuttujan tyyppi on datan lukemisen jälkeen yleensä merkkijono (char)
# ja haven_labelled.
#
# Muutetaan R-datassa ordinaali- tai nominaaliasteikon muuttujat haven-paketin
# as_factor - funktiolla faktoreiksi. R:n faktorityypin muuttujille voidaan tarvittaessa
# määritellä järjestys, toistaiseksi niin ei tehdä (25.9.2018).
#
# Muunnetun muuttujan rinnalla säilytetään SPSS-tiedostosta luettu muuttja, metatiedot säilyvät
# alkuperäisessä.
#
# R-datatiedostot joiden nimen loppuosa on muotoa *esim1.dat: käytetään analyyseissä
#
# 1. VALITAAN MAAT (25) -> ISSP2012jh1a.data. Muuttujat koodilohkossa datasel_vars1
#
# kolme maa-muuttujaa datassa. V3 erottelee joidenkin maiden alueita, V4 on koko
# maan koodi ja C_ALPHAN on maan kaksimerkkinen tunnus.
#
# V3 - Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)
# V3 erot valituissa maissa
# 5601 BE-FLA-Belgium/ Flanders
# 5602 BE-WAL-Belgium/ Wallonia
# 5603 BE-BRU-Belgium/ Brussels
# 27601 DE-W-Germany-West
# 27602 DE-E-Germany-East
# 62001 PT-Portugal 2012: first fieldwork round (main sample)
# 62002 PT-Portugal 2012: second fieldwork round (complementary sample)
# Myös tämä on erikoinen, näyttää olevan vakio kun V4 = 826:
# 82601 GB-GBN-Great Britain
# Portugalissa ainestoa täydennettiin, koska siinä oli puutteita. Jako ei siis ole oleellinen,
# mutta muuut ovat. Tähdellä merkityt maat valitaan johdattelevaan esimerkkiin.
#
# Maat (25)
#
# 36 AU-Australia
# 40 AT-Austria
# 56 BE-Belgium*
# 100 BG-Bulgaria*
# 124 CA-Canada
# 191 HR-Croatia
# 203 CZ-Czech Republic
# 208 DK-Denmark*
# 246 FI-Finland*
# 250 FR-France
# 276 DE-Germany*
# 348 HU-Hungary*
# 352 IS-Iceland
# 372 IE-Ireland
# 428 LV-Latvia
# 440 LT-Lithuania
# 528 NL-Netherlands
# 578 NO-Norway
# 616 PL-Poland
# 620 PT-Portugal
# 643 RU-Russia
# 703 SK-Slovakia
# 705 SI-Slovenia
# 752 SE-Sweden
# 756 CH-Switzerland
# 826 GB-Great Britain and/or United Kingdom - jätetään pois jotta saadaan TOPBOT
# -muuttuja mukaan (top-bottom self-placement) .(9.10.18)
# 840 US-United States - jätetään pois, jotta saadaan TOPBOT-muuttuja mukaan.(10.10.18)
#
# Belgian ja Saksan alueet:
# V3
# 5601 BE-FLA-Belgium/ Flanders
# 5602 BE-WAL-Belgium/ Wallonia
# 5603 BE-BRU-Belgium/ Brussels
# 27601 DE-W-Germany-West
# 27602 DE-E-Germany-East
#
# Unkari (348) toistaiseksi mukana, mutta joissain kysymyksissä myös Unkarilla on
# poikkeavia vastausvaihtoehtoja(HU_V18, HU_V19,HU_V20). Jos näitä muuttujia käytetään,
# Unkari on parempi jättää pois.
#
#
# (25.4.2018) user_na
# haven-paketin read_spss - funktiolla voi r-tiedostoon lukea myös SPSS:n sallimat kolme
# (yleensä 7, 8, 9) tarkempaa koodia puuttuvalle tiedolle.
# "If TRUE variables with user defined missing will be read into labelled_spss objects.
# If FALSE, the default, user-defined missings will be converted to NA"
# https://www.rdocumentation.org/packages/haven/versions/1.1.0/topics/read_spss
#
ISSP2012jh.data <- read_spss("data/ZA5900_v4-0-0.sav") #luetaan alkuperäinen data R- dataksi (df).
#str(ISSP2012jh.data)
incl_countries25 <- c(36, 40, 56,100, 124, 191, 203, 208, 246, 250, 276, 348, 352,
372, 428, 440, 528, 578, 616, 620, 643, 703, 705, 752, 756)
#str(ISSP2012jh.data)
#str(ISSP2012jh.data) #61754 obs. of 420 variables - kaikki
ISSP2012jh1a.data <- filter(ISSP2012jh.data, V4 %in% incl_countries25)
#head(ISSP2012jh1a.data)
#str(ISSP2012jh1a.data) #34271 obs. of 420 variables, Espanja ja Iso-Britannia
# pois (9.10.2018)
# str(ISSP2012jh1a.data) # 32969 obs. of 420 variable, Espanja Iso-Britannia,
# USA pois (10.10.2018)
#
# names() # muuttujen nimet
# Maakohtaiset muuttujat (kun on poikettu ISSP2012 - vastausvaihtoehdoista tms.)
# on aineistossa eroteltu maatunnus-etuliitteellä (esimerkiksi ES_V7).
# Demografisissa ja muissa taustamuuttujissa suuri osa tiedoista on kerätty maa-
# kohtaisilla lomakkeilla. Vertailukelpoiset muuttujat on konstruoitu niistä.
# Muuttujia on 420, vain osa yhteisiä kaikille maille.
DATAN RAJAAMISTA - MUUTTUJAT (5.10.2018)
SPSS-tiedostosta saadaan luettua haven-paketin read_spss-funktiolla paljon metatietoja.
# 2. VALITAAN MUUTTUJAT -> ISSP2012jh1b.data. Maat valittu koodilohkossa datasel_country1
#
#
# Muuttujat on luokiteltu dokumentissa ZA5900_overview.pdf
# https://zacat.gesis.org/webview/index.jsp?object=http://zacat.gesis.org/obj/fStudy/ZA5900
# Study Description -> Other Study Description -> Related Materials
#
#
# METADATA
metavars1 <- c("V1", "V2", "DOI")
#MAA - maakoodit ja maan kahden merkin tunnus
countryvars1 <- c("V3","V4","C_ALPHAN")
# SUBSTANSSIMUUTTUJAT - Attitudes towards family and gender roles (9)
#
# Yhdeksän kysymystä (lyhennetyt versiot, englanniksi), vastausvaihtoehdot Q1-Q2
#
# 1 = täysin samaa mieltä, 2 = samaa mieltä, 3 = ei samaa eikä eri mieltä,
# 4 = eri mieltä, 5 = täysin eri mieltä
#
# Q1a Working mother can have warm relation with child
# Q1b Pre-school child suffers through working mother
# Q1c Family life suffers through working mother
# Q1d Women’s preference: home and children
# Q1e Being housewife is satisfying
#
# Q2a Both should contribute to household income
# Q2b Men’s job is earn money, women’s job household
#
# Q3a Should women work: Child under school age
# Q3b Should women work: Youngest kid at school
# 1= kokopäivätyö, 2 = osa-aikatyö, 3 = pysyä kotona, 8 = en osaa sanoa (can't choose), 9 = no answer
#
# Kysymysten Q3a ja Q3b eos-vastaus ei ole sama kuin "en samaa enkä eri mieltä" (ns. neutraali
# vaihtoehto), mutta kieltäytymisiä jne. (koodi 9) on aika vähän. Kolmessa
# maassa ne on yhdistety:
# (8 Can't choose, CA:can't choose+no answer, KR:don't know+refused, NL:don't know).
# Kun SPSS-tiedostosta ei ole tuotu puuttuvan tiedon tarkempaa luokittelua,
# erottelua ei voi tehdä.
#
#
#
substvars1 <- c("V5","V6","V7","V8","V9","V10","V11","V12","V13") # 9 muuttujaa
# Nämä yhteiset muuttujat pois (maaspesifien muuttujien lisäksi) :
#
# "V14","V15","V16", "V17","V18","HU_V18","V19","HU_V19","V20","HU_V20","V21",
# "V28","V29","V30","V31","V32","V33",# "V34", "V35", "V36", "V37", "V38", "V39",
# "V40", "V41", "V42", "V43", "V44", "V45", "V46", "V47", "V48", "V49", "V50",
# "V51", "V52", "V53", "V54", "V55", "V56", "V57", "V58", "V59", "V60", "V61",
# "V62", "V63", "V64", "V65", "V65a","V66", "V67"
#
#
# DEMOGRAFISET JA MUUT TAUSTAMUUTTUJAT (8)
#
# AGE, SEX
#
# DEGREE - Highest completed degree of education: Categories for international comparison.
# Slightly re-arranged subset of ISCED-97
#
# 0 No formal education
# 1 Primary school (elementary school)
# 2 Lower secondary (secondary completed does not allow entry to university: obligatory school)
# 3 Upper secondary (programs that allow entry to university or programs that allow to entry
# other ISCED level 3 programs - designed to prepare students for direct entry into the labour market)
# 4 Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation)
# 5 Lower level tertiary, first stage (also technical schools at a tertiary level)
# 6 Upper level tertiary (Master, Dr.)
# 9 No answer, CH: don't know
# Yhdistelyt?
#
# MAINSTAT - main status: Which of the following best describes your current situation?
#
# 1 In paid work
# 2 Unemployed and looking for a job, HR: incl never had a job
# 3 In education
# 4 Apprentice or trainee
# 5 Permanently sick or disabled
# 6 Retired
# 7 Domestic work
# 8 In compulsory military service or community service
# 9 Other
# 99 No answer
# Armeijassa tai yhdyskuntapalvelussa muutamia, muutamissa maissa.Kategoriassa 9
# on hieman väkeä. Yhdistetään 8 ja 9. Huom! Esim Puolassa ei yhtään eläkeläistä
# eikä kategoriaa 9, Saksassa ei ketään kategoriassa 9.
#
# TOPBOT - Top-Bottom self-placement (10 pt scale)
#
# "In our society, there are groups which tend to be towards the top and groups
# which tend to be towards the bottom. Below is a scale that runs
# from the top to the bottom. Where would you put yourself on this scale?"
# Eri maissa hieman erilaisia kysymyksiä.
#
# HHCHILDR - How many children in household: children between [school age] and
# 17 years of age
#
# 0 No children
# 1 One child
# 2 2 children
# 21 21 children
# 96 NAP (Code 0 in HOMPOP)
# 97 Refused
# 99 No answer
#
# Voisi koodata dummymuuttujaksi lapsia (1) - ei lapsia (0).
# Ranskan datassa on erittäin iso osa puuttuvia tietoja ( "99"", n. 20 %), myös
# Austarlialla aika paljon. Sama tilanne myös muissa perheen kokoon liittyvissä
# kysymyksissä.
#
# MARITAL - Legal partnership status
#
# What is your current legal marital status?
# The aim of this variable is to measure the current 'legal' marital status '.
# PARTLIV - muuttujassa on 'de facto' - tilanteen tieto parisuhteesta
#
# 1 Married
# 2 Civil partnership
# 3 Separated from spouse/ civil partner (still legally married/ still legally
# in a civil partnership)
# 4 Divorced from spouse/ legally separated from civil partner
# 5 Widowed/ civil partner died
# 6 Never married/ never in a civil partnership, single
# 7 Refused
# 8 Don't know
# 9 No answer
#
# URBRURAL - Place of living: urban - rural
#
# 1 A big city
# 2 The suburbs or outskirts of a big city
# 3 A town or a small city
# 4 A country village
# 5 A farm or home in the country
# 7 Other answer
# 9 No answer
# 1 ja 2 vaihtelevat aika paljon maittain, parempi laskea yhteen. Unkarista puuttuu
# jostain syystä kokonaan vaihtoehto 5. Vaihotehdon 7 on valinnut vain 4 vastaajaa Ranskasta.
# Yhdistetään 1 ja 2 = city, 3 = town, rural= 4, 5, 7
#
bgvars1 <- c( "SEX","AGE","DEGREE", "MAINSTAT", "TOPBOT", "HHCHILDR", "MARITAL", "URBRURAL")
#Valitaan muuttujat
jhvars1 <- c(metavars1,countryvars1, substvars1,bgvars1)
#jhvars1
ISSP2012jh1b.data <- select(ISSP2012jh1a.data, all_of(jhvars1))
# laaja aineisto - mukana havainnot joissa puuttuvia tietoja
# hauska detalji URBRURAL - muuttujan metatiedoissa viite jonkun työaseman hakemistoon
# str(ISSP2012jh1b.data) #32969 obs. of 23 variables
#
# SUBSTANSSIMUUTTUJAT
#
# $ V5 : 'haven_labelled' num 5 1 2 2 1 NA 2 4 2 2 ...
# ..- attr(*, "label")= chr "Q1a Working mom: warm relationship with children as a not working mom"
# ..- attr(*, "labels")= Named num 0 1 2 3 4 5 8 9
#
# ISSP2012jh1b.data$V5 näyttää tarkemmin rakenteen
#
# glimpse(ISSP2012jh1b.data)
# str(ISSP2012jh1b.data) # 32969 obs. of 23 variables
# Poistetaan havainnot, joissa ikä (AGE) tai sukupuolitieto puuttuu (5.7.2019)
ISSP2012jh1c.data <- filter(ISSP2012jh1b.data, (!is.na(SEX) & !is.na(AGE)))
str(ISSP2012jh1c.data) # 32823 obs. of 23 variables, 32969-32823 = 146
## tibble [32,823 x 23] (S3: tbl_df/tbl/data.frame)
## $ V1 : dbl+lbl [1:32823] 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900...
## ..@ label : chr "GESIS Data Archive Study Number"
## ..@ format.spss: chr "F4.0"
## ..@ labels : Named num 5900
## .. ..- attr(*, "names")= chr "GESIS Data Archive Study Number ZA5900"
## $ V2 : chr [1:32823] "4.0.0 (2016-11-23)" "4.0.0 (2016-11-23)" "4.0.0 (2016-11-23)" "4.0.0 (2016-11-23)" ...
## ..- attr(*, "label")= chr "GESIS Archive Version"
## ..- attr(*, "format.spss")= chr "A25"
## ..- attr(*, "display_width")= int 26
## $ DOI : chr [1:32823] "doi:10.4232/1.12661" "doi:10.4232/1.12661" "doi:10.4232/1.12661" "doi:10.4232/1.12661" ...
## ..- attr(*, "label")= chr "Digital Object Identifier"
## ..- attr(*, "format.spss")= chr "A50"
## ..- attr(*, "display_width")= int 26
## $ V3 : dbl+lbl [1:32823] 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, ...
## ..@ label : chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## ..@ format.spss: chr "F5.0"
## ..@ labels : Named num [1:45] 32 36 40 100 124 152 156 158 191 203 ...
## .. ..- attr(*, "names")= chr [1:45] "AR-Argentina" "AU-Australia" "AT-Austria" "BG-Bulgaria" ...
## $ V4 : dbl+lbl [1:32823] 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, ...
## ..@ label : chr "Country ISO 3166 Code (see V3 for codes for the sample)"
## ..@ format.spss: chr "F3.0"
## ..@ labels : Named num [1:41] 32 36 40 56 100 124 152 156 158 191 ...
## .. ..- attr(*, "names")= chr [1:41] "AR-Argentina" "AU-Australia" "AT-Austria" "BE-Belgium" ...
## $ C_ALPHAN: chr [1:32823] "AU" "AU" "AU" "AU" ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## ..- attr(*, "format.spss")= chr "A20"
## ..- attr(*, "display_width")= int 22
## $ V5 : dbl+lbl [1:32823] 5, 1, 2, 2, 1, NA, 2, 4, 2, 2, 4, 2, 2, ...
## ..@ label : chr "Q1a Working mom: warm relationship with children as a not working mom"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V6 : dbl+lbl [1:32823] 1, 5, 4, 4, 4, NA, 4, 3, 4, 3, 3, 5, 4, ...
## ..@ label : chr "Q1b Working mom: Preschool child is likely to suffer"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V7 : dbl+lbl [1:32823] 3, 5, 2, 4, 4, NA, 4, 2, 4, 2, 2, 3, 4, ...
## ..@ label : chr "Q1c Working woman: Family life suffers when woman has full-time job"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V8 : dbl+lbl [1:32823] 3, 5, 5, 2, 4, NA, 4, 5, 4, 5, 3, 4, 4, ...
## ..@ label : chr "Q1d Working woman: What women really want is home and kids"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V9 : dbl+lbl [1:32823] 3, 1, 2, 3, 4, NA, 2, 4, 4, 1, 4, 2, 2, ...
## ..@ label : chr "Q1e Working woman: Being housewife is as fulfilling as working for pay"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V10 : dbl+lbl [1:32823] 1, 3, 4, 2, 2, NA, 2, 5, 2, 1, 2, 2, 2, ...
## ..@ label : chr "Q2a Both should contribute to household income"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V11 : dbl+lbl [1:32823] 3, 5, 4, 4, 4, NA, 2, 5, 4, 1, 4, 4, 4, ...
## ..@ label : chr "Q2b Men's job earn money, women's job look after home"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 8 9
## .. ..- attr(*, "names")= chr [1:8] "NAP: ES" "Strongly agree" "Agree" "Neither agree nor disagree" ...
## $ V12 : dbl+lbl [1:32823] 3, NA, NA, 2, 2, NA, 2, NA, 2, 2, 3, 2, NA, ...
## ..@ label : chr "Q3a Should women work: Child under school age"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:6] 1 2 3 6 8 9
## .. ..- attr(*, "names")= chr [1:6] "Work full-time" "Work part-time" "Stay at home" "TW: women should decide" ...
## $ V13 : dbl+lbl [1:32823] 2, NA, 2, 1, 2, NA, 2, NA, 2, 2, 2, 2, NA, ...
## ..@ label : chr "Q3b Should women work: Youngest kid at school"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:6] 1 2 3 6 8 9
## .. ..- attr(*, "names")= chr [1:6] "Work full-time" "Work part-time" "Stay at home" "TW: women should decide" ...
## $ SEX : dbl+lbl [1:32823] 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2...
## ..@ label : chr "Sex of Respondent"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:3] 1 2 9
## .. ..- attr(*, "names")= chr [1:3] "Male" "Female" "No answer"
## $ AGE : dbl+lbl [1:32823] 58, 59, 40, 20, 72, 68, 64, 57, 45, 71, 19, 41, 68, ...
## ..@ label : chr "Age of respondent"
## ..@ format.spss: chr "F3.0"
## ..@ labels : Named num [1:6] 15 16 17 18 102 999
## .. ..- attr(*, "names")= chr [1:6] "15 years" "16 years" "17 years" "18 years" ...
## $ DEGREE : dbl+lbl [1:32823] 2, 5, 5, 3, 2, NA, NA, 6, 5, 6, 3, 5, 2, ...
## ..@ label : chr "Highest completed degree of education: Categories for international comparison"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:8] 0 1 2 3 4 5 6 9
## .. ..- attr(*, "names")= chr [1:8] "No formal education" "Primary school (elementary school)" "Lower secondary (secondary completed does not allow entry to university: obligatory school)" "Upper secondary (programs that allows entry to university" ...
## $ MAINSTAT: dbl+lbl [1:32823] 6, 6, 3, 1, 6, 5, 6, 2, 1, 5, 3, 1, 6, 1, 1, 6, 6, 1...
## ..@ label : chr "Main status"
## ..@ format.spss: chr "F2.0"
## ..@ labels : Named num [1:10] 1 2 3 4 5 6 7 8 9 99
## .. ..- attr(*, "names")= chr [1:10] "In paid work" "Unemployed and looking for a job, HR: incl never had a job" "In education" "Apprentice or trainee" ...
## $ TOPBOT : dbl+lbl [1:32823] 3, 7, 8, NA, 7, 2, 7, NA, 10, 6, 4, 5, NA, ...
## ..@ label : chr "Top-Bottom self-placement"
## ..@ format.spss: chr "F2.0"
## ..@ labels : Named num [1:14] 0 1 2 3 4 5 6 7 8 9 ...
## .. ..- attr(*, "names")= chr [1:14] "Not available: GB,US" "Lowest, Bottom, 01" "02" "03" ...
## $ HHCHILDR: dbl+lbl [1:32823] NA, NA, 3, 1, 0, NA, 0, 0, 1, NA, 0, 2, 0, ...
## ..@ label : chr "How many children in household: children between [school age] and 17 years of age"
## ..@ format.spss: chr "F2.0"
## ..@ labels : Named num [1:7] 0 1 2 21 96 97 99
## .. ..- attr(*, "names")= chr [1:7] "No children" "One child" "2 children" "21 children" ...
## $ MARITAL : dbl+lbl [1:32823] 6, 1, 1, 6, 1, 6, 1, 1, 1, NA, 6, 1, 1, ...
## ..@ label : chr "Legal partnership status"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:9] 1 2 3 4 5 6 7 8 9
## .. ..- attr(*, "names")= chr [1:9] "Married" "Civil partnership" "Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership)" "Divorced from spouse/ legally separated from civil partner" ...
## $ URBRURAL: dbl+lbl [1:32823] 1, 1, 1, NA, 1, 2, NA, 2, 2, NA, 2, 2, 3, ...
## ..@ label : chr "Place of living: urban - rural"
## ..@ format.spss: chr "F1.0"
## ..@ labels : Named num [1:7] 1 2 3 4 5 7 9
## .. ..- attr(*, "names")= chr [1:7] "A big city" "The suburbs or outskirts of a big city" "A town or a small city" "A country village" ...
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# TARKISTUS 8.6.20 dplyr 1.0.0 havaintojen ja muuttujien määrä ok.
# ISSP2012jh1c.data %>% summary() %>% kable()
Metatietojen (3) ja maa-muuttujien (3) lisäksi aineistossa on seitsemäntoista muuttujaa. Yhdeksän muuttujaa ovat ns. substanssikysymysten vastauksia, joilla luodataan asenteita sukupuolirooleihin ja perhearvoihin. Taustamuuttujia on kahdeksan.
Yhdeksän kysymystä (lyhennetyt versiot, englanniksi), vastausvaihtoehdot
Vastausvaihtoehdot:
1 = täysin samaa mieltä, 2 = samaa mieltä, 3 = ei samaa eikä eri mieltä, 4 = eri mieltä, 5 = täysin eri mieltä
edit 14.8.20 Kysymyksissä Q1a ja Q2a vastausten järjestys on tulkinnan (moderni vs.perinteinen tai liberaali vs. konsertavi) erilainen.
Q1a Working mother can have warm relation with child Q1b Pre-school child suffers through working mother Q1c Family life suffers through working mother Q1d Women’s preference: home and children Q1e Being housewife is satisfying Q2a Both should contribute to household income Q2b Men’s job is earn money, women’s job household
Q3a Should women work: Child under school age Q3b Should women work: Youngest kid at school
Vastausvaihtoehdot: “Work full-time” “Work part-time” “Stay at home”, “Can’t choose” 1 = W, 2 = w, 3 = H, NA = 6,8,9 ei tässä eriteltynä. 6 on Taiwanin oma vastausvaihtoehto, 8 = en osaa sanoa ja 9 = no answer.
# Muuttuja taulukkona - karkea tapa
tabVarnames <- c(substvars1,bgvars1) # muuttujanimet muuttujille
# Kysymysten lyhyet versiot englanniksi
tabVarDesc <- c("Q1a Working mother can have warm relation with child ",
"Q1b Pre-school child suffers through working mother",
"Q1c Family life suffers through working mother",
"Q1d Women’s preference: home and children",
"Q1e Being housewife is satisfying",
"Q2a Both should contribute to household income",
"Q2b Men’s job is earn money, women’s job household",
"Q3a Should women work: Child under school age",
"Q3b Should women work: Youngest kid at school",
"Respondents age ",
"Respondents gender",
"Highest completed degree of education: Categories for international comparison",
"Main status: work, unemployed, in education...",
"Top-Bottom self-placement (10 pt scale)",
"How many children in household: children between [school age] and 17 years of age",
"Legal partnership status: married, civil partership...",
"Place of living: urban - rural"
)
#tabVarDesc
# Taulukko
# luodaan df - varoitus: data_frame() is deprecated, use tibble” (4.2.20),
# vaihdetaan tibbleen (21.2.20)
# jhVarTable1.df <- data_frame(tabVarnames,tabVarDesc) OLD
jhVarTable1.tbl <- tibble(tabVarnames,tabVarDesc)
cols_jhVarTable1 <- c("muuttuja","kysymyksen tunnus, lyhennetty kysymys")
colnames(jhVarTable1.tbl) <- cols_jhVarTable1
str(jhVarTable1.tbl)
## tibble [17 x 2] (S3: tbl_df/tbl/data.frame)
## $ muuttuja : chr [1:17] "V5" "V6" "V7" "V8" ...
## $ kysymyksen tunnus, lyhennetty kysymys: chr [1:17] "Q1a Working mother can have warm relation with child " "Q1b Pre-school child suffers through working mother" "Q1c Family life suffers through working mother" "Q1d Women’s preference: home and children" ...
# Suomalaiset pitkät kysymykset
vastf1 <- c("Q1a Työssäkäyvä äiti pystyy luomaan lapsiinsa aivan yhtä lämpimän
ja turvallisen suhteen kuin äiti, joka ei käy työssä")
vastf2 <- c("Q1b Alle kouluikäinen lapsi todennäköisesti kärsii, jos hänen äitinsä käy työssä.")
vastf3 <- c("Q1c Kaiken kaikkiaan perhe-elämä kärsii, kun naisella on kokopäivätyö.")
vastf4 <- c("Q1d On hyvä käydä töissä mutta tosiasiassa useimmat naiset haluavat
ensisijaisesti kodin ja lapsia.")
vastf5 <- c("Q1e Kotirouvana oleminen on aivan yhtä antoisaa kuin ansiotyön tekeminen.")
vastf6 <- c("Q2a Sekä miehen että naisen tulee osallistua perheen toimeentulon hankkimiseen.")
vastf7 <- c("Q2b Miehen tehtävä on ansaita rahaa; naisen tehtävä on huolehtia kodista ja perheestä.")
vastf8 <- c("Q3a Millä tavoin naisten pitäisi mielestäsi käydä työssä seuraavissa tilanteissa?
Kun perheessä on alle kouluikäinen lapsi")
vastf9 <- c("Q3b Millä tavoin naisten pitäisi mielestäsi käydä työssä seuraavissa tilanteissa?
Kun nuorin lapsi on aloittanut koulunkäynnin")
tabVarDesc_fi <- c(vastf1,vastf2,vastf3,vastf4,vastf5,vastf6,vastf7, vastf8,vastf9)
#tabVarDesc_fi
tabVarnames_subst <- c(substvars1)
# jhVarTable1_fi.df <- data_frame(tabVarnames_subst,tabVarDesc_fi) OLD
jhVarTable1_fi.tbl <- tibble(tabVarnames_subst,tabVarDesc_fi)
cols_jhVarTable1 <- c("muuttuja","Kysymyksen tunnus, suomenkielisen lomakkeen kysymys")
colnames(jhVarTable1_fi.tbl) <- cols_jhVarTable1
# TAULUKODEN TULOSTUS
# kable(booktab = T) # booktab = T gives us a pretty APA-ish table
# Lyhyet kysymykset englanniksi
# OLD
# knitr::kable(jhVarTable1.df, booktab=TRUE,
# fig.cap="ISSP2012:Työelämä ja perhearvot - valitut muuttujat")
knitr::kable(jhVarTable1.tbl, booktab = TRUE,
fig.cap = "ISSP2012:Työelämä ja perhearvot - valitut muuttujat")
muuttuja | kysymyksen tunnus, lyhennetty kysymys |
---|---|
V5 | Q1a Working mother can have warm relation with child |
V6 | Q1b Pre-school child suffers through working mother |
V7 | Q1c Family life suffers through working mother |
V8 | Q1d Women’s preference: home and children |
V9 | Q1e Being housewife is satisfying |
V10 | Q2a Both should contribute to household income |
V11 | Q2b Men’s job is earn money, women’s job household |
V12 | Q3a Should women work: Child under school age |
V13 | Q3b Should women work: Youngest kid at school |
SEX | Respondents age |
AGE | Respondents gender |
DEGREE | Highest completed degree of education: Categories for international comparison |
MAINSTAT | Main status: work, unemployed, in education… |
TOPBOT | Top-Bottom self-placement (10 pt scale) |
HHCHILDR | How many children in household: children between [school age] and 17 years of age |
MARITAL | Legal partnership status: married, civil partership… |
URBRURAL | Place of living: urban - rural |
# Suomen lomakkeen kysymykset (löytyy myös kuva lomakkeen sivusta)
# OLD
# knitr::kable(jhVarTable1_fi.df, booktab=TRUE,
# fig.cap="ISSP2012: suomenkielisen lomakkeen kysymykset")
knitr::kable(jhVarTable1_fi.tbl, booktab = TRUE,
fig.cap = "ISSP2012: suomenkielisen lomakkeen kysymykset")
muuttuja | Kysymyksen tunnus, suomenkielisen lomakkeen kysymys |
---|---|
V5 | Q1a Työssäkäyvä äiti pystyy luomaan lapsiinsa aivan yhtä lämpimän |
ja turvallisen suhteen kuin äiti, joka ei käy työssä | |
V6 | Q1b Alle kouluikäinen lapsi todennäköisesti kärsii, jos hänen äitinsä käy työssä. |
V7 | Q1c Kaiken kaikkiaan perhe-elämä kärsii, kun naisella on kokopäivätyö. |
V8 | Q1d On hyvä käydä töissä mutta tosiasiassa useimmat naiset haluavat |
ensisijaisesti kodin ja lapsia. | |
V9 | Q1e Kotirouvana oleminen on aivan yhtä antoisaa kuin ansiotyön tekeminen. |
V10 | Q2a Sekä miehen että naisen tulee osallistua perheen toimeentulon hankkimiseen. |
V11 | Q2b Miehen tehtävä on ansaita rahaa; naisen tehtävä on huolehtia kodista ja perheestä. |
V12 | Q3a Millä tavoin naisten pitäisi mielestäsi käydä työssä seuraavissa tilanteissa? |
Kun perheessä on alle kouluikäinen lapsi | |
V13 | Q3b Millä tavoin naisten pitäisi mielestäsi käydä työssä seuraavissa tilanteissa? |
Kun nuorin lapsi on aloittanut koulunkäynnin |
# Taulukot voivat olla hankalia eristyisesti PDF-tulostuksessa, jos ne ovat
# monimutkaisia tai solujen "koot" (merkkiä/solu) vaihtelevat paljon.
# Kokeillaan taulukoiden yhdistämistä, jos aikaa jää. Ei luultavasti kannata, kun halutaan pdf- ja
# html-tulostus samalla koodilla (26.12.18).
Tarkemmat kysymysten muotoilut poikkeavat tietysti hieman eri maiden välillä. Suomen lomakkeet täydelliset kysymykset voi tarkista tiedostosta ZA5900_q_fi-fi.pdf, löytyy zcat-sivustolta. Tarkemmat kuvaukset lähes tuhatsivuisessa koodikirjassa ZA5900_cdb.pdf (refworks-viite pitäisi löytyä, ja ISSP dokumentit kerrotaan luvun alussa).
Bookdown-versiossa taulukot omiksi koodilohkoiksi, ja fig.caption - optiolla taulukon otsikko.
Kysymyslomakkeen kuva, vai kuva liitteisiin? Liitteisiin.
knitr::include_graphics('img/substvar_fi_Q1Q2.png')
Suomen lomake
edit 24.2.20 Toistoa
ks Perusasiat havaintojen puuttellisuudesta kyselytutkimusissa. Yksikkövastauskato (unit non-response), eräsvastauskato (item non-response). Mitä on raportoitava, kun käytetään valmista aineistoa? Erävastauskatoa analysoidaan, kun käytetään kaikkia valittuja muuttujia.
Yksikkövastauskato on otettu vaihtelevasti huomioon, kun kyselyn toteuttaja on editoinut ja tarkastanut datan. Eri maiden datassa on (mutta ei aina!) mukana painot mm. vastauskadon oikaiksemiseen Viittet - tekninen raportti. Myös selaimella voi zcat-sivustolla tutkailla kysymyksittäin.
Datakatalogi-dokumentista näkee vastausten jakauman jokaisen kysymyksen osalta, myös puuttuvien tietojen tarkemman koodauksen.
Valitaan 25 maata ja muuttujat
Johdattelevissa esimerkeissä valitaan kuusi maata ja kolme muuttujaa. Jätetään pois kaikki havainnot (vastaukset) joissa on puuttuvia tietoja (“listwise deletion”)
Kun laajempi aineisto otetaan käyttöön, joudutaan pohtimaan miten puuttuvia havaintoja käsitellään. Jos kyse on selvistä virheistä (esim. haastateltavan ikä puuttu) havainnot jätetään pois, muuten mietitään.
Miten puuttuvia tietoja (erävastuskato, havainnossa puuttu joku tieto) käsitellään?
edit Tämä on vähän hämärää, ehkä pois? (30.1.20)
Joissain kysymyksissä (V12, V13) puuttuvaksi tiedoksi kirjautuu vastaus (“en osaa sanoa”) “ei vastausta” - vaihtoehdon lisäksi. Nämä mukaan.
Ikä ja sukupuoli: ilmeinen virhe, joten jätetään havainnot pois (näitä ei ole paljon).
edit 24.2.20) Kun laajempi aineisto ja puuttuvat arvot otetaan mukaan analyysiin loppuluvuissa, vilkaistaa pikaisesti erävastauskadon rakennetta.
Onko puuttuvia tietoja tasaisesti eri maissa, vai vaihteleeko niiden suhteellinen osuus?
Onko joissain tai jossain maassa huomattava määrä puuttuvia tietoja?
Onko puuttuvia tietoja paljon vai vähän?
Tarkemmin puuttuneisuutta ei analysoida. Esimerkkejä löytyy (MG, CAiP ja “vihreä kirja”). Kaksi R-pakettia, joilla pikaisesti vilkaistaan dataa, ei vielä mukana tässä (24.2.20). edit Viite!
Koko aineistossa (valitut 25 maata) kysymyksen Q1b (muuttuja V6) vastauksista puuttuvia tietoja on 3,5 prosenttia (1219/34271). Huom: kun pudotetaan havainnot joilta SEX tai AGE puuttuu, N = 32823. On oikea määrä (5.7.2019, kts. treeni2- projekti, Data_iso1.R).
edit Vanhoja koodilohkoja, olkoon toistaiseksi mukana (11.2.20)
Puuttuvien tietojen tarkempi koodaus ISSP-datassa:
0: Not applicapble (NAP), Not available (NAV) 7: (97,997, 9997,…): Refused 8: (98, 998, 9998,…): Don’t know 9: (99, 999, 9999,…): No answer
NAP ja NAV määritellään
"GESIS adds ‘Not applicable’(NAP) codes for questions that have filters. NAP indicates that only a subsample and not all of respondents were asked. Also in the case of country spesific variables, all the other countries are coded NAP.
GESIS adds ‘Not available’ for variables, which in singe countries may not have been conducted for whatever reason."
Datatiedosto on ISSP2012jh1.data, ja luokittelumuuttujat muunnetaan R:n factor- muuttujaksi.
Jokaisesta muuttujasta on kaksi versiota, toisessa puuttuvat tiedot ovat R:n “NA”- arvoja ja toisessa “NA”-arvo on eksplisiittinen muuttuja (“missing”).
Substanssimuuttujien luokkien tunnukset ( faktorilabelit, levels?) muutetaan graafisiin analyyseihin sopivan lyhyiksi. Taustamuuttujien luokittelua ja luokkien tunnuksia pohditaan, kun ne otetaan käyttöön.
TODO 30.1.20 Tarkistukset, varmistukset jne. (24.2.20) Lisätty muutama testi, paljon välitulostuksia joita voi tarvittaessa kommentoida koodista pois.
TODO 2.2.20 Muunnetaanko muuttujan maa (C_ALPHAN as_factor) järjestys heti samaksi kuin C_ALPHAN? Nyt tehdään G1_2_johdesim.Rmd:ssä. (24.2.20) tehty, muunnetaan heti alussa. Käytännössä kaikenlaisia korjailuja joutuu tekemään myös analyyseissä käytettävissä R-datoissa.
TODO 3.2.20 Aluejaon maakoodi V3 mukaan, pohditaan järjestykset jne luvussa G1_2_johdesim.Rmd. (24.2.20) tehty, järjesteään myös uusi muuttuja C_ALPHAN-järjestykseen.
Aineistosta on jätetty pois ne havainnot, joissa ikä (AGE) tai sukupuoli (SEX) on puuttuva tieto. Aika paljon tarkistuksia, kolmen maa-muuttujaa järjestetään C_ALPHAN - muuttujan järjestykseen. Ikä-muuttuja säilyy numeerisena. Ensimmäiseen faktori-tyypin muuttujaan jää tyhjänä luokkana puuttuva tieto, luokka poistetaan.
# VAIHE 1 - muuttujat joissa ei ole puuttuvia tietoja
# vaihe 1.1 haven_labelled ja chr -> as_factor
ISSP2012jh1d.dat <- ISSP2012jh1c.data %>%
mutate(maa = as_factor(C_ALPHAN), # ei puuttuvia, ei tyhjiä leveleitä
maa3 = as_factor(V3), # maakoodi, jossa aluejako joillan mailla
sp1 = as_factor(SEX), # ei puuttuvia, tyhjä level "no answer" 999
)
# C_ALPHAN - maa - maa3 tarkistuksia
# V3
# "Pulma" on järjestys. C_ALPHAN ("chr") on aakkosjärjestyksessä, kun luodaan
# maa = as_factor(C_ALPHAN) järjestys muuttuu (esiintymisjärjestys datassa?)
# maa3 muunnetaan maakoodista (haven_labelled' num), jonka
str(ISSP2012jh1d.dat$maa) #Country Prefix ISO 3166 Code - alphanumeric
## Factor w/ 25 levels "AU","AT","BG",..: 1 1 1 1 1 1 1 1 1 1 ...
## - attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
# attributes(ISSP2012jh1d.dat$maa) # ei tyhiä levels-arvoja, 25 levels
# ISSP2012jh1d.dat$maa %>% fct_unique()
# ISSP2012jh1d.dat$maa %>% fct_count() # summary kertoo samat tiedot (20.2.20)
# sum(is.na(ISSP2012jh1d.dat$maa)) # ei puuttuvia tietoja
ISSP2012jh1d.dat$maa %>% summary() # mukana vain valitut 25 maata
## AU AT BG CA HR CZ DK FI FR HU IS IE LV LT NL NO
## 1557 1182 1003 953 997 1804 1403 1171 2409 1012 1172 1166 1000 1187 1315 1444
## PL RU SK SI SE CH BE DE PT
## 1115 1525 1128 1034 1059 1237 2192 1761 997
str(ISSP2012jh1d.dat$maa3) #"Country/ Sample ISO 3166 Code
## Factor w/ 45 levels "AR-Argentina",..: 2 2 2 2 2 2 2 2 2 2 ...
## - attr(*, "label")= chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
#(see V4 for codes for whole nation states)"
# 29 levels
str(ISSP2012jh1d.dat$V3)
## dbl+lbl [1:32823] 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, ...
## @ label : chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## @ format.spss: chr "F5.0"
## @ labels : Named num [1:45] 32 36 40 100 124 152 156 158 191 203 ...
## ..- attr(*, "names")= chr [1:45] "AR-Argentina" "AU-Australia" "AT-Austria" "BG-Bulgaria" ...
# attributes(ISSP2012jh1d.dat$maa3) # ei tyhiä levels-arvoja, 29 levels
# sum(is.na(ISSP2012jh1d.dat$maa3)) # nolla ei ole puuttuva tieto! (3.2.20)
# ISSP2012jh1d.dat$maa3 %>% fct_unique()
# ISSP2012jh1d.dat$maa3 %>% fct_count()
# Vain näissä on jaettu maan havainnot (3.2.20)
#
# [38] BE-FLA-Belgium/ Flanders
# [39] BE-WAL-Belgium/ Wallonia
# [40] BE-BRU-Belgium/ Brussels
# [41] DE-W-Germany-West
# [42] DE-E-Germany-East
# [43] PT-Portugal 2012: first fieldwork round (main sample)
# [44] PT-Portugal 2012: second fieldwork round (complementary sample)
# ISSP2012jh1d.dat$maa3 %>% fct_count() #miksi ei tulosta mitään? (3.2.2020)
# ISSP2012jh1d.dat$maa3 %>% summary()
# ISSP2012jh1d.dat$maa3 %>% fct_unique()
# maa3: 25 maata, havaintojen määrä. Poisjätetyissä havaintoja 0.
# glimpse(ISSP2012jh1d.dat$maa3)
# head(ISSP2012jh1d.dat$maa3)
# length(levels(ISSP2012jh1d.dat$maa3))
# C_ALPHAN alkuperäinen järjestys, maa aakkosjärjestyssä (2.2.20)
#
# Huom1: Myös merkkijonomuuttujaa C_ALPHAN tarvitaan jatkossa.
#
# Huom2: kun dataa rajataan, on tarkistettava ja tarvittaessa poistettava
# "tyhjät" R-factor - muuttujan "maa" luokat (3.2.2020)
# vaihe 1.2 tyhjät luokat (levels) pois faktoreista
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(sp = fct_drop(sp1),
maa3 = fct_drop(maa3))
# Poistetaan maa3-muuttujan tyhjät luokat (3.2.20)
# maa3 - tarkistuksia
# str(ISSP2012jh1d.dat$maa3) # 29 levels
attributes(ISSP2012jh1d.dat$maa3) #
## $levels
## [1] "AU-Australia"
## [2] "AT-Austria"
## [3] "BG-Bulgaria"
## [4] "CA-Canada"
## [5] "HR-Croatia"
## [6] "CZ-Czech Republic"
## [7] "DK-Denmark"
## [8] "FI-Finland"
## [9] "FR-France"
## [10] "HU-Hungary"
## [11] "IS-Iceland"
## [12] "IE-Ireland"
## [13] "LV-Latvia"
## [14] "LT-Lithuania"
## [15] "NL-Netherlands"
## [16] "NO-Norway"
## [17] "PL-Poland"
## [18] "RU-Russia"
## [19] "SK-Slovakia"
## [20] "SI-Slovenia"
## [21] "SE-Sweden"
## [22] "CH-Switzerland"
## [23] "BE-FLA-Belgium/ Flanders"
## [24] "BE-WAL-Belgium/ Wallonia"
## [25] "BE-BRU-Belgium/ Brussels"
## [26] "DE-W-Germany-West"
## [27] "DE-E-Germany-East"
## [28] "PT-Portugal 2012: first fieldwork round (main sample)"
## [29] "PT-Portugal 2012: second fieldwork round (complementary sample)"
##
## $class
## [1] "factor"
##
## $label
## [1] "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
#sum(is.na(ISSP2012jh1d.dat$maa3)) # nolla ei ole puuttuva tieto! (3.2.20)
# ISSP2012jh1d.dat$maa3 %>% summary()
# ISSP2012jh1d.dat$maa3 %>% fct_unique()
ISSP2012jh1d.dat$maa3 %>% fct_count() # miksi ei tulosta? Tulostaa komentoriviltä!
f | n |
---|---|
AU-Australia | 1557 |
AT-Austria | 1182 |
BG-Bulgaria | 1003 |
CA-Canada | 953 |
HR-Croatia | 997 |
CZ-Czech Republic | 1804 |
DK-Denmark | 1403 |
FI-Finland | 1171 |
FR-France | 2409 |
HU-Hungary | 1012 |
IS-Iceland | 1172 |
IE-Ireland | 1166 |
LV-Latvia | 1000 |
LT-Lithuania | 1187 |
NL-Netherlands | 1315 |
NO-Norway | 1444 |
PL-Poland | 1115 |
RU-Russia | 1525 |
SK-Slovakia | 1128 |
SI-Slovenia | 1034 |
SE-Sweden | 1059 |
CH-Switzerland | 1237 |
BE-FLA-Belgium/ Flanders | 1090 |
BE-WAL-Belgium/ Wallonia | 543 |
BE-BRU-Belgium/ Brussels | 559 |
DE-W-Germany-West | 1205 |
DE-E-Germany-East | 556 |
PT-Portugal 2012: first fieldwork round (main sample) | 894 |
PT-Portugal 2012: second fieldwork round (complementary sample) | 103 |
str(ISSP2012jh1d.dat$C_ALPHAN)
## chr [1:32823] "AU" "AU" "AU" "AU" "AU" "AU" "AU" "AU" "AU" "AU" "AU" "AU" ...
## - attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## - attr(*, "format.spss")= chr "A20"
## - attr(*, "display_width")= int 22
attributes(ISSP2012jh1d.dat$C_ALPHAN)
## $label
## [1] "Country Prefix ISO 3166 Code - alphanumeric"
##
## $format.spss
## [1] "A20"
##
## $display_width
## [1] 22
ISSP2012jh1d.dat %>% tableX(C_ALPHAN, maa)
C_ALPHAN/maa | AU | AT | BG | CA | HR | CZ | DK | FI | FR | HU | IS | IE | LV | LT | NL | NO | PL | RU | SK | SI | SE | CH | BE | DE | PT | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AT | 0 | 1182 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1182 |
AU | 1557 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1557 |
BE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2192 | 0 | 0 | 2192 |
BG | 0 | 0 | 1003 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1003 |
CA | 0 | 0 | 0 | 953 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 953 |
CH | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 | 0 | 0 | 0 | 1237 |
CZ | 0 | 0 | 0 | 0 | 0 | 1804 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1804 |
DE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1761 | 0 | 1761 |
DK | 0 | 0 | 0 | 0 | 0 | 0 | 1403 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1403 |
FI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 |
FR | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 |
HR | 0 | 0 | 0 | 0 | 997 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 997 |
HU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 |
IE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 |
IS | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 |
LT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 |
LV | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 |
NL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 |
NO | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 |
PL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 |
PT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 997 | 997 |
RU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 |
SE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 | 0 | 0 | 0 | 0 | 1059 |
SI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 | 0 | 0 | 0 | 0 | 0 | 1034 |
SK | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 |
Total | 1557 | 1182 | 1003 | 953 | 997 | 1804 | 1403 | 1171 | 2409 | 1012 | 1172 | 1166 | 1000 | 1187 | 1315 | 1444 | 1115 | 1525 | 1128 | 1034 | 1059 | 1237 | 2192 | 1761 | 997 | 32823 |
ISSP2012jh1d.dat %>% tableX(C_ALPHAN, maa3)
C_ALPHAN/maa3 | AU-Australia | AT-Austria | BG-Bulgaria | CA-Canada | HR-Croatia | CZ-Czech Republic | DK-Denmark | FI-Finland | FR-France | HU-Hungary | IS-Iceland | IE-Ireland | LV-Latvia | LT-Lithuania | NL-Netherlands | NO-Norway | PL-Poland | RU-Russia | SK-Slovakia | SI-Slovenia | SE-Sweden | CH-Switzerland | BE-FLA-Belgium/ Flanders | BE-WAL-Belgium/ Wallonia | BE-BRU-Belgium/ Brussels | DE-W-Germany-West | DE-E-Germany-East | PT-Portugal 2012: first fieldwork round (main sample) | PT-Portugal 2012: second fieldwork round (complementary sample) | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AT | 0 | 1182 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1182 |
AU | 1557 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1557 |
BE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1090 | 543 | 559 | 0 | 0 | 0 | 0 | 2192 |
BG | 0 | 0 | 1003 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1003 |
CA | 0 | 0 | 0 | 953 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 953 |
CH | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 |
CZ | 0 | 0 | 0 | 0 | 0 | 1804 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1804 |
DE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1205 | 556 | 0 | 0 | 1761 |
DK | 0 | 0 | 0 | 0 | 0 | 0 | 1403 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1403 |
FI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 |
FR | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 |
HR | 0 | 0 | 0 | 0 | 997 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 997 |
HU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 |
IE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 |
IS | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 |
LT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 |
LV | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 |
NL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 |
NO | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 |
PL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 |
PT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 894 | 103 | 997 |
RU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 |
SE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 |
SI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 |
SK | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 |
Total | 1557 | 1182 | 1003 | 953 | 997 | 1804 | 1403 | 1171 | 2409 | 1012 | 1172 | 1166 | 1000 | 1187 | 1315 | 1444 | 1115 | 1525 | 1128 | 1034 | 1059 | 1237 | 1090 | 543 | 559 | 1205 | 556 | 894 | 103 | 32823 |
ISSP2012jh1d.dat %>% tableX(maa, maa3)
maa/maa3 | AU-Australia | AT-Austria | BG-Bulgaria | CA-Canada | HR-Croatia | CZ-Czech Republic | DK-Denmark | FI-Finland | FR-France | HU-Hungary | IS-Iceland | IE-Ireland | LV-Latvia | LT-Lithuania | NL-Netherlands | NO-Norway | PL-Poland | RU-Russia | SK-Slovakia | SI-Slovenia | SE-Sweden | CH-Switzerland | BE-FLA-Belgium/ Flanders | BE-WAL-Belgium/ Wallonia | BE-BRU-Belgium/ Brussels | DE-W-Germany-West | DE-E-Germany-East | PT-Portugal 2012: first fieldwork round (main sample) | PT-Portugal 2012: second fieldwork round (complementary sample) | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AU | 1557 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1557 |
AT | 0 | 1182 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1182 |
BG | 0 | 0 | 1003 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1003 |
CA | 0 | 0 | 0 | 953 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 953 |
HR | 0 | 0 | 0 | 0 | 997 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 997 |
CZ | 0 | 0 | 0 | 0 | 0 | 1804 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1804 |
DK | 0 | 0 | 0 | 0 | 0 | 0 | 1403 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1403 |
FI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 |
FR | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 |
HU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 |
IS | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 |
IE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 |
LV | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 |
LT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 |
NL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 |
NO | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 |
PL | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 |
RU | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 |
SK | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 |
SI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 |
SE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 |
CH | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 |
BE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1090 | 543 | 559 | 0 | 0 | 0 | 0 | 2192 |
DE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1205 | 556 | 0 | 0 | 1761 |
PT | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 894 | 103 | 997 |
Total | 1557 | 1182 | 1003 | 953 | 997 | 1804 | 1403 | 1171 | 2409 | 1012 | 1172 | 1166 | 1000 | 1187 | 1315 | 1444 | 1115 | 1525 | 1128 | 1034 | 1059 | 1237 | 1090 | 543 | 559 | 1205 | 556 | 894 | 103 | 32823 |
ISSP2012jh1d.dat %>% tableX(V3, maa3)
V3/maa3 | AU-Australia | AT-Austria | BG-Bulgaria | CA-Canada | HR-Croatia | CZ-Czech Republic | DK-Denmark | FI-Finland | FR-France | HU-Hungary | IS-Iceland | IE-Ireland | LV-Latvia | LT-Lithuania | NL-Netherlands | NO-Norway | PL-Poland | RU-Russia | SK-Slovakia | SI-Slovenia | SE-Sweden | CH-Switzerland | BE-FLA-Belgium/ Flanders | BE-WAL-Belgium/ Wallonia | BE-BRU-Belgium/ Brussels | DE-W-Germany-West | DE-E-Germany-East | PT-Portugal 2012: first fieldwork round (main sample) | PT-Portugal 2012: second fieldwork round (complementary sample) | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
36 | 1557 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1557 |
40 | 0 | 1182 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1182 |
100 | 0 | 0 | 1003 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1003 |
124 | 0 | 0 | 0 | 953 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 953 |
191 | 0 | 0 | 0 | 0 | 997 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 997 |
203 | 0 | 0 | 0 | 0 | 0 | 1804 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1804 |
208 | 0 | 0 | 0 | 0 | 0 | 0 | 1403 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1403 |
246 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1171 |
250 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2409 |
348 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1012 |
352 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1172 |
372 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1166 |
428 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1000 |
440 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1187 |
528 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1315 |
578 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1444 |
616 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1115 |
643 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1525 |
703 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1128 |
705 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1034 |
752 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1059 |
756 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1237 |
5601 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1090 | 0 | 0 | 0 | 0 | 0 | 0 | 1090 |
5602 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 543 | 0 | 0 | 0 | 0 | 0 | 543 |
5603 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 559 | 0 | 0 | 0 | 0 | 559 |
27601 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1205 | 0 | 0 | 0 | 1205 |
27602 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 556 | 0 | 0 | 556 |
62001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 894 | 0 | 894 |
62002 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 103 | 103 |
Total | 1557 | 1182 | 1003 | 953 | 997 | 1804 | 1403 | 1171 | 2409 | 1012 | 1172 | 1166 | 1000 | 1187 | 1315 | 1444 | 1115 | 1525 | 1128 | 1034 | 1059 | 1237 | 1090 | 543 | 559 | 1205 | 556 | 894 | 103 | 32823 |
# sp, sp1, SEX - tarkistuksia
ISSP2012jh1d.dat$sp %>% fct_count()
f | n |
---|---|
Male | 14789 |
Female | 18034 |
ISSP2012jh1d.dat$sp %>% fct_count()
f | n |
---|---|
Male | 14789 |
Female | 18034 |
ISSP2012jh1d.dat %>% tableX(SEX,sp1)
SEX/sp1 | Male | Female | No answer | Total |
---|---|---|---|---|
1 | 14789 | 0 | 0 | 14789 |
2 | 0 | 18034 | 0 | 18034 |
Total | 14789 | 18034 | 0 | 32823 |
ISSP2012jh1d.dat %>% tableX(SEX,sp)
SEX/sp | Male | Female | Total |
---|---|---|---|
1 | 14789 | 0 | 14789 |
2 | 0 | 18034 | 18034 |
Total | 14789 | 18034 | 32823 |
ISSP2012jh1d.dat %>% tableX(sp1,sp)
sp1/sp | Male | Female | Total |
---|---|---|---|
Male | 14789 | 0 | 14789 |
Female | 0 | 18034 | 18034 |
No answer | 0 | 0 | 0 |
Total | 14789 | 18034 | 32823 |
# vaihe 1.3 uudet "faktorilabelit"
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(sp =
fct_recode(sp,
"m" = "Male",
"f" = "Female")
)
# Tarkistuksia
ISSP2012jh1d.dat$sp %>% fct_unique()
## [1] m f
## Levels: m f
ISSP2012jh1d.dat$sp %>% fct_count()
f | n |
---|---|
m | 14789 |
f | 18034 |
ISSP2012jh1d.dat$sp %>% summary()
## m f
## 14789 18034
# AGE -> ika
# AGE----
ISSP2012jh1d.dat$ika <- ISSP2012jh1d.dat$AGE
# Tarkistuksia
attributes(ISSP2012jh1d.dat$ika) # tyhjä level "No answer
## $label
## [1] "Age of respondent"
##
## $format.spss
## [1] "F3.0"
##
## $labels
## 15 years 16 years 17 years 18 years 102 years No answer
## 15 16 17 18 102 999
##
## $class
## [1] "haven_labelled" "vctrs_vctr" "double"
ISSP2012jh1d.dat$ika %>% summary()
Min. | 1st Qu. | Median | Mean | 3rd Qu. | Max. |
---|---|---|---|---|---|
15 | 36 | 50 | 49.51607 | 63 | 102 |
ISSP2012jh1d.dat %>%
tableC(AGE, ika,cor_type = "pearson", na.rm = FALSE, rounding = 5,
output = "text", booktabs = TRUE, caption = NULL, align = NULL,
float = "htb") %>% kable()
## N = 32823
## Note: pearson correlation (p-value).
|
ISSP2012jh1d.dat$ika %>% hist(main = "ISSP 2012: vastaajan ikä")
# str(ISSP2012jh1d.dat) - tarkistus
Vaihessa 2 luodaan samalla samalla periaatteella substanssi- ja taustamuuttujille kaksi R-factor- tyypin muuttujaa. Toisessa (esim. Q1a) puuttuva tieto on R-ohjelmiston sisäinen NA-arvo. Toisessa (Q1am) puuttuva tieto on yksi luokittelumuuttujan arvo(“missing”).
# Substanssi- ja taustamuuttujat R-faktoreiksi
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(Q1a1 = as_factor(V5), #labels
Q1b1 = as_factor(V6),
Q1c1 = as_factor(V7),
Q1d1 = as_factor(V8),
Q1e1 = as_factor(V9),
Q2a1 = as_factor(V10),
Q2b1 = as_factor(V11),
Q3a1 = as_factor(V12), #labels = vastQ3_labels (W,w,H)
Q3b1 = as_factor(V13), #labels = vastQ3_labels
edu1 = as_factor(DEGREE),
msta1 = as_factor(MAINSTAT),
sosta1 = as_factor(TOPBOT),
nchild1 = as_factor(HHCHILDR),
lifsta1 = as_factor(MARITAL),
urbru1 = as_factor(URBRURAL)
)
# Muuttujat Q1a1...urbru1 ovat apumuuttujia, joissa on periaatteessa kaikki SPSS-
# tiedostosta siirtyvä metatieto. Poikkeus on SPSS:n kolme tarkentavaa koodia
# puuttuvalle tiedolle, ne saisi mukaan read_spss - parametrin avulla (user_na=TRUE)
#
# Tarkistusksia
# ISSP2012jh1d.dat %>% summary()
ISSP2012jh1d.dat %>%
select(Q1a1, Q1b1, Q1c1,Q1d1,Q1e1, Q2a1, Q2b1, Q3a1,Q3b1) %>%
summary()
Q1a1 | Q1b1 | Q1c1 | Q1d1 | Q1e1 | Q2a1 | Q2b1 | Q3a1 | Q3b1 | |
---|---|---|---|---|---|---|---|---|---|
Agree :12352 | Disagree :9003 | Disagree :8706 | Disagree :7863 | Agree :8342 | Agree :13464 | Disagree :9210 | Work full-time : 5373 | Work full-time :13722 | |
Strongly agree :11116 | Agree :8389 | Agree :8263 | Agree :7672 | Neither agree nor disagree:7841 | Strongly agree :11305 | Strongly disagree :8917 | Work part-time :15655 | Work part-time :13817 | |
Disagree : 4074 | Neither agree nor disagree:5949 | Neither agree nor disagree:6000 | Neither agree nor disagree:7403 | Disagree :7267 | Neither agree nor disagree: 5039 | Neither agree nor disagree:6109 | Stay at home : 8367 | Stay at home : 1762 | |
Neither agree nor disagree: 3382 | Strongly disagree :5547 | Strongly disagree :5960 | Strongly disagree :5016 | Strongly disagree :3462 | Disagree : 1929 | Agree :5164 | TW: women should decide : 0 | TW: women should decide : 0 | |
Strongly disagree : 1051 | Strongly agree :2747 | Strongly agree :2838 | Strongly agree :2818 | Strongly agree :3357 | Strongly disagree : 403 | Strongly agree :2704 | Can’t choose, CA:+NA, KR:DK,ref., NL:DK: 0 | Can’t choose, CA:+NA, KR:DK,ref., NL:DK: 0 | |
(Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | No answer : 0 | No answer : 0 | |
NA’s : 848 | NA’s :1188 | NA’s :1056 | NA’s :2051 | NA’s :2554 | NA’s : 683 | NA’s : 719 | NA’s : 3428 | NA’s : 3522 |
ISSP2012jh1d.dat %>%
select(edu1,msta1, sosta1, nchild1, lifsta1, urbru1) %>%
summary()
edu1 | msta1 | sosta1 | nchild1 | lifsta1 | urbru1 | |
---|---|---|---|---|---|---|
Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A town or a small city :9203 | |
Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Never married/ never in a civil partnership, single : 7535 | A country village :8646 | |
Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Divorced from spouse/ legally separated from civil partner: 2997 | A big city :8442 | |
Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | 3 : 598 | Widowed/ civil partner died : 2763 | The suburbs or outskirts of a big city:4386 | |
Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 4 : 117 | Civil partnership : 1035 | A farm or home in the country :1902 | |
(Other) :2022 | (Other) : 1775 | (Other):4758 | (Other) : 45 | (Other) : 486 | (Other) : 0 | |
NA’s : 308 | NA’s : 370 | NA’s :1777 | NA’s : 940 | NA’s : 434 | NA’s : 244 |
# Substanssimuuttujat - ristiintaulukoinnit riittävät (6.2.20)
# ISSP2012jh1d.dat$Q1a1 %>% fct_count()
# ISSP2012jh1d.dat$Q1b1 %>% fct_count()
# ISSP2012jh1d.dat$Q1c1 %>% fct_count()
# ISSP2012jh1d.dat$Q1d1 %>% fct_count()
# ISSP2012jh1d.dat$Q1e1 %>% fct_count()
# ISSP2012jh1d.dat$Q2a1 %>% fct_count()
# ISSP2012jh1d.dat$Q2b1 %>% fct_count()
# ISSP2012jh1d.dat$Q3a1 %>% fct_count()
#ISSP2012jh1d.dat$Q3b1 %>% fct_count()
# Taustamuuttujat - ristiintaulukoinnit riittävät (6.2.20)
# ISSP2012jh1d.dat$edu1 %>% fct_count()
# ISSP2012jh1d.dat$msta1 %>% fct_count()
# ISSP2012jh1d.dat$sosta1 %>% fct_count()
# ISSP2012jh1d.dat$nchild1 %>% fct_count()
# ISSP2012jh1d.dat$lifsta1 %>% fct_count()
# ISSP2012jh1d.dat$urbru1 %>% fct_count()
Taustamuuttujien luokitteluja (esim. luokkien yhdistäminen) pohditaan tarkemmin, kun muuttujat otetaan käyttöön.
Poistetaan muuuttujista luokittelumuuttujien arvot, joissa ei ole havaintoja. Näitä tyhjiä luokkia siirtyy SPSS-tiedostosta haven_labelled -luokan tietohin.
# Poistetaan tyhjät luokat muuttujista
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(Q1a = fct_drop(Q1a1),
Q1b = fct_drop(Q1b1),
Q1c = fct_drop(Q1c1),
Q1d = fct_drop(Q1d1),
Q1e = fct_drop(Q1e1),
Q2a = fct_drop(Q2a1),
Q2b = fct_drop(Q2b1),
Q3a = fct_drop(Q3a1),
Q3b = fct_drop(Q3b1),
edu = fct_drop(edu1),
msta = fct_drop(msta1),
sosta = fct_drop(sosta1),
nchild = fct_drop(nchild1),
lifsta = fct_drop(lifsta1),
urbru = fct_drop(urbru1)
)
# Tarkistuksia 1
ISSP2012jh1d.dat %>% summary()
V1 | V2 | DOI | V3 | V4 | C_ALPHAN | V5 | V6 | V7 | V8 | V9 | V10 | V11 | V12 | V13 | SEX | AGE | DEGREE | MAINSTAT | TOPBOT | HHCHILDR | MARITAL | URBRURAL | maa | maa3 | sp1 | sp | ika | Q1a1 | Q1b1 | Q1c1 | Q1d1 | Q1e1 | Q2a1 | Q2b1 | Q3a1 | Q3b1 | edu1 | msta1 | sosta1 | nchild1 | lifsta1 | urbru1 | Q1a | Q1b | Q1c | Q1d | Q1e | Q2a | Q2b | Q3a | Q3b | edu | msta | sosta | nchild | lifsta | urbru | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Min. :5900 | Length:32823 | Length:32823 | Min. : 36 | Min. : 36.0 | Length:32823 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. :1.000 | Min. : 15.00 | Min. :0.00 | Min. :1.000 | Min. : 1.00 | Min. : 0.0000 | Min. :1.000 | Min. :1.000 | FR : 2409 | FR-France : 2409 | Male :14789 | m:14789 | Min. : 15.00 | Agree :12352 | Disagree :9003 | Disagree :8706 | Disagree :7863 | Agree :8342 | Agree :13464 | Disagree :9210 | Work full-time : 5373 | Work full-time :13722 | Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A town or a small city :9203 | Strongly agree :11116 | Strongly agree :2747 | Strongly agree :2838 | Strongly agree :2818 | Strongly agree :3357 | Strongly agree :11305 | Strongly agree :2704 | Work full-time: 5373 | Work full-time:13722 | Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A big city :8442 | |
1st Qu.:5900 | Class :character | Class :character | 1st Qu.: 208 | 1st Qu.:203.0 | Class :character | 1st Qu.:1.000 | 1st Qu.:2.000 | 1st Qu.:2.000 | 1st Qu.:2.000 | 1st Qu.:2.000 | 1st Qu.:1.000 | 1st Qu.:3.000 | 1st Qu.:2.000 | 1st Qu.:1.000 | 1st Qu.:1.000 | 1st Qu.: 36.00 | 1st Qu.:2.00 | 1st Qu.:1.000 | 1st Qu.: 5.00 | 1st Qu.: 0.0000 | 1st Qu.:1.000 | 1st Qu.:1.000 | BE : 2192 | CZ-Czech Republic: 1804 | Female :18034 | f:18034 | 1st Qu.: 36.00 | Strongly agree :11116 | Agree :8389 | Agree :8263 | Agree :7672 | Neither agree nor disagree:7841 | Strongly agree :11305 | Strongly disagree :8917 | Work part-time :15655 | Work part-time :13817 | Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Never married/ never in a civil partnership, single : 7535 | A country village :8646 | Agree :12352 | Agree :8389 | Agree :8263 | Agree :7672 | Agree :8342 | Agree :13464 | Agree :5164 | Work part-time:15655 | Work part-time:13817 | Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Civil partnership : 1035 | The suburbs or outskirts of a big city:4386 | |
Median :5900 | Mode :character | Mode :character | Median : 428 | Median :276.0 | Mode :character | Median :2.000 | Median :3.000 | Median :3.000 | Median :3.000 | Median :3.000 | Median :2.000 | Median :4.000 | Median :2.000 | Median :2.000 | Median :2.000 | Median : 50.00 | Median :3.00 | Median :1.000 | Median : 6.00 | Median : 0.0000 | Median :1.000 | Median :3.000 | CZ : 1804 | AU-Australia : 1557 | No answer: 0 | NA | Median : 50.00 | Disagree : 4074 | Neither agree nor disagree:5949 | Neither agree nor disagree:6000 | Neither agree nor disagree:7403 | Disagree :7267 | Neither agree nor disagree: 5039 | Neither agree nor disagree:6109 | Stay at home : 8367 | Stay at home : 1762 | Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Divorced from spouse/ legally separated from civil partner: 2997 | A big city :8442 | Neither agree nor disagree: 3382 | Neither agree nor disagree:5949 | Neither agree nor disagree:6000 | Neither agree nor disagree:7403 | Neither agree nor disagree:7841 | Neither agree nor disagree: 5039 | Neither agree nor disagree:6109 | Stay at home : 8367 | Stay at home : 1762 | Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership): 486 | A town or a small city :9203 | |
Mean :5900 | NA | NA | Mean : 4063 | Mean :362.1 | NA | Mean :2.112 | Mean :3.196 | Mean :3.211 | Mean :3.149 | Mean :2.971 | Mean :1.963 | Mean :3.513 | Mean :2.102 | Mean :1.592 | Mean :1.549 | Mean : 49.52 | Mean :3.55 | Mean :2.887 | Mean : 5.68 | Mean : 0.3832 | Mean :2.844 | Mean :2.729 | DE : 1761 | RU-Russia : 1525 | NA | NA | Mean : 49.52 | Neither agree nor disagree: 3382 | Strongly disagree :5547 | Strongly disagree :5960 | Strongly disagree :5016 | Strongly disagree :3462 | Disagree : 1929 | Agree :5164 | TW: women should decide : 0 | TW: women should decide : 0 | Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | 3 : 598 | Widowed/ civil partner died : 2763 | The suburbs or outskirts of a big city:4386 | Disagree : 4074 | Disagree :9003 | Disagree :8706 | Disagree :7863 | Disagree :7267 | Disagree : 1929 | Disagree :9210 | NA’s : 3428 | NA’s : 3522 | Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | 3 : 598 | Divorced from spouse/ legally separated from civil partner : 2997 | A country village :8646 | |
3rd Qu.:5900 | NA | NA | 3rd Qu.: 705 | 3rd Qu.:578.0 | NA | 3rd Qu.:3.000 | 3rd Qu.:4.000 | 3rd Qu.:4.000 | 3rd Qu.:4.000 | 3rd Qu.:4.000 | 3rd Qu.:2.000 | 3rd Qu.:5.000 | 3rd Qu.:3.000 | 3rd Qu.:2.000 | 3rd Qu.:2.000 | 3rd Qu.: 63.00 | 3rd Qu.:5.00 | 3rd Qu.:6.000 | 3rd Qu.: 7.00 | 3rd Qu.: 0.0000 | 3rd Qu.:5.000 | 3rd Qu.:4.000 | AU : 1557 | NO-Norway : 1444 | NA | NA | 3rd Qu.: 63.00 | Strongly disagree : 1051 | Strongly agree :2747 | Strongly agree :2838 | Strongly agree :2818 | Strongly agree :3357 | Strongly disagree : 403 | Strongly agree :2704 | Can’t choose, CA:+NA, KR:DK,ref., NL:DK: 0 | Can’t choose, CA:+NA, KR:DK,ref., NL:DK: 0 | Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 4 : 117 | Civil partnership : 1035 | A farm or home in the country :1902 | Strongly disagree : 1051 | Strongly disagree :5547 | Strongly disagree :5960 | Strongly disagree :5016 | Strongly disagree :3462 | Strongly disagree : 403 | Strongly disagree :8917 | NA | NA | Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 4 : 117 | Widowed/ civil partner died : 2763 | A farm or home in the country :1902 | |
Max. :5900 | NA | NA | Max. :62002 | Max. :756.0 | NA | Max. :5.000 | Max. :5.000 | Max. :5.000 | Max. :5.000 | Max. :5.000 | Max. :5.000 | Max. :5.000 | Max. :3.000 | Max. :3.000 | Max. :2.000 | Max. :102.00 | Max. :6.00 | Max. :9.000 | Max. :10.00 | Max. :21.0000 | Max. :6.000 | Max. :5.000 | RU : 1525 | DK-Denmark : 1403 | NA | NA | Max. :102.00 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | (Other) : 0 | No answer : 0 | No answer : 0 | (Other) :2022 | (Other) : 1775 | (Other):4758 | (Other) : 45 | (Other) : 486 | (Other) : 0 | NA’s : 848 | NA’s :1188 | NA’s :1056 | NA’s :2051 | NA’s :2554 | NA’s : 683 | NA’s : 719 | NA | NA | (Other) :2022 | (Other) : 1775 | (Other):4758 | (Other) : 45 | Never married/ never in a civil partnership, single : 7535 | NA’s : 244 | |
NA | NA | NA | NA | NA | NA | NA’s :848 | NA’s :1188 | NA’s :1056 | NA’s :2051 | NA’s :2554 | NA’s :683 | NA’s :719 | NA’s :3428 | NA’s :3522 | NA | NA | NA’s :308 | NA’s :370 | NA’s :1777 | NA’s :940 | NA’s :434 | NA’s :244 | (Other):21575 | (Other) :22681 | NA | NA | NA | NA’s : 848 | NA’s :1188 | NA’s :1056 | NA’s :2051 | NA’s :2554 | NA’s : 683 | NA’s : 719 | NA’s : 3428 | NA’s : 3522 | NA’s : 308 | NA’s : 370 | NA’s :1777 | NA’s : 940 | NA’s : 434 | NA’s : 244 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA’s : 308 | NA’s : 370 | NA’s :1777 | NA’s : 940 | NA’s : 434 | NA |
ISSP2012jh1d.dat %>%
select(Q1a, Q1b, Q1c, Q1d, Q1e,Q2a,Q2b,Q3a, Q3b) %>%
str()
## tibble [32,823 x 9] (S3: tbl_df/tbl/data.frame)
## $ Q1a: Factor w/ 5 levels "Strongly agree",..: 5 1 2 2 1 NA 2 4 2 2 ...
## ..- attr(*, "label")= chr "Q1a Working mom: warm relationship with children as a not working mom"
## $ Q1b: Factor w/ 5 levels "Strongly agree",..: 1 5 4 4 4 NA 4 3 4 3 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ Q1c: Factor w/ 5 levels "Strongly agree",..: 3 5 2 4 4 NA 4 2 4 2 ...
## ..- attr(*, "label")= chr "Q1c Working woman: Family life suffers when woman has full-time job"
## $ Q1d: Factor w/ 5 levels "Strongly agree",..: 3 5 5 2 4 NA 4 5 4 5 ...
## ..- attr(*, "label")= chr "Q1d Working woman: What women really want is home and kids"
## $ Q1e: Factor w/ 5 levels "Strongly agree",..: 3 1 2 3 4 NA 2 4 4 1 ...
## ..- attr(*, "label")= chr "Q1e Working woman: Being housewife is as fulfilling as working for pay"
## $ Q2a: Factor w/ 5 levels "Strongly agree",..: 1 3 4 2 2 NA 2 5 2 1 ...
## ..- attr(*, "label")= chr "Q2a Both should contribute to household income"
## $ Q2b: Factor w/ 5 levels "Strongly agree",..: 3 5 4 4 4 NA 2 5 4 1 ...
## ..- attr(*, "label")= chr "Q2b Men's job earn money, women's job look after home"
## $ Q3a: Factor w/ 3 levels "Work full-time",..: 3 NA NA 2 2 NA 2 NA 2 2 ...
## ..- attr(*, "label")= chr "Q3a Should women work: Child under school age"
## $ Q3b: Factor w/ 3 levels "Work full-time",..: 2 NA 2 1 2 NA 2 NA 2 2 ...
## ..- attr(*, "label")= chr "Q3b Should women work: Youngest kid at school"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
ISSP2012jh1d.dat %>%
select(Q1a1, Q1b1, Q1c1, Q1d1, Q1e1,Q2a1,Q2b1,Q3a1, Q3b1) %>%
str()
## tibble [32,823 x 9] (S3: tbl_df/tbl/data.frame)
## $ Q1a1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 6 2 3 3 2 NA 3 5 3 3 ...
## ..- attr(*, "label")= chr "Q1a Working mom: warm relationship with children as a not working mom"
## $ Q1b1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 2 6 5 5 5 NA 5 4 5 4 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ Q1c1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 4 6 3 5 5 NA 5 3 5 3 ...
## ..- attr(*, "label")= chr "Q1c Working woman: Family life suffers when woman has full-time job"
## $ Q1d1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 4 6 6 3 5 NA 5 6 5 6 ...
## ..- attr(*, "label")= chr "Q1d Working woman: What women really want is home and kids"
## $ Q1e1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 4 2 3 4 5 NA 3 5 5 2 ...
## ..- attr(*, "label")= chr "Q1e Working woman: Being housewife is as fulfilling as working for pay"
## $ Q2a1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 2 4 5 3 3 NA 3 6 3 2 ...
## ..- attr(*, "label")= chr "Q2a Both should contribute to household income"
## $ Q2b1: Factor w/ 8 levels "NAP: ES","Strongly agree",..: 4 6 5 5 5 NA 3 6 5 2 ...
## ..- attr(*, "label")= chr "Q2b Men's job earn money, women's job look after home"
## $ Q3a1: Factor w/ 6 levels "Work full-time",..: 3 NA NA 2 2 NA 2 NA 2 2 ...
## ..- attr(*, "label")= chr "Q3a Should women work: Child under school age"
## $ Q3b1: Factor w/ 6 levels "Work full-time",..: 2 NA 2 1 2 NA 2 NA 2 2 ...
## ..- attr(*, "label")= chr "Q3b Should women work: Youngest kid at school"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
ISSP2012jh1d.dat %>%
select(edu, msta, sosta, nchild,lifsta, urbru) %>%
str()
## tibble [32,823 x 6] (S3: tbl_df/tbl/data.frame)
## $ edu : Factor w/ 7 levels "No formal education",..: 3 6 6 4 3 NA NA 7 6 7 ...
## ..- attr(*, "label")= chr "Highest completed degree of education: Categories for international comparison"
## $ msta : Factor w/ 9 levels "In paid work",..: 6 6 3 1 6 5 6 2 1 5 ...
## ..- attr(*, "label")= chr "Main status"
## $ sosta : Factor w/ 10 levels "Lowest, Bottom, 01",..: 3 7 8 NA 7 2 7 NA 10 6 ...
## ..- attr(*, "label")= chr "Top-Bottom self-placement"
## $ nchild: Factor w/ 11 levels "No children",..: NA NA 4 2 1 NA 1 1 2 NA ...
## ..- attr(*, "label")= chr "How many children in household: children between [school age] and 17 years of age"
## $ lifsta: Factor w/ 6 levels "Married","Civil partnership",..: 6 1 1 6 1 6 1 1 1 NA ...
## ..- attr(*, "label")= chr "Legal partnership status"
## $ urbru : Factor w/ 5 levels "A big city","The suburbs or outskirts of a big city",..: 1 1 1 NA 1 2 NA 2 2 NA ...
## ..- attr(*, "label")= chr "Place of living: urban - rural"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
ISSP2012jh1d.dat %>%
select(edu1, msta1, sosta1, nchild1,lifsta1, urbru1) %>%
str()
## tibble [32,823 x 6] (S3: tbl_df/tbl/data.frame)
## $ edu1 : Factor w/ 8 levels "No formal education",..: 3 6 6 4 3 NA NA 7 6 7 ...
## ..- attr(*, "label")= chr "Highest completed degree of education: Categories for international comparison"
## $ msta1 : Factor w/ 10 levels "In paid work",..: 6 6 3 1 6 5 6 2 1 5 ...
## ..- attr(*, "label")= chr "Main status"
## $ sosta1 : Factor w/ 14 levels "Not available: GB,US",..: 4 8 9 NA 8 3 8 NA 11 7 ...
## ..- attr(*, "label")= chr "Top-Bottom self-placement"
## $ nchild1: Factor w/ 14 levels "No children",..: NA NA 4 2 1 NA 1 1 2 NA ...
## ..- attr(*, "label")= chr "How many children in household: children between [school age] and 17 years of age"
## $ lifsta1: Factor w/ 9 levels "Married","Civil partnership",..: 6 1 1 6 1 6 1 1 1 NA ...
## ..- attr(*, "label")= chr "Legal partnership status"
## $ urbru1 : Factor w/ 7 levels "A big city","The suburbs or outskirts of a big city",..: 1 1 1 NA 1 2 NA 2 2 NA ...
## ..- attr(*, "label")= chr "Place of living: urban - rural"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# Tarkistuksia 2 - ristiintaulukointi Q1a/Q1am riittää (6.2.20)
# Substanssimuuttujat
# ISSP2012jh1d.dat %>% tableX(Q1a,Q1a1)
# ISSP2012jh1d.dat %>% tableX(Q1b,Q1b1)
# ISSP2012jh1d.dat %>% tableX(Q1c,Q1c1)
# ISSP2012jh1d.dat %>% tableX(Q1d,Q1d1)
# ISSP2012jh1d.dat %>% tableX(Q1e,Q1e1)
# ISSP2012jh1d.dat %>% tableX(Q2a,Q2a1)
# ISSP2012jh1d.dat %>% tableX(Q2b,Q2b1)
# ISSP2012jh1d.dat %>% tableX(Q3a,Q3a1)
# ISSP2012jh1d.dat %>% tableX(Q3b,Q3b1)
# Taustamuuttujat
# ISSP2012jh1d.dat %>% tableX(edu,edu1)
# ISSP2012jh1d.dat %>% tableX(msta,msta1)
# ISSP2012jh1d.dat %>% tableX(sosta,sosta1)
# ISSP2012jh1d.dat %>% tableX(nchild,nchild1)
# ISSP2012jh1d.dat %>% tableX(lifsta,lifsta1)
# ISSP2012jh1d.dat %>% tableX(urbru,urbru1)
Luodaan uusi muuttuja, jossa puuttuva tieto (NA) on mukana luokittelumuuttujan uutena arvona (“missing”).
# Uusi muuttuja, jossa NA-arvot ovat mukana muuttujan uutena luokkana. Muuttujat
# nimetään Q1a -> Q1am.
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(Q1am = fct_explicit_na(Q1a, na_level = "missing"),
Q1bm = fct_explicit_na(Q1b, na_level = "missing"),
Q1cm = fct_explicit_na(Q1c, na_level = "missing"),
Q1dm = fct_explicit_na(Q1d, na_level = "missing"),
Q1em = fct_explicit_na(Q1e, na_level = "missing"),
Q2am = fct_explicit_na(Q2a, na_level = "missing"),
Q2bm = fct_explicit_na(Q2b, na_level = "missing"),
Q3am = fct_explicit_na(Q3a, na_level = "missing"),
Q3bm = fct_explicit_na(Q3b, na_level = "missing"),
edum = fct_explicit_na(edu, na_level = "missing"),
mstam = fct_explicit_na(msta, na_level = "missing"),
sostam = fct_explicit_na(sosta, na_level = "missing"),
nchildm = fct_explicit_na(nchild, na_level = "missing"),
lifstam = fct_explicit_na(lifsta, na_level = "missing"),
urbrum = fct_explicit_na(urbru, na_level = "missing"),
)
# Tarkistuksia 3
ISSP2012jh1d.dat %>%
select(Q1am, Q1bm, Q1cm, Q1dm, Q1em, Q2am, Q2bm, Q3am, Q3bm) %>%
summary()
Q1am | Q1bm | Q1cm | Q1dm | Q1em | Q2am | Q2bm | Q3am | Q3bm | |
---|---|---|---|---|---|---|---|---|---|
Strongly agree :11116 | Strongly agree :2747 | Strongly agree :2838 | Strongly agree :2818 | Strongly agree :3357 | Strongly agree :11305 | Strongly agree :2704 | Work full-time: 5373 | Work full-time:13722 | |
Agree :12352 | Agree :8389 | Agree :8263 | Agree :7672 | Agree :8342 | Agree :13464 | Agree :5164 | Work part-time:15655 | Work part-time:13817 | |
Neither agree nor disagree: 3382 | Neither agree nor disagree:5949 | Neither agree nor disagree:6000 | Neither agree nor disagree:7403 | Neither agree nor disagree:7841 | Neither agree nor disagree: 5039 | Neither agree nor disagree:6109 | Stay at home : 8367 | Stay at home : 1762 | |
Disagree : 4074 | Disagree :9003 | Disagree :8706 | Disagree :7863 | Disagree :7267 | Disagree : 1929 | Disagree :9210 | missing : 3428 | missing : 3522 | |
Strongly disagree : 1051 | Strongly disagree :5547 | Strongly disagree :5960 | Strongly disagree :5016 | Strongly disagree :3462 | Strongly disagree : 403 | Strongly disagree :8917 | NA | NA | |
missing : 848 | missing :1188 | missing :1056 | missing :2051 | missing :2554 | missing : 683 | missing : 719 | NA | NA |
ISSP2012jh1d.dat %>%
select(edum,mstam, sostam,nchildm,lifstam, urbrum) %>%
summary()
edum | mstam | sostam | nchildm | lifstam | urbrum | |
---|---|---|---|---|---|---|
Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A big city :8442 | |
Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Civil partnership : 1035 | The suburbs or outskirts of a big city:4386 | |
Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership): 486 | A town or a small city :9203 | |
Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | missing : 940 | Divorced from spouse/ legally separated from civil partner : 2997 | A country village :8646 | |
Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 3 : 598 | Widowed/ civil partner died : 2763 | A farm or home in the country :1902 | |
Primary school (elementary school) :1531 | Permanently sick or disabled : 1093 | 03 :2221 | 4 : 117 | Never married/ never in a civil partnership, single : 7535 | missing : 244 | |
(Other) : 799 | (Other) : 1052 | (Other):4314 | (Other) : 45 | missing : 434 | NA |
ISSP2012jh1d.dat %>%
select(Q1am, Q1bm, Q1cm, Q1dm, Q1em, Q2am, Q2bm, Q3am, Q3bm) %>%
str()
## tibble [32,823 x 9] (S3: tbl_df/tbl/data.frame)
## $ Q1am: Factor w/ 6 levels "Strongly agree",..: 5 1 2 2 1 6 2 4 2 2 ...
## ..- attr(*, "label")= chr "Q1a Working mom: warm relationship with children as a not working mom"
## $ Q1bm: Factor w/ 6 levels "Strongly agree",..: 1 5 4 4 4 6 4 3 4 3 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ Q1cm: Factor w/ 6 levels "Strongly agree",..: 3 5 2 4 4 6 4 2 4 2 ...
## ..- attr(*, "label")= chr "Q1c Working woman: Family life suffers when woman has full-time job"
## $ Q1dm: Factor w/ 6 levels "Strongly agree",..: 3 5 5 2 4 6 4 5 4 5 ...
## ..- attr(*, "label")= chr "Q1d Working woman: What women really want is home and kids"
## $ Q1em: Factor w/ 6 levels "Strongly agree",..: 3 1 2 3 4 6 2 4 4 1 ...
## ..- attr(*, "label")= chr "Q1e Working woman: Being housewife is as fulfilling as working for pay"
## $ Q2am: Factor w/ 6 levels "Strongly agree",..: 1 3 4 2 2 6 2 5 2 1 ...
## ..- attr(*, "label")= chr "Q2a Both should contribute to household income"
## $ Q2bm: Factor w/ 6 levels "Strongly agree",..: 3 5 4 4 4 6 2 5 4 1 ...
## ..- attr(*, "label")= chr "Q2b Men's job earn money, women's job look after home"
## $ Q3am: Factor w/ 4 levels "Work full-time",..: 3 4 4 2 2 4 2 4 2 2 ...
## ..- attr(*, "label")= chr "Q3a Should women work: Child under school age"
## $ Q3bm: Factor w/ 4 levels "Work full-time",..: 2 4 2 1 2 4 2 4 2 2 ...
## ..- attr(*, "label")= chr "Q3b Should women work: Youngest kid at school"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
ISSP2012jh1d.dat %>%
select(edum,mstam, sostam,nchildm,lifstam, urbrum) %>%
str()
## tibble [32,823 x 6] (S3: tbl_df/tbl/data.frame)
## $ edum : Factor w/ 8 levels "No formal education",..: 3 6 6 4 3 8 8 7 6 7 ...
## ..- attr(*, "label")= chr "Highest completed degree of education: Categories for international comparison"
## $ mstam : Factor w/ 10 levels "In paid work",..: 6 6 3 1 6 5 6 2 1 5 ...
## ..- attr(*, "label")= chr "Main status"
## $ sostam : Factor w/ 11 levels "Lowest, Bottom, 01",..: 3 7 8 11 7 2 7 11 10 6 ...
## ..- attr(*, "label")= chr "Top-Bottom self-placement"
## $ nchildm: Factor w/ 12 levels "No children",..: 12 12 4 2 1 12 1 1 2 12 ...
## ..- attr(*, "label")= chr "How many children in household: children between [school age] and 17 years of age"
## $ lifstam: Factor w/ 7 levels "Married","Civil partnership",..: 6 1 1 6 1 6 1 1 1 7 ...
## ..- attr(*, "label")= chr "Legal partnership status"
## $ urbrum : Factor w/ 6 levels "A big city","The suburbs or outskirts of a big city",..: 1 1 1 6 1 2 6 2 2 6 ...
## ..- attr(*, "label")= chr "Place of living: urban - rural"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# Taustamuuttuja, puuttuva tieto mukana - ristiintaulkointi riittää (6.2.20)
# ISSP2012jh1d.dat$edum %>% fct_count()
# ISSP2012jh1d.dat$mstam %>% fct_count()
# ISSP2012jh1d.dat$sostam %>% fct_count()
# ISSP2012jh1d.dat$nchildm %>% fct_count()
# ISSP2012jh1d.dat$lifstam %>% fct_count()
# ISSP2012jh1d.dat$urbrum %>% fct_count()
# Substanssimuuttujat, puuttuva tieto mukana - ristiintaulkointi riittää (6.2.20)
# ISSP2012jh1d.dat$Q1am %>% fct_count()
# ISSP2012jh1d.dat$Q1bm %>% fct_count()
# ISSP2012jh1d.dat$Q1cm %>% fct_count()
# ISSP2012jh1d.dat$Q1dm %>% fct_count()
# ISSP2012jh1d.dat$Q1em %>% fct_count()
# ISSP2012jh1d.dat$Q2am %>% fct_count()
# ISSP2012jh1d.dat$Q2bm %>% fct_count()
# ISSP2012jh1d.dat$Q3am %>% fct_count()
# ISSP2012jh1d.dat$Q3bm %>% fct_count()
Lopuksi luodaan uuden “faktorilabelit” substanssimuuttujille. Graafisessa analyysissä kuviin on saatava mukaan kaikki oleellinen, mutta ei mitään sen lisäksi. Näitä muuttujan arvojen tunnuksia muokataan tarvittaessa.
# Vaihe 2.4.1
# Viisi vastausvaihtoehtoa - ei eksplisiittistä NA-tietoa("missing")
# Q3a - Q3b kolme vastausvaihtoehtoa
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(Q1a = fct_recode(Q1a,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E"= "Strongly disagree"),
Q1b = fct_recode(Q1b,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree"),
Q1c = fct_recode(Q1c,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree"),
Q1d = fct_recode(Q1d,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree"),
Q1e = fct_recode(Q1e,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree"),
Q2a = fct_recode(Q2a,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree" ),
Q2b = fct_recode(Q2b,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree"),
Q3a = fct_recode(Q3a,
"W" = "Work full-time",
"w" = "Work part-time",
"H" = "Stay at home" ),
Q3b = fct_recode(Q3b,
"W" = "Work full-time",
"w" = "Work part-time",
"H" = "Stay at home" )
)
# Tarkistuksia 1
ISSP2012jh1d.dat %>%
select(Q1a, Q1b, Q1c, Q1d, Q1e, Q2a, Q2b, Q3a, Q3b) %>%
summary()
Q1a | Q1b | Q1c | Q1d | Q1e | Q2a | Q2b | Q3a | Q3b | |
---|---|---|---|---|---|---|---|---|---|
S :11116 | S :2747 | S :2838 | S :2818 | S :3357 | S :11305 | S :2704 | W : 5373 | W :13722 | |
s :12352 | s :8389 | s :8263 | s :7672 | s :8342 | s :13464 | s :5164 | w :15655 | w :13817 | |
? : 3382 | ? :5949 | ? :6000 | ? :7403 | ? :7841 | ? : 5039 | ? :6109 | H : 8367 | H : 1762 | |
e : 4074 | e :9003 | e :8706 | e :7863 | e :7267 | e : 1929 | e :9210 | NA’s: 3428 | NA’s: 3522 | |
E : 1051 | E :5547 | E :5960 | E :5016 | E :3462 | E : 403 | E :8917 | NA | NA | |
NA’s: 848 | NA’s:1188 | NA’s:1056 | NA’s:2051 | NA’s:2554 | NA’s: 683 | NA’s: 719 | NA | NA |
# Vaihe 2.4.2 - muuttujassa eksplisiittinen NA-tieto
ISSP2012jh1d.dat <- ISSP2012jh1d.dat %>%
mutate(Q1am = fct_recode(Q1am,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q1bm = fct_recode(Q1bm,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q1cm = fct_recode(Q1cm,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q1dm = fct_recode(Q1dm,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q1em = fct_recode(Q1em,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q2am = fct_recode(Q2am,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q2bm = fct_recode(Q2bm,
"S" = "Strongly agree",
"s" = "Agree",
"?" = "Neither agree nor disagree",
"e" = "Disagree",
"E" = "Strongly disagree",
"P" = "missing"),
Q3am = fct_recode(Q3am,
"W" = "Work full-time",
"w" = "Work part-time",
"H" = "Stay at home",
"P" = "missing"),
Q3bm = fct_recode(Q3bm,
"W" = "Work full-time",
"w" = "Work part-time",
"H" = "Stay at home",
"P" = "missing")
)
# Tarkistuksia 4
ISSP2012jh1d.dat %>%
select(Q1am, Q1bm, Q1cm, Q1dm, Q1em, Q2am, Q2bm, Q3am, Q3bm) %>%
summary()
Q1am | Q1bm | Q1cm | Q1dm | Q1em | Q2am | Q2bm | Q3am | Q3bm | |
---|---|---|---|---|---|---|---|---|---|
S:11116 | S:2747 | S:2838 | S:2818 | S:3357 | S:11305 | S:2704 | W: 5373 | W:13722 | |
s:12352 | s:8389 | s:8263 | s:7672 | s:8342 | s:13464 | s:5164 | w:15655 | w:13817 | |
?: 3382 | ?:5949 | ?:6000 | ?:7403 | ?:7841 | ?: 5039 | ?:6109 | H: 8367 | H: 1762 | |
e: 4074 | e:9003 | e:8706 | e:7863 | e:7267 | e: 1929 | e:9210 | P: 3428 | P: 3522 | |
E: 1051 | E:5547 | E:5960 | E:5016 | E:3462 | E: 403 | E:8917 | NA | NA | |
P: 848 | P:1188 | P:1056 | P:2051 | P:2554 | P: 683 | P: 719 | NA | NA |
# Tarkistuksia 5
# Substanssimuuttuja
ISSP2012jh1d.dat %>%
tableX(Q1a,Q1am)
Q1a/Q1am | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 11116 | 0 | 0 | 0 | 0 | 0 | 11116 |
2 | 0 | 12352 | 0 | 0 | 0 | 0 | 12352 |
3 | 0 | 0 | 3382 | 0 | 0 | 0 | 3382 |
4 | 0 | 0 | 0 | 4074 | 0 | 0 | 4074 |
5 | 0 | 0 | 0 | 0 | 1051 | 0 | 1051 |
Missing | 0 | 0 | 0 | 0 | 0 | 848 | 848 |
Total | 11116 | 12352 | 3382 | 4074 | 1051 | 848 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q1b,Q1bm)
Q1b/Q1bm | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 2747 | 0 | 0 | 0 | 0 | 0 | 2747 |
2 | 0 | 8389 | 0 | 0 | 0 | 0 | 8389 |
3 | 0 | 0 | 5949 | 0 | 0 | 0 | 5949 |
4 | 0 | 0 | 0 | 9003 | 0 | 0 | 9003 |
5 | 0 | 0 | 0 | 0 | 5547 | 0 | 5547 |
Missing | 0 | 0 | 0 | 0 | 0 | 1188 | 1188 |
Total | 2747 | 8389 | 5949 | 9003 | 5547 | 1188 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q1c,Q1cm)
Q1c/Q1cm | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 2838 | 0 | 0 | 0 | 0 | 0 | 2838 |
2 | 0 | 8263 | 0 | 0 | 0 | 0 | 8263 |
3 | 0 | 0 | 6000 | 0 | 0 | 0 | 6000 |
4 | 0 | 0 | 0 | 8706 | 0 | 0 | 8706 |
5 | 0 | 0 | 0 | 0 | 5960 | 0 | 5960 |
Missing | 0 | 0 | 0 | 0 | 0 | 1056 | 1056 |
Total | 2838 | 8263 | 6000 | 8706 | 5960 | 1056 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q1d,Q1dm)
Q1d/Q1dm | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 2818 | 0 | 0 | 0 | 0 | 0 | 2818 |
2 | 0 | 7672 | 0 | 0 | 0 | 0 | 7672 |
3 | 0 | 0 | 7403 | 0 | 0 | 0 | 7403 |
4 | 0 | 0 | 0 | 7863 | 0 | 0 | 7863 |
5 | 0 | 0 | 0 | 0 | 5016 | 0 | 5016 |
Missing | 0 | 0 | 0 | 0 | 0 | 2051 | 2051 |
Total | 2818 | 7672 | 7403 | 7863 | 5016 | 2051 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q1e,Q1em)
Q1e/Q1em | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 3357 | 0 | 0 | 0 | 0 | 0 | 3357 |
2 | 0 | 8342 | 0 | 0 | 0 | 0 | 8342 |
3 | 0 | 0 | 7841 | 0 | 0 | 0 | 7841 |
4 | 0 | 0 | 0 | 7267 | 0 | 0 | 7267 |
5 | 0 | 0 | 0 | 0 | 3462 | 0 | 3462 |
Missing | 0 | 0 | 0 | 0 | 0 | 2554 | 2554 |
Total | 3357 | 8342 | 7841 | 7267 | 3462 | 2554 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q2a,Q2am)
Q2a/Q2am | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 11305 | 0 | 0 | 0 | 0 | 0 | 11305 |
2 | 0 | 13464 | 0 | 0 | 0 | 0 | 13464 |
3 | 0 | 0 | 5039 | 0 | 0 | 0 | 5039 |
4 | 0 | 0 | 0 | 1929 | 0 | 0 | 1929 |
5 | 0 | 0 | 0 | 0 | 403 | 0 | 403 |
Missing | 0 | 0 | 0 | 0 | 0 | 683 | 683 |
Total | 11305 | 13464 | 5039 | 1929 | 403 | 683 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q2b,Q2bm)
Q2b/Q2bm | S | s | ? | e | E | P | Total |
---|---|---|---|---|---|---|---|
1 | 2704 | 0 | 0 | 0 | 0 | 0 | 2704 |
2 | 0 | 5164 | 0 | 0 | 0 | 0 | 5164 |
3 | 0 | 0 | 6109 | 0 | 0 | 0 | 6109 |
4 | 0 | 0 | 0 | 9210 | 0 | 0 | 9210 |
5 | 0 | 0 | 0 | 0 | 8917 | 0 | 8917 |
Missing | 0 | 0 | 0 | 0 | 0 | 719 | 719 |
Total | 2704 | 5164 | 6109 | 9210 | 8917 | 719 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q3a,Q3am)
Q3a/Q3am | W | w | H | P | Total |
---|---|---|---|---|---|
1 | 5373 | 0 | 0 | 0 | 5373 |
2 | 0 | 15655 | 0 | 0 | 15655 |
3 | 0 | 0 | 8367 | 0 | 8367 |
Missing | 0 | 0 | 0 | 3428 | 3428 |
Total | 5373 | 15655 | 8367 | 3428 | 32823 |
ISSP2012jh1d.dat %>%
tableX(Q3b,Q3bm)
Q3b/Q3bm | W | w | H | P | Total |
---|---|---|---|---|---|
1 | 13722 | 0 | 0 | 0 | 13722 |
2 | 0 | 13817 | 0 | 0 | 13817 |
3 | 0 | 0 | 1762 | 0 | 1762 |
Missing | 0 | 0 | 0 | 3522 | 3522 |
Total | 13722 | 13817 | 1762 | 3522 | 32823 |
ISSP2012jh1d.dat %>% # tableX muotoilee taulukkoa!
tableX(Q3am,Q3a)
Q3am/Q3a | 1 | 2 | 3 | Missing | Total |
---|---|---|---|---|---|
W | 5373 | 0 | 0 | 0 | 5373 |
w | 0 | 15655 | 0 | 0 | 15655 |
H | 0 | 0 | 8367 | 0 | 8367 |
P | 0 | 0 | 0 | 3428 | 3428 |
Total | 5373 | 15655 | 8367 | 3428 | 32823 |
ISSP2012jh1d.dat$Q3a %>% levels()
## [1] "W" "w" "H"
ISSP2012jh1d.dat$Q3am %>% levels()
## [1] "W" "w" "H" "P"
# Taustamuuttujat
ISSP2012jh1d.dat %>%
tableX(edu, edum)
edu/edum | No formal education | Primary school (elementary school) | Lower secondary (secondary completed does not allow entry to university: obligatory school) | Upper secondary (programs that allows entry to university | Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation) | Lower level tertiary, first stage (also technical schools at a tertiary level) | Upper level tertiary (Master, Dr.) | missing | Total |
---|---|---|---|---|---|---|---|---|---|
1 | 491 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 491 |
2 | 0 | 1531 | 0 | 0 | 0 | 0 | 0 | 0 | 1531 |
3 | 0 | 0 | 7811 | 0 | 0 | 0 | 0 | 0 | 7811 |
4 | 0 | 0 | 0 | 7115 | 0 | 0 | 0 | 0 | 7115 |
5 | 0 | 0 | 0 | 0 | 5658 | 0 | 0 | 0 | 5658 |
6 | 0 | 0 | 0 | 0 | 0 | 5147 | 0 | 0 | 5147 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 4762 | 0 | 4762 |
Missing | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 308 | 308 |
Total | 491 | 1531 | 7811 | 7115 | 5658 | 5147 | 4762 | 308 | 32823 |
ISSP2012jh1d.dat %>%
tableX(msta, mstam)
msta/mstam | In paid work | Unemployed and looking for a job, HR: incl never had a job | In education | Apprentice or trainee | Permanently sick or disabled | Retired | Domestic work | In compulsory military service or community service | Other | missing | Total |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 17967 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 17967 |
2 | 0 | 1769 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1769 |
3 | 0 | 0 | 1763 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1763 |
4 | 0 | 0 | 0 | 189 | 0 | 0 | 0 | 0 | 0 | 0 | 189 |
5 | 0 | 0 | 0 | 0 | 1093 | 0 | 0 | 0 | 0 | 0 | 1093 |
6 | 0 | 0 | 0 | 0 | 0 | 7999 | 0 | 0 | 0 | 0 | 7999 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 1180 | 0 | 0 | 0 | 1180 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 0 | 0 | 9 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 484 | 0 | 484 |
Missing | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 370 | 370 |
Total | 17967 | 1769 | 1763 | 189 | 1093 | 7999 | 1180 | 9 | 484 | 370 | 32823 |
ISSP2012jh1d.dat %>%
tableX(sosta, sostam)
sosta/sostam | Lowest, Bottom, 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | Highest, Top, 10 | missing | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 562 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 562 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 442 | 0 | 442 |
2 | 0 | 866 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 866 |
3 | 0 | 0 | 2221 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2221 |
4 | 0 | 0 | 0 | 3346 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3346 |
5 | 0 | 0 | 0 | 0 | 6798 | 0 | 0 | 0 | 0 | 0 | 0 | 6798 |
6 | 0 | 0 | 0 | 0 | 0 | 6889 | 0 | 0 | 0 | 0 | 0 | 6889 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 5778 | 0 | 0 | 0 | 0 | 5778 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3477 | 0 | 0 | 0 | 3477 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 667 | 0 | 0 | 667 |
Missing | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1777 | 1777 |
Total | 562 | 866 | 2221 | 3346 | 6798 | 6889 | 5778 | 3477 | 667 | 442 | 1777 | 32823 |
ISSP2012jh1d.dat %>%
tableX(nchild,nchildm)
nchild/nchildm | No children | One child | 2 children | 3 | 4 | 5 | 6 | 7 | 8 | 18 | 21 children | missing | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 24102 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 24102 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
2 | 0 | 4378 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4378 |
3 | 0 | 0 | 2643 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2643 |
4 | 0 | 0 | 0 | 598 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 598 |
5 | 0 | 0 | 0 | 0 | 117 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 117 |
6 | 0 | 0 | 0 | 0 | 0 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 13 | 0 | 0 | 0 | 0 | 0 | 13 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 0 | 0 | 0 | 0 | 7 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 3 |
Missing | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 940 | 940 |
Total | 24102 | 4378 | 2643 | 598 | 117 | 20 | 13 | 7 | 3 | 1 | 1 | 940 | 32823 |
ISSP2012jh1d.dat %>%
tableX(lifsta, lifstam)
lifsta/lifstam | Married | Civil partnership | Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership) | Divorced from spouse/ legally separated from civil partner | Widowed/ civil partner died | Never married/ never in a civil partnership, single | missing | Total |
---|---|---|---|---|---|---|---|---|
1 | 17573 | 0 | 0 | 0 | 0 | 0 | 0 | 17573 |
2 | 0 | 1035 | 0 | 0 | 0 | 0 | 0 | 1035 |
3 | 0 | 0 | 486 | 0 | 0 | 0 | 0 | 486 |
4 | 0 | 0 | 0 | 2997 | 0 | 0 | 0 | 2997 |
5 | 0 | 0 | 0 | 0 | 2763 | 0 | 0 | 2763 |
6 | 0 | 0 | 0 | 0 | 0 | 7535 | 0 | 7535 |
Missing | 0 | 0 | 0 | 0 | 0 | 0 | 434 | 434 |
Total | 17573 | 1035 | 486 | 2997 | 2763 | 7535 | 434 | 32823 |
ISSP2012jh1d.dat %>%
tableX(urbru, urbrum)
urbru/urbrum | A big city | The suburbs or outskirts of a big city | A town or a small city | A country village | A farm or home in the country | missing | Total |
---|---|---|---|---|---|---|---|
1 | 8442 | 0 | 0 | 0 | 0 | 0 | 8442 |
2 | 0 | 4386 | 0 | 0 | 0 | 0 | 4386 |
3 | 0 | 0 | 9203 | 0 | 0 | 0 | 9203 |
4 | 0 | 0 | 0 | 8646 | 0 | 0 | 8646 |
5 | 0 | 0 | 0 | 0 | 1902 | 0 | 1902 |
Missing | 0 | 0 | 0 | 0 | 0 | 244 | 244 |
Total | 8442 | 4386 | 9203 | 8646 | 1902 | 244 | 32823 |
Vanhaa jäsennystä
Yksinkertainen esimerkki, yksi kysymys (V6/Q1b) ja kuusi maata ristiintaulukoituna. Johdatteluna aiheeseen esitellään ca-käsitteet profiili, massa ja reunajakauma. Havainnollistetaan rivi- ja sarakeprofiilien vertailua vastaaviin keskiarvoprofiileihin.
Taulukoita tarkastella ensin rivien ja sitten sarakkeiden suhteen. Miten ne poikkeavat keskiarvostaan, miten toisistaan saman kategorian profiilista. Usein taulukoissa muuttujilla on selvästi eri rooli, kuten tässä. Koitan hahmottaa maiden (=aggregoituja yksilöitä) eroja ja yhtäläisyyksiä. Sarakkeiden vertailussa taas näemme, miten muuttujien profiilit poikkeavat keskiarvostaan. Monia riippuvuksia ja poikkeamia näyttäisi olevan. Klassinen ongelma, Pearson ja Fisher. Luokittelumuuttujien yhteys (“korrelaatio”) on hankala juttu.
Riippumattomuushypoteesi ja \(\chi^2\) - riippumattomuustesti (pieni huomautus - on monta tapaa testata taulukon riippuvuuksia). Riippumattomuushypoteesi ehdollisena todennäköisyytenä reunajakauman suhteen. Riippumattomuustulkinta ei aina päde, jos aggregoidut havainnot/rivi-tai sarakeprofiilit/“samples” MG:n terminologiassa eivät ole riippumattomia. Esimerkki Barentsin merenpohjan lajiston havainnot (lukumäärät, “abundance”) öljylauttojen liepeiltä (havainnot ryväksiä).
zxy Tämä puuttuu kaavoista!
Käsitteitä
“Ranskalaisella terminologia”: käsitellään yksilöiden tai havaintoyksiköiden pilveä ja muuttujien pilveä . Taulukot saadaan yksinkertaisen CA:n tapauksessa aggregoimalla “cloud of individuals”. MG:n termi “sample”.
#V MOOC, LeReoux
Dataa valitaan, aggregoidaan, ryhmitellään. Aktiivisia valintoja Blasius emt. “data ei löydy kadulta”, taulukot vielä vähemmän.
ISSP-datan etu: hyvin dokumentoitu ja editoitu, laadukas aineisto. Iso (ja kallis) työvaihe on jo tehty. Aineistoa on myös käytetty useissa tutkimuksissa, mm. MG:n oppikirjoissa.
Peruskäsitteiden yksinkertaisessa esityksessä tärkein lähde MG:n CAiP #V Siellä tästäkin on sananen: substanssiero usein on.
\(\chi^2\) - etäisyys, yhteys hajontaan eli inertiaan ca-terminologiassa.
Muutama versio tiiviiksi kuvaukseksi - toistoa on (10.4.20)
Dimensioiden vähentäminen tärkein asia (“the essence”), pienessä taulossa ei ihan ilmeinen. Esimerkin pienissä taulukoissa on toisaalta helppo katsoa datasta, mistä on kyse. Toinen tavoite on visualisointi, yleensä kaksiulotteisena kuvana (karttana). Kartta on metaforana hieman hankala. Kartalla esitetään kahden pistejoukon (“pilven”) projektiot, jotka säilyttävät maksimimäärän alkuperäisen n-ulotteisen pistejoukon hajonnasta (inertiasta). Projektiossa lähekkäin olevat saman pilven pisteet voivat kuitenkin olla n-ulotteisessa pilvessä hyvinkin kaukana toisistaan. Tulkinnassa tärkeitä ovat “ääripäät”, ja numeeriset tulokset kertovat kuinka hyvin piste on tasossa esitetty. Pisteiden väliset etäisyydet suhteellisia, ja eri pistejoukkojen välisillä etäisyyksillä ei ole suoraan mitään tulkintaa. Tämä ei oikein vastaa mielikuvaa kartasta, josta helposti näkee kuinka kaukana on Uudenmaan raja.
Yksinkertainen korrespondenssianalyysi on kahden luokitteluasteikon muuttujan riippuvuuksien geometrista analyysiä. Lähtökohta on kahden muuttujan ristiintaulukointi, alkuperäinen data voi olla muillakin asteikoilla mitattua. Menetelmän ydin on tarkastella molempien muuttujien – taulukon rivien ja sarakkeiden – riippuvuuksia kaksiulotteisena kuvana. Kuvaa kutsutaan myös kartaksi, ja tulkinnan ensimmäinen askel on kartan “koordinaatiston” tulkinta. Kaikki etäisyydet kuvassa ovat suhteellisia, vain rivi- ja sarakepisteiden etäisyydet kuvan origosta voidaan tulkita tarkasti. Koordinaatiston tulkinta aloitetaan “katsomalla mitä on oikealla ja vasemmalla, ja mitä on ylhäällä ja alhaalla” (viite LeRoux et.al, Bezecri-sitaatti). Vaikka pisteiden etäisyyksiä edes rivi- ja sarakepisteiden välillä ei voi tarkkaan tulkita (approksimaatioita), projektiossa kaukana toisistaan olevat pisteet ovat kaukana toisistaan myös alkuperäisessä “pistepilvessä”.
Akseleiden tulkinta “ääripäiden” kautta (“kontrasti” ?). Huom “ääripää” ei välttämättä Likert-asteikolla tarkoita “äärimielipidettä”, vaan se voi tarkoittaa myös selvää tai varmaa mielipidettä.(3.10.18).
Vanha lista - tehty jo
Ensimmäinen taulukko: profiilit, massat, keskiarvoprofiilit, khii2 - riippumattomuustesti ja etäisyysmitta
Hyvin tiivis esitys CA:n perusideasta, mutta ilman aivan simppeleitä kolmiulotteisia kuvia (niitä on jo).
Ensimmäinen symmetrinen kartta, perustulkinta (mitä kuvasta voidaan sanoa, mitä ei)
Lyhyt viittaus graafisen esityksen tulkintapulmiin, jotka eivät ole kovin pahoja. CA-kartta kaksoiskuvana (ts. informaatio voidaan palauttaa, skalaaritulo)?
Tulkinnan syventäminen - CA-käsitteiden tarkempi esittely
Haaste: käsitteet ja niiden suhteet ovat abstraktien matemaattisten rakenteiden tuloksia (barycentric, sentroidi), ja ne pitää jotenkin johdonmukaisesti pala kerrallaan tuoda esimerkkien kautta tekstiin. Käsittteistä oma Rmd (ja Excel jos osoittautuu kätevämmäksi), kaavaliite Dispo-repossa ja myös Rmd-muodossa.
edit(10.4.20): kaavaliitteen lisäksi voi tekstiin upottaa muutaman r-koodi-esimerkin
Ensimmäinen symmetrinen kartta
Tulkinnat ja yksinkertaisimmat perussäännöt. Dimensiot ja kuinka paljon alkuperäisen taulukon inertiaa saadaan esitettyä kartalla. Sitten asian ydin, akseleiden tulkinta (“mitä on oikealla ja vasemmalla”). Jos pisteet ovat alkuperäisessä “pilvessä” kaukana toisistaan, ne ovat sitä myös projektiossa. Kartta, mutta etäisyyksillä ei suoraa tulkintaa paitsi eteisyyksinllä origoon. Rivipisteiden suhteelliset etäisyydet, samoin sarakepisteidet. Mitä tarkoittavat prosentit akseleilla?
Varoitus virhetulkinnasta: ryhmien tunnistaminen rivi, myös pelkästään rivi- tai sarakepisteistä koostuvien ryhmien.
zxy Ja silti tavallaan voi. Sarake- ja rivipisteiden etäisyyksille ei ole suoraa tulkintaa, mutta on “vetovoima” (attraktio) ja “työntövoima” (repulsio). Jos profiilissa sarakemuuttujan osuus on suuri (siis suurempi kuin keskiarvopisteessä, suhteellinen ero), se “ajautuu” lähelle sarekepistettä. MG: “loose ends” - paperi, symmetrinen kuva eräs suurin sekaannuksen lähde. Tätä koitetaan selventää myös MG:n JASA-artikkelissa.
zxy(teoria/historia-jaksoon,104.20).Termi korrespondenssi: “neglected multivariate method” - paperissa käännetty näin englanniksi ransk. termi (Benzecri) rivien ja sarakkeiden “correspondence” eli yhteys, “riippuvuus”, vastaavuus tms. edit 4.7.20 Kts. myös Funmooc-muistiinpanot, opk! Mitä kartta esittää? Kaikki edellä kuvattu esitetään suhteellisina eroina koko aineiston keskiarvosta, riippumattomuushypoteesi.
zxy Perustellaan aineiston valinnan vaiheet. Esimerkiksi otetaan yksi kysymys.
zxy Suhde data-lukuun, siellä pitäisi esitellä aineisto sisällöllisesti. Tässä vain valitan esimerkkiä varten yksi kysymys ja kuusi maata.
Aineisto muuttujat Q1a-Q1e (arvot 1-5, täysin samaa mieltä - täysin eri mieltä) ovat vastauksia ensimmäiseen kysymyspatteriin (kts. lomake).
edit 10.4.20 Muuttujien “suunta” samaksi, jos monta. Laajemman aineiston käsittelyyn tästä huomautus.
(V6/Q1b) Alle kouluikäinen lapsi todennäköisesti kärsii, jos hänen äitinsä käy työssä. V6 muunnetaan uudeksi luokittelumuuttujaksi (R:ssä factor) Q1b. Tämä ei vielä tee kuvista ahtaita kun sarakkeita ja rivejä on vähän. Pudotetaan tarvittaessa turha Q-kirjain pois. Alkuperäisessä muuttujassa metatieto säilyy varmemmin, ja tarkistuksia on helpompi tehdä.
Valitaan esimerkin data edellisessä luvussa luodusta R-datasta ISSP2012jh1d.dat). Ihan yhtä hyvin voisi aina lukea suoraan alkuperäisestä spss-tiedostosta, mutta pidemmässä raportissa tämä on siistimpi tapa (23.3.2019). Kun havaintoja ja maita jätetään pois, uuteen dataan jää tyhjiä luokittelumuuttujien luokkia, ne poistetaan.
# UUSI DATA 30.1.20
#
# LUETAAN DATA G1_1_data2.Rmd - tiedostossa, luodaan faktorimuuttujat
# G1_1_data_fct1.Rmd-tiedostossa -> ISSP2012jh1d.dat (df)
# 23 muuttujaa (9 substanssimuuttujaa, 8 taustamuuttujaa, 3 maa-muuttujaa, 3 metadatamuuttujaa)
# 25 maata.
# Poistettu 146 havaintoa, joilla SEX tai AGE puuttuu
# Johdattelevassa esimerkissä kuusi maata, kaksi taustamuuttujaa ja yksi kysymys
# (V6/Q1b)
# Kuusi maata
countries_esim1 <- c(56, 100, 208, 246, 276, 348) #BE,BG,DK,FI,DE,HU
ISSP2012esim3.dat <- filter(ISSP2012jh1d.dat, V4 %in% countries_esim1)
# str(ISSP2012esim3.dat) - pitkä listaus pois (24.2.20)
#neljä maamuuttujaa, kysymys Q1b, ikä ja sukupuoli
vars_esim1 <- c("C_ALPHAN", "V3", "maa","maa3", "Q1b", "sp", "ika")
ISSP2012esim2.dat <- select(ISSP2012esim3.dat, all_of(vars_esim1))
str(ISSP2012esim2.dat) # 8542 obs. of 7 variables, ja sama 8.6.2020
## tibble [8,542 x 7] (S3: tbl_df/tbl/data.frame)
## $ C_ALPHAN: chr [1:8542] "BG" "BG" "BG" "BG" ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## ..- attr(*, "format.spss")= chr "A20"
## ..- attr(*, "display_width")= int 22
## $ V3 : dbl+lbl [1:8542] 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100...
## ..@ label : chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## ..@ format.spss: chr "F5.0"
## ..@ labels : Named num [1:45] 32 36 40 100 124 152 156 158 191 203 ...
## .. ..- attr(*, "names")= chr [1:45] "AR-Argentina" "AU-Australia" "AT-Austria" "BG-Bulgaria" ...
## $ maa : Factor w/ 25 levels "AU","AT","BG",..: 3 3 3 3 3 3 3 3 3 3 ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## $ maa3 : Factor w/ 29 levels "AU-Australia",..: 3 3 3 3 3 3 3 3 3 3 ...
## ..- attr(*, "label")= chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## $ Q1b : Factor w/ 5 levels "S","s","?","e",..: 3 2 3 4 3 3 4 3 2 3 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ sp : Factor w/ 2 levels "m","f": 2 2 1 2 2 2 1 1 2 1 ...
## ..- attr(*, "label")= chr "Sex of Respondent"
## $ ika : dbl+lbl [1:8542] 64, 43, 63, 31, 52, 46, 51, 40, 57, 64, 41, 60, 21, 4...
## ..@ label : chr "Age of respondent"
## ..@ format.spss: chr "F3.0"
## ..@ labels : Named num [1:6] 15 16 17 18 102 999
## .. ..- attr(*, "names")= chr [1:6] "15 years" "16 years" "17 years" "18 years" ...
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# C_ALPHAN: chr, maa: Factor w/ 25
# Poistetaan havainnot, joilla Q1b - muuttujassa puuttuva tieto 'NA'
ISSP2012esim1.dat <- filter(ISSP2012esim2.dat, !is.na(Q1b))
str(ISSP2012esim1.dat) # 8143 obs. of 6 variable
## tibble [8,143 x 7] (S3: tbl_df/tbl/data.frame)
## $ C_ALPHAN: chr [1:8143] "BG" "BG" "BG" "BG" ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## ..- attr(*, "format.spss")= chr "A20"
## ..- attr(*, "display_width")= int 22
## $ V3 : dbl+lbl [1:8143] 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100...
## ..@ label : chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## ..@ format.spss: chr "F5.0"
## ..@ labels : Named num [1:45] 32 36 40 100 124 152 156 158 191 203 ...
## .. ..- attr(*, "names")= chr [1:45] "AR-Argentina" "AU-Australia" "AT-Austria" "BG-Bulgaria" ...
## $ maa : Factor w/ 25 levels "AU","AT","BG",..: 3 3 3 3 3 3 3 3 3 3 ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## $ maa3 : Factor w/ 29 levels "AU-Australia",..: 3 3 3 3 3 3 3 3 3 3 ...
## ..- attr(*, "label")= chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## $ Q1b : Factor w/ 5 levels "S","s","?","e",..: 3 2 3 4 3 3 4 3 2 3 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ sp : Factor w/ 2 levels "m","f": 2 2 1 2 2 2 1 1 2 1 ...
## ..- attr(*, "label")= chr "Sex of Respondent"
## $ ika : dbl+lbl [1:8143] 64, 43, 63, 31, 52, 46, 51, 40, 57, 64, 41, 60, 21, 4...
## ..@ label : chr "Age of respondent"
## ..@ format.spss: chr "F3.0"
## ..@ labels : Named num [1:6] 15 16 17 18 102 999
## .. ..- attr(*, "names")= chr [1:6] "15 years" "16 years" "17 years" "18 years" ...
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# Tarkistuksia - miksi nämä eivät tulosta mitään? (3.2.20)
fct_count(ISSP2012esim1.dat$sp) %>% table1()
##
## ------------------------
## Mean/Count (SD/%)
## n = 2
## f
## m 1 (50%)
## f 1 (50%)
## n
## 4071.5 (385.4)
## ------------------------
fct_count(ISSP2012esim1.dat$Q1b)
f | n |
---|---|
S | 810 |
s | 1935 |
? | 1367 |
e | 2125 |
E | 1906 |
fct_count(ISSP2012esim1.dat$maa)
f | n |
---|---|
AU | 0 |
AT | 0 |
BG | 921 |
CA | 0 |
HR | 0 |
CZ | 0 |
DK | 1388 |
FI | 1110 |
FR | 0 |
HU | 997 |
IS | 0 |
IE | 0 |
LV | 0 |
LT | 0 |
NL | 0 |
NO | 0 |
PL | 0 |
RU | 0 |
SK | 0 |
SI | 0 |
SE | 0 |
CH | 0 |
BE | 2013 |
DE | 1714 |
PT | 0 |
fct_count(ISSP2012esim1.dat$maa3)
f | n |
---|---|
AU-Australia | 0 |
AT-Austria | 0 |
BG-Bulgaria | 921 |
CA-Canada | 0 |
HR-Croatia | 0 |
CZ-Czech Republic | 0 |
DK-Denmark | 1388 |
FI-Finland | 1110 |
FR-France | 0 |
HU-Hungary | 997 |
IS-Iceland | 0 |
IE-Ireland | 0 |
LV-Latvia | 0 |
LT-Lithuania | 0 |
NL-Netherlands | 0 |
NO-Norway | 0 |
PL-Poland | 0 |
RU-Russia | 0 |
SK-Slovakia | 0 |
SI-Slovenia | 0 |
SE-Sweden | 0 |
CH-Switzerland | 0 |
BE-FLA-Belgium/ Flanders | 1012 |
BE-WAL-Belgium/ Wallonia | 490 |
BE-BRU-Belgium/ Brussels | 511 |
DE-W-Germany-West | 1167 |
DE-E-Germany-East | 547 |
PT-Portugal 2012: first fieldwork round (main sample) | 0 |
PT-Portugal 2012: second fieldwork round (complementary sample) | 0 |
# Toimivat tarkistukset (3.2.20)
summary(ISSP2012esim1.dat$sp)
## m f
## 3799 4344
#sp: 3799 + 4344 = 8143
summary(ISSP2012esim1.dat$Q1b)
## S s ? e E
## 810 1935 1367 2125 1906
# S s ? e E
# 810 + 1935 + 1367 + 2125 + 1906 = 8143
# EDELLINEN DATA - havaintojen määrät samat kuin uudella datalla (31.1.20)
#
# 8557 obs. ennen kuin sexagemissing poistettiin, nyt 8542, 8557-8542 = 15
#
# Poistetaan havainnot joissa puuttuva tieto muuttujassa V6 (Q1b) n = 399
# 8542-399 = 8143
# Tyhjät "faktorilabelit" on poistettava
ISSP2012esim1.dat <- ISSP2012esim1.dat %>%
mutate(maa = fct_drop(maa),
maa3 = fct_drop(maa3)
)
summary(ISSP2012esim1.dat$maa)
## BG DK FI HU BE DE
## 921 1388 1110 997 2013 1714
summary(ISSP2012esim1.dat$maa3)
## BG-Bulgaria DK-Denmark FI-Finland
## 921 1388 1110
## HU-Hungary BE-FLA-Belgium/ Flanders BE-WAL-Belgium/ Wallonia
## 997 1012 490
## BE-BRU-Belgium/ Brussels DE-W-Germany-West DE-E-Germany-East
## 511 1167 547
# str(ISSP2012esim1.dat$maa)
# attributes(ISSP2012esim1.dat$maa)
# str(ISSP2012esim1.dat$maa3)
# attributes(ISSP2012esim1.dat$maa3)
ISSP2012esim1.dat %>% tableX(maa, Q1b, type = "count")
maa/Q1b | S | s | ? | e | E | Total |
---|---|---|---|---|---|---|
BG | 118 | 395 | 205 | 190 | 13 | 921 |
DK | 70 | 238 | 152 | 232 | 696 | 1388 |
FI | 47 | 188 | 149 | 423 | 303 | 1110 |
HU | 219 | 288 | 225 | 190 | 75 | 997 |
BE | 191 | 451 | 438 | 552 | 381 | 2013 |
DE | 165 | 375 | 198 | 538 | 438 | 1714 |
Total | 810 | 1935 | 1367 | 2125 | 1906 | 8143 |
fct_count(ISSP2012esim1.dat$Q1b)
f | n |
---|---|
S | 810 |
s | 1935 |
? | 1367 |
e | 2125 |
E | 1906 |
# fct_count(ISSP2012esim1.dat$sp)
# fct_unique(ISSP2012esim1.dat$maa)
# fct_count(ISSP2012esim1.dat$maa)
ISSP2012esim1.dat %>% tableX(maa, C_ALPHAN, type = "count")
maa/C_ALPHAN | BE | BG | DE | DK | FI | HU | Total |
---|---|---|---|---|---|---|---|
BG | 0 | 921 | 0 | 0 | 0 | 0 | 921 |
DK | 0 | 0 | 0 | 1388 | 0 | 0 | 1388 |
FI | 0 | 0 | 0 | 0 | 1110 | 0 | 1110 |
HU | 0 | 0 | 0 | 0 | 0 | 997 | 997 |
BE | 2013 | 0 | 0 | 0 | 0 | 0 | 2013 |
DE | 0 | 0 | 1714 | 0 | 0 | 0 | 1714 |
Total | 2013 | 921 | 1714 | 1388 | 1110 | 997 | 8143 |
# maa3 - siistitään "faktorilabelit" kaksikirjaimisiksi
#
# ISO 3166 Code V3 - maiden jaot
# 5601 BE-FLA-Belgium/ Flanders
# 5602 BE-WAL-Belgium/ Wallonia
# 5603 BE-BRU-Belgium/ Brussels
# 27601 DE-W-Germany-West
# 27602 DE-E-Germany-East
# Tähän pitäisi päästä
# levels = c("100","208","246","348","5601","5602","5603","27601","27602"),
# labels = c("BG","DK","FI","HU","bF","bW","bB","dW","dE"))
levels(ISSP2012esim1.dat$maa3)
## [1] "BG-Bulgaria" "DK-Denmark"
## [3] "FI-Finland" "HU-Hungary"
## [5] "BE-FLA-Belgium/ Flanders" "BE-WAL-Belgium/ Wallonia"
## [7] "BE-BRU-Belgium/ Brussels" "DE-W-Germany-West"
## [9] "DE-E-Germany-East"
ISSP2012esim1.dat <- ISSP2012esim1.dat %>%
mutate(maa3 =
fct_recode(maa3,
"BG" = "BG-Bulgaria",
"DK" = "DK-Denmark",
"FI" = "FI-Finland",
"HU" = "HU-Hungary",
"bF" = "BE-FLA-Belgium/ Flanders",
"bW" = "BE-WAL-Belgium/ Wallonia",
"bB" = "BE-BRU-Belgium/ Brussels",
"dW" = "DE-W-Germany-West",
"dE" = "DE-E-Germany-East")
)
# tarkistuksia
levels(ISSP2012esim1.dat$maa3)
## [1] "BG" "DK" "FI" "HU" "bF" "bW" "bB" "dW" "dE"
# str(ISSP2012esim1.dat$maa3) # 9 levels
summary(ISSP2012esim1.dat$maa3)
## BG DK FI HU bF bW bB dW dE
## 921 1388 1110 997 1012 490 511 1167 547
# TÄSSÄ TOISTOA! (4.2.20)
# Muutetaan muuttujien "maa" ja "maa3" arvojen (levels) järjestys samaksi kuin alkuperäisen
# muuttujan C_ALPHAN. Helpomi verrata aikaisempiin tuloksiin.
# maa samaan järjestukseen kuin C_ALPHAN - olisiko aakkosjärjestys?
# tämä vain siksi, että muuten esimerkin ca-kartta "kääntyy"
# "vanha" maa-muuttuja talteen - ei ehkä tarpeen? (4.2.20)
ISSP2012esim1.dat$maa2 <- ISSP2012esim1.dat$maa # "alkuperäinen" maa talteen
ISSP2012esim1.dat <- ISSP2012esim1.dat %>%
mutate(maa =
fct_relevel(maa,
"BE",
"BG",
"DE",
"DK",
"FI",
"HU"))
ISSP2012esim1.dat <- ISSP2012esim1.dat %>%
mutate(maa3 =
fct_relevel(maa3,
"bF",
"bW",
"bB",
"BG",
"dW",
"dE",
"DK",
"FI",
"HU"))
# Tarkistus
ISSP2012esim1.dat %>% tableX(maa2,maa, type = "count")
maa2/maa | BE | BG | DE | DK | FI | HU | Total |
---|---|---|---|---|---|---|---|
BG | 0 | 921 | 0 | 0 | 0 | 0 | 921 |
DK | 0 | 0 | 0 | 1388 | 0 | 0 | 1388 |
FI | 0 | 0 | 0 | 0 | 1110 | 0 | 1110 |
HU | 0 | 0 | 0 | 0 | 0 | 997 | 997 |
BE | 2013 | 0 | 0 | 0 | 0 | 0 | 2013 |
DE | 0 | 0 | 1714 | 0 | 0 | 0 | 1714 |
Total | 2013 | 921 | 1714 | 1388 | 1110 | 997 | 8143 |
ISSP2012esim1.dat %>% tableX(maa,C_ALPHAN, type = "count")
maa/C_ALPHAN | BE | BG | DE | DK | FI | HU | Total |
---|---|---|---|---|---|---|---|
BE | 2013 | 0 | 0 | 0 | 0 | 0 | 2013 |
BG | 0 | 921 | 0 | 0 | 0 | 0 | 921 |
DE | 0 | 0 | 1714 | 0 | 0 | 0 | 1714 |
DK | 0 | 0 | 0 | 1388 | 0 | 0 | 1388 |
FI | 0 | 0 | 0 | 0 | 1110 | 0 | 1110 |
HU | 0 | 0 | 0 | 0 | 0 | 997 | 997 |
Total | 2013 | 921 | 1714 | 1388 | 1110 | 997 | 8143 |
str(ISSP2012esim1.dat)
## tibble [8,143 x 8] (S3: tbl_df/tbl/data.frame)
## $ C_ALPHAN: chr [1:8143] "BG" "BG" "BG" "BG" ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## ..- attr(*, "format.spss")= chr "A20"
## ..- attr(*, "display_width")= int 22
## $ V3 : dbl+lbl [1:8143] 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100...
## ..@ label : chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## ..@ format.spss: chr "F5.0"
## ..@ labels : Named num [1:45] 32 36 40 100 124 152 156 158 191 203 ...
## .. ..- attr(*, "names")= chr [1:45] "AR-Argentina" "AU-Australia" "AT-Austria" "BG-Bulgaria" ...
## $ maa : Factor w/ 6 levels "BE","BG","DE",..: 2 2 2 2 2 2 2 2 2 2 ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## $ maa3 : Factor w/ 9 levels "bF","bW","bB",..: 4 4 4 4 4 4 4 4 4 4 ...
## ..- attr(*, "label")= chr "Country/ Sample ISO 3166 Code (see V4 for codes for whole nation states)"
## $ Q1b : Factor w/ 5 levels "S","s","?","e",..: 3 2 3 4 3 3 4 3 2 3 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## $ sp : Factor w/ 2 levels "m","f": 2 2 1 2 2 2 1 1 2 1 ...
## ..- attr(*, "label")= chr "Sex of Respondent"
## $ ika : dbl+lbl [1:8143] 64, 43, 63, 31, 52, 46, 51, 40, 57, 64, 41, 60, 21, 4...
## ..@ label : chr "Age of respondent"
## ..@ format.spss: chr "F3.0"
## ..@ labels : Named num [1:6] 15 16 17 18 102 999
## .. ..- attr(*, "names")= chr [1:6] "15 years" "16 years" "17 years" "18 years" ...
## $ maa2 : Factor w/ 6 levels "BG","DK","FI",..: 1 1 1 1 1 1 1 1 1 1 ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
TODO (1) Taulukot erotettava omiksi koodilohkoiksi bookdowniin. (2) Ikä - maa - taulukko vain tarkistuksiin, ihan liian pitkä.
# Taulukoita (31.1.2020) ja tarkistuksia
# toinen maa-muuttuja, jossa Saksan ja Belgian jako
# V3
# 5601 BE-FLA-Belgium/ Flanders
# 5602 BE-WAL-Belgium/ Wallonia
# 5603 BE-BRU-Belgium/ Brussels
# 27601 DE-W-Germany-West
# 27602 DE-E-Germany-East
# Tarkastuksia
# assert_that ehkä tarpeeton - expect_equivalet testaa levelien
# järjestyksen ja määrän (20.2.20)
assert_that(length(levels(ISSP2012esim1.dat$maa)) == 6)
## [1] TRUE
assert_that(length(levels(ISSP2012esim1.dat$maa3)) == 9)
## [1] TRUE
assert_that(length(levels(ISSP2012esim1.dat$Q1b)) == 5)
## [1] TRUE
# expect_ ei anna ok-ilmoitusta, ainoastaan virheilmoituksen? (11.4.20)
expect_equivalent(levels(ISSP2012esim1.dat$maa),
c("BE", "BG", "DE", "DK", "FI", "HU"))
expect_equivalent(levels(ISSP2012esim1.dat$maa3),
c("bF","bW","bB", "BG","dW","dE","DK", "FI", "HU"))
expect_equivalent(levels(ISSP2012esim1.dat$sp), c("m", "f"))
expect_equivalent(levels(ISSP2012esim1.dat$Q1b),
c("S", "s", "?", "e", "E"))
ISSP2012esim1.dat %>% tableX(maa,ika,type = "row_perc")
maa/ika | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 96 | 97 | 102 | Total |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BE | 0.00 | 0.00 | 0.00 | 0.79 | 1.29 | 1.24 | 1.19 | 1.54 | 1.49 | 1.34 | 1.44 | 1.19 | 1.69 | 1.34 | 1.39 | 1.64 | 1.59 | 2.04 | 1.74 | 2.04 | 1.89 | 1.59 | 1.74 | 1.49 | 1.54 | 1.89 | 1.84 | 1.69 | 1.69 | 1.54 | 1.69 | 1.64 | 2.68 | 1.79 | 1.54 | 1.89 | 1.79 | 1.94 | 2.19 | 1.59 | 1.59 | 1.99 | 1.94 | 2.29 | 1.79 | 1.84 | 1.64 | 1.84 | 1.59 | 1.49 | 1.89 | 1.44 | 1.54 | 1.49 | 1.29 | 1.44 | 1.04 | 1.09 | 0.89 | 0.99 | 1.04 | 1.14 | 0.79 | 0.50 | 0.70 | 0.75 | 0.55 | 0.25 | 0.45 | 0.50 | 0.45 | 0.30 | 0.30 | 0.20 | 0.00 | 0.10 | 0.15 | 0.00 | 0.05 | 0.05 | 0.00 | 0.05 | 0.00 | 100.00 |
BG | 0.00 | 0.00 | 0.00 | 1.41 | 1.09 | 0.98 | 0.98 | 0.76 | 1.19 | 0.76 | 1.19 | 1.41 | 0.98 | 0.98 | 1.09 | 1.52 | 0.98 | 1.30 | 1.52 | 0.98 | 1.74 | 1.74 | 1.30 | 1.95 | 1.19 | 2.06 | 1.74 | 2.61 | 2.50 | 1.41 | 0.76 | 0.87 | 1.52 | 1.30 | 1.41 | 1.74 | 0.87 | 2.17 | 1.85 | 2.17 | 2.17 | 2.50 | 2.06 | 2.17 | 1.63 | 2.93 | 1.74 | 3.04 | 1.85 | 1.30 | 2.28 | 1.74 | 1.63 | 1.63 | 1.52 | 1.74 | 1.41 | 1.52 | 1.74 | 1.85 | 1.63 | 1.09 | 1.41 | 0.98 | 1.41 | 0.43 | 0.22 | 0.76 | 0.43 | 0.11 | 0.11 | 0.22 | 0.11 | 0.22 | 0.33 | 0.11 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 100.00 |
DE | 0.00 | 0.00 | 0.00 | 1.11 | 1.69 | 1.23 | 1.58 | 1.40 | 1.93 | 1.46 | 1.58 | 1.17 | 1.40 | 1.23 | 1.46 | 1.23 | 1.52 | 1.40 | 0.99 | 1.34 | 1.28 | 1.34 | 1.11 | 1.23 | 1.23 | 1.87 | 1.52 | 2.16 | 1.81 | 1.98 | 1.75 | 2.80 | 2.39 | 1.98 | 2.10 | 2.16 | 1.98 | 1.98 | 1.52 | 1.87 | 2.10 | 1.81 | 1.69 | 2.04 | 1.63 | 1.23 | 1.93 | 2.16 | 1.75 | 1.28 | 1.28 | 0.76 | 1.28 | 1.81 | 0.99 | 1.23 | 0.93 | 1.81 | 1.93 | 1.11 | 1.81 | 0.99 | 0.93 | 1.23 | 0.64 | 0.41 | 0.41 | 0.58 | 0.64 | 0.47 | 0.47 | 0.35 | 0.12 | 0.12 | 0.06 | 0.12 | 0.00 | 0.12 | 0.00 | 0.00 | 0.06 | 0.00 | 0.00 | 100.00 |
DK | 0.00 | 0.00 | 0.00 | 1.73 | 1.30 | 1.30 | 2.23 | 2.52 | 2.74 | 1.95 | 1.15 | 1.08 | 1.73 | 1.37 | 1.44 | 1.01 | 2.09 | 1.44 | 1.44 | 2.59 | 1.15 | 1.73 | 1.73 | 1.37 | 1.80 | 2.02 | 1.80 | 1.51 | 1.80 | 1.59 | 2.31 | 1.80 | 2.23 | 1.37 | 2.16 | 2.02 | 1.66 | 1.87 | 2.16 | 2.23 | 2.02 | 2.16 | 2.02 | 1.30 | 1.66 | 1.87 | 1.80 | 1.66 | 1.37 | 1.80 | 1.22 | 2.31 | 2.09 | 1.59 | 1.08 | 1.80 | 1.22 | 1.15 | 0.86 | 1.08 | 0.72 | 0.58 | 0.50 | 0.29 | 0.22 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.07 | 0.00 | 0.00 | 0.00 | 0.07 | 0.00 | 0.00 | 0.00 | 0.07 | 100.00 |
FI | 0.72 | 1.80 | 1.17 | 1.62 | 1.08 | 1.35 | 1.17 | 0.63 | 1.26 | 1.53 | 1.35 | 1.44 | 1.26 | 1.17 | 2.61 | 1.17 | 1.62 | 1.08 | 1.80 | 1.35 | 1.44 | 1.53 | 1.98 | 1.62 | 0.90 | 1.71 | 1.35 | 1.26 | 1.08 | 1.80 | 1.62 | 1.89 | 2.70 | 2.61 | 1.98 | 1.71 | 1.35 | 1.53 | 2.07 | 2.43 | 1.80 | 2.16 | 2.52 | 1.53 | 2.52 | 1.80 | 2.25 | 2.79 | 1.71 | 1.89 | 2.25 | 2.61 | 2.25 | 1.44 | 1.62 | 0.99 | 1.89 | 1.62 | 1.53 | 0.81 | 0.18 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 100.00 |
HU | 0.00 | 0.00 | 0.00 | 0.90 | 1.20 | 1.00 | 0.80 | 1.91 | 1.91 | 1.10 | 1.50 | 1.00 | 1.40 | 1.30 | 1.91 | 1.60 | 1.81 | 1.50 | 2.41 | 1.50 | 1.71 | 2.91 | 2.01 | 1.60 | 2.61 | 1.50 | 1.40 | 1.10 | 3.01 | 1.40 | 2.31 | 2.21 | 2.31 | 1.91 | 1.50 | 1.30 | 1.50 | 1.20 | 1.10 | 2.01 | 2.11 | 1.71 | 1.10 | 2.61 | 3.71 | 1.91 | 1.50 | 1.91 | 2.81 | 1.20 | 1.20 | 1.60 | 0.90 | 1.20 | 1.40 | 1.00 | 1.71 | 0.50 | 1.60 | 1.40 | 0.60 | 0.80 | 0.40 | 0.40 | 0.40 | 0.30 | 0.70 | 0.30 | 0.20 | 0.80 | 0.10 | 0.10 | 0.20 | 0.10 | 0.00 | 0.00 | 0.00 | 0.00 | 0.10 | 0.00 | 0.00 | 0.00 | 0.00 | 100.00 |
All | 0.10 | 0.25 | 0.16 | 1.22 | 1.31 | 1.20 | 1.38 | 1.51 | 1.78 | 1.40 | 1.39 | 1.20 | 1.46 | 1.25 | 1.61 | 1.36 | 1.62 | 1.52 | 1.60 | 1.71 | 1.54 | 1.73 | 1.62 | 1.50 | 1.52 | 1.85 | 1.63 | 1.73 | 1.90 | 1.65 | 1.77 | 1.93 | 2.37 | 1.83 | 1.81 | 1.85 | 1.61 | 1.82 | 1.85 | 1.99 | 1.93 | 2.03 | 1.89 | 1.99 | 2.05 | 1.84 | 1.81 | 2.15 | 1.78 | 1.50 | 1.66 | 1.66 | 1.61 | 1.55 | 1.28 | 1.38 | 1.29 | 1.30 | 1.38 | 1.15 | 1.04 | 0.81 | 0.69 | 0.59 | 0.55 | 0.36 | 0.33 | 0.31 | 0.32 | 0.33 | 0.23 | 0.18 | 0.14 | 0.11 | 0.06 | 0.06 | 0.04 | 0.02 | 0.04 | 0.01 | 0.01 | 0.01 | 0.01 | 100.00 |
# Riviprofiilit
# ISSP2012esim1.dat %>% tableX(maa,ika,type = "row_perc")
ISSP2012esim1.dat %>% tableX(maa,sp ,type = "row_perc")
maa/sp | m | f | Total |
---|---|---|---|
BE | 47.44 | 52.56 | 100.00 |
BG | 40.72 | 59.28 | 100.00 |
DE | 48.66 | 51.34 | 100.00 |
DK | 49.42 | 50.58 | 100.00 |
FI | 42.88 | 57.12 | 100.00 |
HU | 47.44 | 52.56 | 100.00 |
All | 46.65 | 53.35 | 100.00 |
# Kysymyksen Q1b vastaukset
ISSP2012esim1.dat %>% tableX(maa,Q1b,type = "row_perc")
maa/Q1b | S | s | ? | e | E | Total |
---|---|---|---|---|---|---|
BE | 9.49 | 22.40 | 21.76 | 27.42 | 18.93 | 100.00 |
BG | 12.81 | 42.89 | 22.26 | 20.63 | 1.41 | 100.00 |
DE | 9.63 | 21.88 | 11.55 | 31.39 | 25.55 | 100.00 |
DK | 5.04 | 17.15 | 10.95 | 16.71 | 50.14 | 100.00 |
FI | 4.23 | 16.94 | 13.42 | 38.11 | 27.30 | 100.00 |
HU | 21.97 | 28.89 | 22.57 | 19.06 | 7.52 | 100.00 |
All | 9.95 | 23.76 | 16.79 | 26.10 | 23.41 | 100.00 |
# Kuuluu ehkä vasta seuraavaan jaksoon ? (20.2.20)
ISSP2012esim1.dat %>% tableX(maa3,Q1b,type = "row_perc")
maa3/Q1b | S | s | ? | e | E | Total |
---|---|---|---|---|---|---|
bF | 5.04 | 23.81 | 25.89 | 30.83 | 14.43 | 100.00 |
bW | 10.82 | 21.02 | 18.57 | 24.08 | 25.51 | 100.00 |
bB | 17.03 | 20.94 | 16.63 | 23.87 | 21.53 | 100.00 |
BG | 12.81 | 42.89 | 22.26 | 20.63 | 1.41 | 100.00 |
dW | 11.40 | 26.82 | 11.83 | 32.13 | 17.82 | 100.00 |
dE | 5.85 | 11.33 | 10.97 | 29.80 | 42.05 | 100.00 |
DK | 5.04 | 17.15 | 10.95 | 16.71 | 50.14 | 100.00 |
FI | 4.23 | 16.94 | 13.42 | 38.11 | 27.30 | 100.00 |
HU | 21.97 | 28.89 | 22.57 | 19.06 | 7.52 | 100.00 |
All | 9.95 | 23.76 | 16.79 | 26.10 | 23.41 | 100.00 |
# str(ISSP2012esim1.dat) # 8143 obs. of 7 variable,
# sama kuin vanhassa Galku-koodissa.
Taulukot ja kuvat omina koodilohkoina bookdown-versioon
Frekvenssitaulukko
# Esimerkki - siisti tuloste (20.2.20)
taulu2 <- ISSP2012esim1.dat %>% tableX(maa, Q1b, type = "count")
knitr::kable(taulu2,digits = 2, booktabs = TRUE,
caption = "Kysymyksen Q1b vastaukset maittain")
S | s | ? | e | E | Total | |
---|---|---|---|---|---|---|
BE | 191 | 451 | 438 | 552 | 381 | 2013 |
BG | 118 | 395 | 205 | 190 | 13 | 921 |
DE | 165 | 375 | 198 | 538 | 438 | 1714 |
DK | 70 | 238 | 152 | 232 | 696 | 1388 |
FI | 47 | 188 | 149 | 423 | 303 | 1110 |
HU | 219 | 288 | 225 | 190 | 75 | 997 |
Total | 810 | 1935 | 1367 | 2125 | 1906 | 8143 |
Riviprosentit
taulu3 <- ISSP2012esim1.dat %>% tableX(maa,Q1b,type = "row_perc")
knitr::kable(taulu3,digits = 2, booktabs = TRUE,
caption = "Kysymyksen Q1b vastaukset, riviprosentit")
S | s | ? | e | E | Total | |
---|---|---|---|---|---|---|
BE | 9.49 | 22.40 | 21.76 | 27.42 | 18.93 | 100.00 |
BG | 12.81 | 42.89 | 22.26 | 20.63 | 1.41 | 100.00 |
DE | 9.63 | 21.88 | 11.55 | 31.39 | 25.55 | 100.00 |
DK | 5.04 | 17.15 | 10.95 | 16.71 | 50.14 | 100.00 |
FI | 4.23 | 16.94 | 13.42 | 38.11 | 27.30 | 100.00 |
HU | 21.97 | 28.89 | 22.57 | 19.06 | 7.52 | 100.00 |
All | 9.95 | 23.76 | 16.79 | 26.10 | 23.41 | 100.00 |
Sarakeprosentit
taulu4 <- ISSP2012esim1.dat %>% tableX(maa,Q1b,type = "col_perc")
knitr::kable(taulu4,digits = 2, booktabs = TRUE,
caption = "Kysymyksen Q1b vastaukset, sarakeprosentit")
S | s | ? | e | E | All | |
---|---|---|---|---|---|---|
BE | 23.58 | 23.31 | 32.04 | 25.98 | 19.99 | 24.72 |
BG | 14.57 | 20.41 | 15.00 | 8.94 | 0.68 | 11.31 |
DE | 20.37 | 19.38 | 14.48 | 25.32 | 22.98 | 21.05 |
DK | 8.64 | 12.30 | 11.12 | 10.92 | 36.52 | 17.05 |
FI | 5.80 | 9.72 | 10.90 | 19.91 | 15.90 | 13.63 |
HU | 27.04 | 14.88 | 16.46 | 8.94 | 3.93 | 12.24 |
Total | 100.00 | 100.00 | 100.00 | 100.00 | 100.00 | 100.00 |
Taulukoissa on kuuden maan vastausten jakauma kysymykseen “Alle kouluikäinen lapsi todennäköisesti kärsii, jos hänen äitinsä käy työssä”. Taulukko on pieni, mutta havaintoja 8143. Alemman suhteellisten frekvenssien taulukon rivejä voi verrata toisiinsa ja alimpaan (“Total”“) keskimääräiseen riviin, sarakemuuttujien eli vastausvaihtoehtojen reunajakaumaan. Vastavasti sarakkeita voi verrata rivimuuttujien reunajakaumasarakkeeseen (”Total2). Eniten vastaajia on Belgiasta (25 %) ja Saksasta (21 %), vähiten Unkarista (12 %). edit 24.2.20 Lisätty ca-karttoihin versio, jossa maiden painot samat (= 1). Esimerkkilaskelmia CAcalc_1.R.
# CA tässä, jotta saadaan rivi- ja sarakeprofiilikuvat
simpleCA1 <- ca(~maa + Q1b,ISSP2012esim1.dat)
# Maiden järjestys kääntää kuvan (1.2.20) - esimerkki on
# vähän kuriositeetti. Kartta voi tietysti "flipata" koordintaattien suhteen ainakin
# neljällä tavalla (? 180 astetta molempien akseleiden ympäri molempiin suuntiin?)
# (18.2.20). Tämän maa2-muuttujaa käyttävän kuvan voi jättää pois (8.4.20)
# simpleCA2 <- ca(~maa2 + Q1b,ISSP2012esim1.dat)
# Oikeastaan maiden vertailussa pitäisi niiden massat skaalata yhtä suuriksi, tässä
# pikainen kokeilu (20.2.20)
# Riviprosentit taulukoksi, nimet sarakkeille ja riveille (ei kovin robustia...)
johdesim1_rowproc.tab <- simpleCA1$N / rowSums(simpleCA1$N)
colnames(johdesim1_rowproc.tab) <- c("S" ,"s" ,"?","e", "E")
rownames(johdesim1_rowproc.tab) <- c("BE", "BG", "DE", "DK", "FI", "HU")
# Miten tibblenä? Ei toimi, ei maa-muuttujaa ollenkaan
# johdesim1_rowproc.tbl <- as_tibble(johdesim1_rowproc.tab)
# str(johdesim1_rowproc.tbl)
# TARKISTUKSIA (20.2.20)
# johdesim1_rowproc.tab
# rowSums(johdesim1_rowproc.tab)
# str(johdesim1_rowproc.tab)
simpleCA3 <- ca(johdesim1_rowproc.tab)
# Kartta piirretään koodilohkossa simpleCAmap1, r. 773 noin.
# Riviprosentit tarkistusta varten
# S s ? e E
#BE 9.49 22.40 21.76 27.42 18.93
#BG 12.81 42.89 22.26 20.63 1.41
#DE 9.63 21.88 11.55 31.39 25.55
#DK 5.04 17.15 10.95 16.71 50.14
#FI 4.23 16.94 13.42 38.11 27.30
#HU 21.97 28.89 22.57 19.06 7.52
#
# Ja datan saa leikepöydän kautta, jos on tarve pikatarkistuksiin
# read <- read.table("clipboard")
# 9.4.2020 CAcalc_1.R - laskentoa ca-funktion tuloksilla (16 objektin lista)
TODO 2.2.20
Onko tämä kuva tallennettava kuvatiedostoksi, vai onnistuuko sen tuottaminen Bookdownissa. Ei taida onnistua? (4.9.18)
Sarakeprofiilit, oikea järjestys maa-muuttujan tasoilla. Faktoreiden järjestys voi tuottaa yllätyksiä, kun dataa muokataan ggplot - grafiikaksi.
#mutkikas kuvan piirto - sarakeprofiilit vertailussa
#ggplot vaatii df-rakenteen ja 'long data' - muotoon
##https://stackoverflow.com/questions/9563368/create-stacked-barplot-where-each-stack-is-scaled-to-sum-to
#
# käytetään ca - tuloksia
apu1 <- (simpleCA1$N)
colnames(apu1) <- c("S", "s", "?", "e", "E")
rownames(apu1) <- c("BE", "BG", "DE", "DK", "FI", "HU")
apu1_df <- as.data.frame(apu1)
#lasketan rivien reunajakauma
apu1_df$ka_sarake <- rowSums(apu1_df)
#muokataan 'long data' - muotoon
apu1b_df <- melt(cbind(apu1_df, ind = rownames(apu1_df)), id.vars = c('ind'))
ggplot(apu1b_df, aes(x = variable, y = value, fill = ind)) +
geom_bar(position = "fill", stat = "identity") +
scale_y_continuous(labels = percent_format())
Q1b:Sarakeprofiilit ja keskiarvoprofiili
# apu1_df
# apu1b_df
Edit 28.5.20 Idea: ca havainnollistaa rivien ja sarakkaeiden riippuvuuksia eroina keskiarvosta, yksinkertainen khii2-tulkinta riippumattomuushypoteesina. Rivi-ja sarakeprofiilit standardoidaan (tulkintaa!) PCA-tyyliin (poikkeama keskiarvosta jaetaan hajonnalla, lukumäärädata ja POisson-jakaumassa hajonta=odotusarvo). Rivi- ja sarakeratkaisuiden symmetria ja sidos esitetään tässä.
Sarakekuvassa näkyy E-sarakkeenselvästi ero (DK), muut erot eivät niinkään. S-sarakkeessa HU erottuu, samoin eos(?)-sarakkeessa BE.
TODO 2.2.20 Voisi harkita taulukoiden (rivi- ja sarakeprosentit) sijoittamista kuvien viereen?
# riviprofiilit ja keskiarvorivi - 18.9.2018
apu2_df <- as.data.frame(apu1)
apu2_df <- rbind(apu2_df, ka_rivi = colSums(apu2_df))
#apu2_df
#str(apu2_df)
## typeof(apu2_df) # what is it?
## class(apu2_df) # what is it? (sorry)
## storage.mode(apu2_df) # what is it? (very sorry)
## length(apu2_df) # how long is it? What about two dimensional
## objects?
# attributes(apu2_df)
# temp1 <- cbind(apu2_df, ind = rownames(apu2_df))
# temp1
##muokataan 'long data' - muotoon
apu2b_df <- melt(cbind(apu2_df, ind = rownames(apu2_df)), id.vars = c('ind'))
# str(apu2b_df)
# glimpse(apu2b_df)
#
#ggplot(apu2b_df, aes(x = value, y = ind, fill = variable)) +
# geom_bar(position = "fill", stat ="identity") +
# #coord_flip() +
# scale_x_continuous(labels = percent_format())
#versio2 toimii (18.9.2018)
ggplot(apu2b_df, aes(x = ind, y = value, fill = variable)) +
geom_bar(position = "fill", stat = "identity") +
coord_flip() +
scale_y_continuous(labels = percent_format())
Q1b: riviprofiilit ja keskiarvorivi
edit 28.5.20 Tanska ja Unkari erottuvat ka-rivistä E-vaihtoehdon (“modaliteetin”) osuuksissa selvimmin. Bulgarialla S+s on hieman suurempi kuin Unkarilla, mutta s-osuus on suurempi. “Ääripäitä” S- ja E-osuuksissa edustavat HU - FI, DK ja BG-HU - DK.
Graafinen analyysi ja R
Käytänön neuvoja data-analyysiin, kuulunee tekstiin vai meneekö “ohjelmistoympäristö” -liitteeseen? Tärkeä juttu!
Kuvasuhteen saa oikeaksi, kun avaa g-ikkunan (X11()) ja sitten plot. Voi tallentaa pdf-muodossa grafiikkaikkunasta, ja ladata outputiin knitr-vaiheessa. Parempi tulostaa kuvatdsto pdf-ajurilla, jos lopulliseen versioon joutuu näin tekemään (13.5.2018 ). Tämä voi olla järkevä tapa analyysivaiheessa? Teksti kopsattu alla olevasta koodilohkosta.
Ensimmäinen korrespondenssianalyysi - kokeiluja kuvasuhteen säätämiseksi output- dokumentissa. RStudiossa voi avata komentokehoitteessa grafiikka-ikkunan. Siitä käsin tallennettu pdf-kuva on ladattu alla Rmarkdownin omalla komennolla, kohdistus keskelle. Parhaiten näyttäisi toimivan knitrin funktio, mutta oletuskuvakoolla saa ca-kuvasta näköjään aika lähelle oikeanlaisen ilman mitään temppuja.
zxy Selventäisikö vielä khii2-etäisyyksien taulukko, tai ehkä seuraavassa luvussa? #V MG&Blasius, “vihreän kirja”, johdanto.
Rivien (1) ja sarakkeiden (2) khii2-etäisyydet keskiarvosta. TODO 19.2.20 Siistiksi taulukoksi. as_tibble antaa varoituksen, mutta toimii (11.4.20).
Rivimassat skaalautuvat ca-ratkaisussa vakioksi 1/6 (0.167), kun lähtötietona on riviprofiilien taulukko jossa rivimassat ovat 1. Sarakemassat skaalautuvat uudelleen. Massojen summa on 1.
# khii2 - etäisyyksien taulukko
#str(simpleCA1)
#simpleCA1$rowdist
#str(simpleCA1$rowdist)
# verrataan "tavallisen" ca:n ja riviprofiili-ca:n khii2-etäisyyksiä origosta
# 5.9.2020
# khii2 - etäisyydet origosta
# simpleCA1$rownames
# simpleCA1$rowdist
# simpleCA3$rowdist
# simpleCA3$colnames
# simpleCA1$coldist
# simpleCA3$coldist
# massat - huom! Riviprofiilien ca: rivimassojen summa on 1 !(5.9.20)
# sum(simpleCA1$rowmass)
# sum(simpleCA3$rowmass)
# rivit
# simpleCA1$rownames
# simpleCA1$rowmass
simpleCA3$rowmass
## [1] 0.1666667 0.1666667 0.1666667 0.1666667 0.1666667 0.1666667
# sum(simpleCA1$rowmass)
# sum(simpleCA3$rowmass)
# sarakkeet
# simpleCA3$colnames
# simpleCA1$colmass
# simpleCA3$colmass
# sum(simpleCA1$colmass)
# sum(simpleCA3$colmass)
# rivien khii2 - etäisyydet, massat ja vakioidut massat
rowdist.tbl <- as_tibble(rbind(simpleCA1$rowdist, simpleCA3$rowdist),.name_repair = c("unique"))
## New names:
## * `` -> ...1
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
## * ...
colnames(rowdist.tbl) <- simpleCA1$rownames
knitr::kable(rowdist.tbl,digits = 3, booktabs = TRUE,
caption = "Rivietäisyydet keskiarvosta (khii2) - toisella rivilla massat 1")
BE | BG | DE | DK | FI | HU |
---|---|---|---|---|---|
0.158 | 0.631 | 0.175 | 0.634 | 0.348 | 0.550 |
0.147 | 0.590 | 0.206 | 0.689 | 0.384 | 0.508 |
# rowdist.tbl ok 15.9.20
# sarakkeiden khii2 - etäisyydet, massat ja vakioidut massat
coldist.tbl <- as_tibble(rbind(simpleCA1$coldist, simpleCA3$coldist),.name_repair = c("unique"))
## New names:
## * `` -> ...1
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
# coldist.tbl
colnames(coldist.tbl) <- simpleCA1$colnames
# print(coldist.tbl)
knitr::kable(coldist.tbl,digits = 3, booktabs = TRUE,
caption = "Sarake-etäisyydet keskiarvosta (khii2) - - toisella rivilla massat 1")
S | s | ? | e | E |
---|---|---|---|---|
0.525 | 0.325 | 0.308 | 0.272 | 0.627 |
0.559 | 0.357 | 0.303 | 0.294 | 0.719 |
colmass.tbl <- as_tibble(rbind(simpleCA1$coldist, simpleCA3$coldist),.name_repair = c("unique"))
## New names:
## * `` -> ...1
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
colnames(colmass.tbl) <- simpleCA1$colnames
knitr::kable(colmass.tbl,digits = 3, booktabs = TRUE,
caption = "Sarakkeiden massat - toisella rivilla rivimassat 1")
S | s | ? | e | E |
---|---|---|---|---|
0.525 | 0.325 | 0.308 | 0.272 | 0.627 |
0.559 | 0.357 | 0.303 | 0.294 | 0.719 |
Rivi- ja sarake-etäisyydet (khii2) keskiarvosta rivien massoilla ja vakioiduilla massoilla (=1). Massoiltaan (havaintojen lukumäärä tai jotain siihen verrannollista) pienet rivit HU ja BG ovat vakiomassojen ratkaisussa lähempänä keskiarvoa. Niin on myös Belgia. Saksa, Tanska ja Suomi ovat kauempan origosta.
CA-ratkaisun (algoritmin) lähtötieto: suhteelliset frekvenssit (korrespondenssimatriisi P) (30.3.20)
taulu5 <- ISSP2012esim1.dat %>% tableX(maa,Q1b,type = "cell_perc")
knitr::kable(taulu5,digits = 2, booktabs = TRUE,
caption = "Kysymyksen V6 vastaukset maittain (%)")
S | s | ? | e | E | Total | |
---|---|---|---|---|---|---|
BE | 2.35 | 5.54 | 5.38 | 6.78 | 4.68 | 24.72 |
BG | 1.45 | 4.85 | 2.52 | 2.33 | 0.16 | 11.31 |
DE | 2.03 | 4.61 | 2.43 | 6.61 | 5.38 | 21.05 |
DK | 0.86 | 2.92 | 1.87 | 2.85 | 8.55 | 17.05 |
FI | 0.58 | 2.31 | 1.83 | 5.19 | 3.72 | 13.63 |
HU | 2.69 | 3.54 | 2.76 | 2.33 | 0.92 | 12.24 |
Total | 9.95 | 23.76 | 16.79 | 26.10 | 23.41 | 100.00 |
Massat ja skaalaus Tätä ensimmäistä kuvaa on muistiinpanoissa kommentoitu (löytyy printattuna) Kolme karttaa. Maiden vertailussa on järkevää vakioida niiden massat (kolmas kartta). Massan käsite on CA:n ydinasioita, siksi maiden massat ovat jatkossa mukana. Kartta määräytyy maiden otoskokojen suuruisilla painoilla, mutta ero ei ole kovin suuri.
#simpleCA1 <- ca(~maa + V6,ISSP2012esim1.dat) suoritetaan ennen värikuvaa, tuloksia tarvitaan
#siinä.
# TODO(11.4.20) fig.cap koodilohkossa tekee kuvasta "kelluvan", ja kuvat numeroidaan.
# Miten plot-komennon kuvaotsikot vaikuttavat?
# Pitäiskö (a) jokaiselle kuvalle oma koodilohko (b) esittää nämä kaksi yhdessä vierekkäin
# Pohditaan kun koodataan capaper-projektia.
# Symmetrinen kartta
# Akselien tekstit "käsityönä" - esimerkki (3.5.2020)
par(cex = 0.6)
plot(simpleCA1, map = "symmetric", mass = c(TRUE,TRUE),
main = "Lapsi kärsii jos äiti on töissä -symmetrinen kartta",
xlab = "Dimensio 1: moderni/liberaali - perinteinen/konservatiivinen (76%)",
ylab = "Dimensio 2: maltillinen/epävarma - radikaali/jyrkkä/varma (15.1%)",
sub = "maa-muuttuja järjestys C_ALPHAN")
Q1b: lapsi kärsii jos äiti on töissä
# plot(simpleCA2, map = "symmetric", mass = c(TRUE,TRUE),
# main = "Lapsi kärsii jos äiti on töissä -symmetrinen kartta ",
# sub = "maa-muuttuja maa2,järjestys as_factor(C_ALPHAN)")
# Kartta kääntyy x-akselin ympäri - esimerkki faktoroinnin arvaamattomista
# seurauksista (30.3.20)
# 13.5.2018
# kuvasuhteen saa oikeaksi, kun avaa g-ikkunan (X11()) ja sitten plot. Voi tallentaa pdf-muodossa
# grafiikkaikkunasta, ja ladata outputiin knitr-vaiheessa. Parempi tulostaa kuvatdsto pdf-ajurilla,
# jos lopulliseen versioon joutuu
# näin tekemään.
edit 2.5.2020 Riviprofiilitaulukossa rivimassat ovat vakioita (=1), mutta ca-ratkaisussa skaalautuvat eri arvoksi (vakio). Oleellinen vaikututus karttaan on pienen massan pisteiden (BG, FI, HU) siirtymien kohti origoa. Ei kyllä ole kovin selvä, ja näkyy selvimmin “ääripäissä” (? 5.9.20) Entäs sarakepisteet, niiden massat eivät muutu? TODO 5.9.20 Ylempänä taulukko khii2-etäisyyksistä, tässä kaksi pilveä projisoitu samaan kuvaan.
# Sama kartta - maiden massat vakiotu
# CA:n lähtötietona riviprofiilit
par(cex = 0.6)
plot(simpleCA3, map = "symmetric", mass = c(TRUE,TRUE),
main = "Lapsi kärsii jos äiti on töissä -symmetrinen kartta ",
sub = "massat kaikilla mailla sama vakio (riviprofiilidata)")
Q1b: lapsi kärsii jos äiti on töissä
Näitä karttoja vertaillaan seuraavassa luvussa tarkemmin.
Toinen tapa - kuvatiedoston lataaminen include_graphics - funktiolla. Pitää miettiä mikä on järkevää, dataa tutkaillessa piirretään useita kuvia. PDF-muodossa ne ovat skaalautuvia, kommentteja voi lisätä jne.
Grafiikan hienosäätö on hieman haastavaa: analyysivaiheessa kannattaa tallentaa kuvia RStudion grafiikkaikkunasta pdf-muodossa talteen, graafisessa data-analyysissä niitä tietenkin syntyy aika paljon. HTML- ja pdf- formaatin kuvat viimeistellään bookdown-ympäristössä.
edit 15.9.20 Näitä taulukoitu edellä, vertailtu “normaaleilla massoilla” ja vakioiduilla rivimassoilla (riviprofiileilla) laskettuja ca-ratkaisuja, khii2-etäisyyksiä ja sarakemassojen skaalautumista kun rivimassat vakioidaan.
Profiilit
Massat
Profiilien etäisyydet (khii2): (a) saman pistejoukon pisteiden (b) eri pistejoukkon pisteiden
zxy Ja tätä “triplettiä” täydentää neljä siitä johdettua käsitettä, viite muistiinpanoissa. #V Tässäkin CAiP ja MG2017HY-luentokalvot.
Luvussa syvennetään esimerkin tulkinnan perusteita. Miksi symmetrinen kartta on yleensä paras vaihtoehto, siksi se oletusarvoisesti esitetäänkin. Milloin voi käyttää vaihtoehtoisia esitystapoja? Ydinluku.
Esimerkkiaineistossa tulee jo pohdittavaa, Guttman (arc, horseshoe) - efekti, ratkaisun dimensiot jne.
Asymmetrinen kartta, jossa riviprofiilit ovat pääkomponentti-koordinaateissa ja sarakeprofiilit standardikoordinaateissa.
Sarakkeet ideaalipisteinä, edustavat kuvittellisia maita joissa kaikki ovat vastanneet vain yhdellä tavalla.
Sarakepisteet kaukana origosta, koska skaalattu
Rivipisteet kasautuneet keskiarvopisteen ympärille
Rivi-ja sarakepisteiden suhteelliset sijannit samat kuin symmetrisessä kuvassa
Tässäkin kuvassa pisteen koko kuvaa sen massaa. Sarakkeista “täysin samaa mieltä” (ts) ja “ei samaa eikä eri mieltä” ovat massoiltaan pienimmät.
Pisteiden koko kuvaa rivin tai sarakkeen massaa.
Tarinaa voi tarvittaessa jatkaa, tämä on CA:n hankalin asia. Kaksi koordinaatistoa, ja niiden yhteys.
Piirretään sama asymmetrinen kartta uudelleen, mutta yhdistetään sarakepisteet keskiarvopisteeseen (sentroidiin) suorilla. Mitä terävämpi on sarakesuoran (vektorin?) ja akselin kulma, sitä enemmän sarake määrittää tätä ulottuvuutta. Jos vektori on lähettä 45 asteen kulmaa, sarake määrittää yhtä paljon molempia ulottuvuuksia.
Standardikooridaateissa esitety sarakepisteet ovat fiktiivisiä “maapisteitä”, joissa kaikki vastaukset ovat yhdessä luokittelumuuttujan arvossa.Alkuperäisessä täydessä avaruudessa ne ovat simpleksin kärkipisteet, simpleksin sisällä ovat riviprofiilit.
# asymmetrinen kartta - rivit pc ja sarakkeet sc
# sarakkeet vektorikuvina
# HUOM! simpleCA1 luodaan G1_2_johdesim.Rmd - tiedostossa
#
# Kuva tiedostoon - ennen plot-komentoa avataan tiedosto
# pdf("img/sCA1asymm1.pdf")
par(cex = 0.6)
plot(simpleCA1, map = "rowprincipal",
arrows = c(FALSE,TRUE),
main = "Lapsi kärsii jos äiti on töissä -asymmetrinen kartta 1" )
Q1b: lapsi kärsii jos äiti on töissä
# Kuva tiedostoon - suljetaan
# dev.off()
Sarakkeen “Eri mieltä” (e) määrittää toisen ulottuvuuden, jonka voisi tulkita erottelevan “maltilliset” mielipiteen tiukemmista. Sarake “täysin samaa mieltä” (S) määrittää toista ulottuvuutta lähes yhtä paljon kuin ensimmäistä, mutta “täysin eri mieltä” (E) on vasemmalla ja kolme vastausvaihtoehtoa oikealla. Kovin terävästi dimensiot eivät eroa toisistaan?
Asymmetrinen kartta - rivipisteet (profiilit) sarakepisteiden standardikoordinaattien keskiarvopisteinä (ns. barysentrinen keskiarvo).
# Barysentrisen keskiarvon "viivakuviota" kehitelty CA_calc1.R - skriptissä
# simpleCA1-objektista saa std-koordinaatit, muunnoksella rivien pääkoordinaatit
# rpc.
# Jos plot-komennotoon "MapObj1 <- ", saadaan pisteiden koordinaatit
# plot-funktiolla ensin "raamit" ja pisteet talteen, sitten pisteet Suomen
# pisteestä lines(x,y) sarakevektoreihin? (29.5.20)
# asymmetrinen kartta - rivit pc ja sarakkeet sc
# sarakkeet vektorikuvina
# HUOM! simpleCA1 luodaan G1_2_johdesim.Rmd - tiedostossa
# Kuva tiedostoon - ennen plot-komentoa avataan tiedosto
# pdf("img/sCA1asymm1.pdf")
# Piirretään Suomen riviprofiilista janat sarakepisteisiin - barysentinen keskiarvo
# Rivipisteet pääkoordinaatteina (principal coordinates)
simpleCA1.rpc <- simpleCA1$rowcoord %*% diag(simpleCA1$sv)
# ei toimi - onpa hankalaa! segments antaa virheilmoituksen "plot.new has not
# been called yet" (11.6.20)
# X11()
par(cex = 0.6)
plot(simpleCA1, map = "rowprincipal",
arrows = c(FALSE,FALSE),
main = "Lapsi kärsii jos äiti on töissä -asymmetrinen kartta 2",
sub = "Suomen profiili sarakkeiden barysentrisenä keskiarvona")
segments(simpleCA1.rpc[5,1],simpleCA1.rpc[5,2],simpleCA1$colcoord[, 1],
simpleCA1$colcoord[, 2], col = "pink")
Q1b: lapsi kärsii jos äiti on töissä
# Kuva tiedostoon - suljetaan
# dev.off()
Edit 3.5.20 Selvennä: sarakevektroit ovat standardikoordinaateissa, ideaalipisteitä (“maa jossa kaikki samaa mieltä”). Miksi ne ovat kartalla “reilusti” ykköstä suurempia? Vastaus: ideaalipisteet esitetään rivipisteiden koordinaatistossa - > skaalaus.
Edit 11.6.20 - tulkinta ja data?TARKISTA Origo on koko aineiston barysentrinen keskipiste. Janan pituus on kääntäen verrannollinen sarakkeen (“ideaalipisteen”) suhteelliseen osuuteen. Maapiste (profiilipiste) on saravektoreiden barysentrinen keskiarvo, ja etäisyydet kertovat kyseisen sarakkeen suhteellisen osuuden maaprofiliisissa.(? 11.6.20). " In an asymmetric map where the rows, for example, are in principal co- ordinates (i.e. the row analysis), distances between displayed row points are approximate khii2-distances between row profiles; and distances from the row profile points to a column vertex point are, as a general rule, inversely related to the row profile elements for that column." CAiP, s. 72., tarkemmin s.62-. Pisteiden väliset etäisyydet voidaan optimaalisessa tilanteessa (symm. kuva sama pistejoukko, asymm. kuva myös sarake- ja rivipisteet) tulkita vain approksimaatioina.
Verifying the profile-vertex interpretation (emt., s 68): Each row profile point (staff group) is at a weighted average position of the column vertex points (smoking categories), where the weights are the elements of the respective row profile. As a general rule, assuming that the display is of good quality, which is true in this case, the closer a profile is to that vertex, the higher its profie value is for that category.
Verifiointi verteksi kerrallaan, kaikki on suhteellista! Suomi on kaikkein lähimpänä e-verteksiä. Niinpä Suomen profiilissa e-vastausten suhteellinen osuus on suurempi kuin muilla mailla. Tanska vastaavasti lähimpänä E-verteksiä. Projisoidaan rivipisteet sarakevektoreille -> järjestys.
Perusidea: kartta antaa yleiskuvan riippuvuudesta, approksimaation tarkkuuden ja laadun rajoissa. Yksityiskohtien etsiskely ei ole oleellista, väärien johtopäätösten välttäminen on. Erityisesti symmetrisessä kartassa ei voi tulkita mitenkään (tiukasti ottaen) eri pistejoukkojen etäisyyksiä. Ei voi tunnistaa klustereita!
edit 14.8.20 Barysentrinen koordinaatisto on ideaalipisteiden simpleksin kärkipisteiden koordinaatisto.
# X11() komentoriville ja plot-komento -> grafiikkaikkuna
par(cex = 0.6)
plot(simpleCA1, map = "rowgreen",
contrib = c("absolute", "absolute"),
mass = c(TRUE,TRUE),
arrows = c(FALSE, TRUE),
main = "Lapsi kärsii jos äiti on töissä - asymmetrinen kartta 2a (rowgreen)",
sub = "sarakevektorin ja rivipisteiden värin tummuus = kontribuutio(absolute)")
Q1b: lapsi kärsii jos äiti on töissä
Greenacre (2006, “loose ends -artikkeli”) ehdotti asymmetrisessä kuvassa standardikoordinaattien skaalaamista niin, että ne kerrotaan massan neliöjuurella. Tämä skaalaus toimii hyvin pienen ja suuren inertian tapauksessa. Kartoissa pätee sama sääntö kuin muussakin graafisessa data-analyyisissä, kuvien on esitettävä oleelliset yhteydet, mutta mielellään vain ne.
Sama kuva, kontribuutiot “relative”. edit 24.2.20 Ero selitettävä!
#X11() komentoriville ja plot-komento
par(cex = 0.6)
plot(simpleCA1, map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(TRUE,TRUE),
arrows = c(FALSE, TRUE),
main = "Lapsi kärsii jos äiti on töissä - asymmetrinen kartta 2b (rowgreen)",
sub = "sarakevektorin ja pisteen värin tummuus = kontribuutio(relative)")
Q1b: lapsi kärsii jos äiti on töissä
Asymmetrisessä kartassa 2 pisteiden koko on suhteessa niiden massaan, ja värisävy absoluuttiseen tai suhteelliseen kontribuutioon.
Sarakevektorin kulma akseliin - mitä pienempi sitä enemmän määrittää. Jos lähellä 45 asteen lävistäjää, kontribuutiota on molempiin akseleihin
Tulkinta: rivipisteiden ortogonaalinen projektio “sarakevektorille”
Rivipisteet voidaan projisoida ortogonaalisesti (ns. suora kulma) sarakevektorille ja sen pisteillä merkitylle jatkeelle. Järjestys on sama kuin sarakkeen modaliteetin suhteellinen osuus rivipisteen profiilissa. Ensimmäisessä kartassa on käsivaralla piirretty suurinpiirtein kohtisuorat projektiot lievempää erimielisyyttä edustavalle s- ideaalipisteeseen (0,1,0,0,0) origosta piirretylle suoralle.
Toisessa kuvassa sama E-vektorille. Maiden suhteellinen järjestys on oikea, mutta jos vertaa taulkkoon X (edellä), huomaa että absoluuttiset erot eivät täsmällisesti toistu kuvassa.
todo 15.9.20 Voiko tämän tehdä myös skaalatulle (rowgreen) asymmetriselle kuvalle?
knitr::include_graphics('img/simpleCAasymmTulk1.png')
Asymmetrinen kuva - sarakevektorin tulkinta 1
knitr::include_graphics('img/simpleCAasymmTulk2.png')
Asymmetrinen kuva - sarakevektorin tulkinta 2
# CA:n numeeriset tulokset
# (11.4.20) yhdistä koodilohkoon khii2dist1 (G1_2_johdesim.Rmd, r. 665)
# CA:n numeeristen tulosten käsittelyä myös CAcalc_1.R -skriptissä.
summary(simpleCA1)
##
## Principal inertias (eigenvalues):
##
## dim value % cum% scree plot
## 1 0.136619 76.0 76.0 *******************
## 2 0.027089 15.1 91.1 ****
## 3 0.010054 5.6 96.7 *
## 4 0.005988 3.3 100.0 *
## -------- -----
## Total: 0.179751 100.0
##
##
## Rows:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | BE | 247 465 34 | 93 347 16 | -54 118 27 |
## 2 | BG | 113 874 251 | 586 862 284 | 70 12 21 |
## 3 | DE | 210 584 36 | -94 291 14 | -95 293 70 |
## 4 | DK | 170 996 381 | -586 853 428 | 240 143 362 |
## 5 | FI | 136 1000 92 | -214 380 46 | -274 620 377 |
## 6 | HU | 122 889 206 | 487 783 213 | 179 105 144 |
##
## Columns:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | S | 99 784 152 | 424 653 131 | 190 131 132 |
## 2 | s | 238 788 140 | 278 731 134 | 78 57 53 |
## 3 | | 168 720 88 | 259 707 82 | 34 12 7 |
## 4 | e | 261 982 108 | -28 11 2 | -268 971 693 |
## 5 | E | 234 1000 512 | -616 966 651 | 115 34 114 |
# vertailun vuoksi numeeriset tulokset, kun maiden massat vakiot
summary(simpleCA3)
##
## Principal inertias (eigenvalues):
##
## dim value % cum% scree plot
## 1 0.167678 77.9 77.9 *******************
## 2 0.030095 14.0 91.9 ***
## 3 0.013206 6.1 98.0 **
## 4 0.004296 2.0 100.0
## -------- -----
## Total: 0.215275 100.0
##
##
## Rows:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | BE | 167 295 17 | 46 97 2 | -66 199 24 |
## 2 | BG | 167 884 270 | 554 882 306 | 22 1 3 |
## 3 | DE | 167 718 33 | -144 489 21 | -98 229 54 |
## 4 | DK | 167 993 367 | -635 849 400 | 261 144 377 |
## 5 | FI | 167 999 114 | -270 494 72 | -272 505 411 |
## 6 | HU | 167 870 200 | 448 778 199 | 154 92 132 |
##
## Columns:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | S | 105 785 153 | 450 649 127 | 206 135 148 |
## 2 | s | 250 792 148 | 311 762 145 | 62 30 32 |
## 3 | | 171 792 73 | 267 780 73 | 33 12 6 |
## 4 | e | 256 976 103 | -66 51 7 | -283 925 681 |
## 5 | E | 218 1000 524 | -706 964 649 | 136 36 133 |
# Rivi- ja sarake-etäisyydet (keskiarvosta/sentroidista)
# HUOM! Edellisessä jaksossa taulukko rivi- ja sarake-etäisyyksistä. Tuskin
# kannattaa tässä toistaa. Muuta analyysiä numeerisista tuloksista. (10.4.20)
# simpleCA1$rownames
# simpleCA1$rowdist
# simpleCA3$rowdist
# simpleCA1$colnames
# simpleCA1$coldist
# simpleCA3$coldist
Edellisessä jaksossa esimerkki siistimmästä taulukosta.
TODO (21.2.20)
Tätä voisi käyttää esimerkkinä numeeristen tulosten vertailussa?
Kokonaisinertia kasvaa (0,18 -> 0,26), koordinaatisto muuttuu mutta ei kovin radikaalisti.
Kvaliteetti, kontribuutiot? Miten vertailla oleellisia asioita?
Belgian laatu putoavat merkittävästi,ja kontribuutiot pienenevät entisestään.
Saksan laatu paranee aika paljon, ja kontribuutiotkin jonkin verran. Aika outoa,että suurimman massan maiden (DE,BE lähes puolet datasta) kontribuutiot ovat niin pieniä (24.2.20)
zxy Taulukon käsitteiden läpikäynti ja pureskelu kuulunee seuraavaan lukuun?
MG & Blasius, “vihreä kirja” ja monta muuta lähdettä: kontribuutiot inertiaan
Korrespondenssianalyysi sallii rivien tai sarakkeiden yhdistelyn tai “jakamisen”. Tämä onnistuu esimerkkiaineistossa lisäämällä rivejä eli jakamalla eri maiden vastausksia useampaan ryhmään. Kartalle voidaan myös lisätä apumuuttujia tai täydentäviä muuttujia (supplementary points). Ne eivät vaikuta ca:n tuloksiin, vaan esittävät lisäinformaatiota.
edit 9.9.20 - vähän vanhentunutttaSen avulla voi myös tarkastella ja vertailla erilaisia ryhmien välisiä tai ryhmien sisäisiä (within groups - between groups) eroja hieman. Teknisesti yksinkertaista korrespondenssianalyysiä sovelletaan muokattuun matriisiin. Datamatriisi rakennetaan useammasta alimatriisista, joko “pinoamalla” osamatriiseja (stacked matrices) tai muodostamalla symmetrinen lohkomatriisi (ABBA).
edit 9.9.20 Uusi johdanto 1. Saksan ja Belgian jako
# HUOM! Tässä ei vielä supp.points mukana!
par(cex = 0.6)
suppointCA1 <- ca(~maa3 + Q1b,ISSP2012esim1.dat)
plot(suppointCA1, main = "Belgian ja Saksan ositteet",
sub = "symmetrinen kartta")
Belgian ja Saksan aluejako
3.1 Yksinkeraisin malli: vuorovaikutusmuuttuja (interactive coding) - yksi rivi (sample) jaetaan useammaksi, sama idea kuin edellisessä esimerkissä - käytännön raja yleensä kolmen muuttujan vuorovaikutusmuuttuja, esimerkkinä maan, iän ja sukupuolen yhdistetty muuttuja
3.2 Kartta on data-analyysin väline - miten sitä voi selkeyttää?
Hyvässä kartassa on vain tarpeellinen määrä informaatiota, epäselvä tukkoinen kuva ei toimi. Yksinkertainen keino analyysivaiheessa on “leikata ja liimata” kuvia ja tallentaa ne pdf-muodossa. Voi tehdä muistiinpanoja, lisätä kommentteja jne.
Tässä esitellään kaksi muuta: kuva-alan rajaaminen BaseR-grafiikan plot-funktion parametreilla ja paljon yleispätevämpi osajoukon korrespondenssianalyysi. Jälkimmäisessä valitaan joku osajoukko aineistosta, ja tehdään sille korrespondenssianalyysi siten, että reunajakaumat (massat) ja valitun datan profiilit pidetään vakioina. Paljon parempi idea kuin suoraviivainen aineiston rajaaminen.
Nyt käytetään johdattelevan esimerkin dataa, johon muunnokset on jo alustavasti tehty.
(14.9.20)G1_4_CAlaaj1.Rmd jaettu kolmeksi tiedostoksi, uusia G1_4_CAlaaj2.Rmd ja G1_4_CAlaaj3.Rmd
Vanhaa koodia kolme koodilohkoa
zxy Piste sinne piirretään, mutta muuttujassa on se tieto. “Täydentävä piste” kuulostaa huonolta. Lisämuuttujat, havainnot, lisäpisteet?
Viite:CAip ss 89, HY2017_MCA.
Aineistossa on havaintoja (rivejä) tai muuttujia (sarakkeita), joista voi olla hyötyä tulosten tulkinnassa. Nämä lisäpisteet voidaan sijoittaa kartalle, jos niitä voidaan jotenkin järkevästi vertailla kartan luomisessa käytettyihin profiileihin (riveihin ja sarakkeisiin).
EDIT Lisätään Belgian ja Saksan aluejako täydentäviksi riveiksi. Sopii tarinaan, dimensioiden tulkinta ei ollut esimerkissä kovin kirkas. Viite CAip:n lukuun, jossa vain todetaan että maita ei ole järkevää painottaa (massa) otoskoolla, vaan vakioidaan (jotenkin) sama (suhteellinen) massa kaikille. Samalla oikaistaan myös naisten yliedustus aineistossa.
Käsitteitä: (@) Active point, aktiivinen piste (aktiivinen havainto tai muuttuja). (@) Supplementary pointtäydentävä piste (täydentävä havainto).
Täydentävien muuttujien kolme käyttötapaa:
Sisällöllisesti tutkimusongelman kannalta poikkeava tai erilainen rivi tai sarake
Outlayerit, poikkeava havainto jolla pieni massa (esimerkissä uusi sarakemuuttuja, jossa kovin vähän havaintoja)
osaryhmät EDIT capaper- jäsentelyssä ja bookdown-dokumentissa selitetetty täydentävät/lisäpisteet tarkemmin (18.9.2018).
# Kömpelöä koodia, harjoitellaan taulukoiden yhdistelyä (CAtest1.Rmd)
# Belgian ja Sakasan jako lisäpisteinä 24.5.2018
# Data suppointCA1
# Miten lisärivit? (24.5.2018)
# Luetaan data tauluksi - ei toimi, char-table.Toimisiko nyt, ei chr? (4.2.20)
# yritetään uudestaan table-funktiolla
# data maa3-muuttujassa
# str(ISSP2012esim1.dat$maa3)
# attributes(ISSP2012esim1.dat$maa3)
suppoint1_df1 <- select(ISSP2012esim1.dat, maa3,Q1b)
# tarkistuksiin jos koodi suoritetaan rivi kerrallaan
# str(suppoint1_tab1)
suppoint1_tab1 <- table(suppoint1_df1$maa3, suppoint1_df1$Q1b)
suppoint1_tab1
/ | S | s | ? | e | E |
---|---|---|---|---|---|
bF | 51 | 241 | 262 | 312 | 146 |
bW | 53 | 103 | 91 | 118 | 125 |
bB | 87 | 107 | 85 | 122 | 110 |
BG | 118 | 395 | 205 | 190 | 13 |
dW | 133 | 313 | 138 | 375 | 208 |
dE | 32 | 62 | 60 | 163 | 230 |
DK | 70 | 238 | 152 | 232 | 696 |
FI | 47 | 188 | 149 | 423 | 303 |
HU | 219 | 288 | 225 | 190 | 75 |
#plot(ca(~maa2 + V6, suppoint1_df1)) #toimii
#
# Saksan ja Belgian summarivit
#
suppoint2_df <- filter(ISSP2012esim1.dat, (maa == "BE" | maa == "DE"))
suppoint2_df <- select(suppoint2_df, maa, Q1b)
#head(suppoint2_df)
#tail(suppoint2_df)
str(suppoint2_df)
## tibble [3,727 x 2] (S3: tbl_df/tbl/data.frame)
## $ maa: Factor w/ 6 levels "BE","BG","DE",..: 1 1 1 1 1 1 1 1 1 1 ...
## ..- attr(*, "label")= chr "Country Prefix ISO 3166 Code - alphanumeric"
## $ Q1b: Factor w/ 5 levels "S","s","?","e",..: 4 5 1 4 2 2 2 2 1 1 ...
## ..- attr(*, "label")= chr "Q1b Working mom: Preschool child is likely to suffer"
## - attr(*, "notes")= chr [1:45] "document Plan File: /Users/marcic/Desktop/old/GPS2011 sampling/ISSP2013.sampling" " .csplan" " Weight Variable: SampleWeight_Final_" " Stage 1" ...
# attributes(suppoint2_df) # korvaa attr(x, which) tms. liian pitkä tulostus
# attr(suppoint2_df, which = "class")
# attr(suppoint2_df, which = "name")
# summary(suppoint2_df)
suppoint2_df %>% table1() # miksi ei tulosta mitään konsolille? (4.2.20)
##
## -------------------------
## Mean/Count (SD/%)
## n = 3727
## maa
## BE 2013 (54%)
## BG 0 (0%)
## DE 1714 (46%)
## DK 0 (0%)
## FI 0 (0%)
## HU 0 (0%)
## Q1b
## S 356 (9.6%)
## s 826 (22.2%)
## ? 636 (17.1%)
## e 1090 (29.2%)
## E 819 (22%)
## -------------------------
suppoint2_tab1 <- table(suppoint2_df$maa, suppoint2_df$Q1b)
# suppoint2_tab1 # tarkistus
suppoint2_tab1 <- suppoint2_tab1[-2,]
# kömpelösti kolme kertaa
suppoint2_tab1 <- suppoint2_tab1[-3,]
suppoint2_tab1 <- suppoint2_tab1[-3,]
suppoint2_tab1 <- suppoint2_tab1[-3,]
# suppoint2_tab1 # Belgian ja Saksan summat yli ositteiden
suppoint2_tab1
/ | S | s | ? | e | E |
---|---|---|---|---|---|
BE | 191 | 451 | 438 | 552 | 381 |
DE | 165 | 375 | 198 | 538 | 438 |
#lisätään rivit maa3-muuttujan taulukkoon
suppoint1_tab1 <- rbind(suppoint1_tab1, suppoint2_tab1)
suppoint1_tab1
S | s | ? | e | E | |
---|---|---|---|---|---|
bF | 51 | 241 | 262 | 312 | 146 |
bW | 53 | 103 | 91 | 118 | 125 |
bB | 87 | 107 | 85 | 122 | 110 |
BG | 118 | 395 | 205 | 190 | 13 |
dW | 133 | 313 | 138 | 375 | 208 |
dE | 32 | 62 | 60 | 163 | 230 |
DK | 70 | 238 | 152 | 232 | 696 |
FI | 47 | 188 | 149 | 423 | 303 |
HU | 219 | 288 | 225 | 190 | 75 |
BE | 191 | 451 | 438 | 552 | 381 |
DE | 165 | 375 | 198 | 538 | 438 |
suppointCA2 <- ca(suppoint1_tab1[,1:5], suprow = 10:11)
par(cex = 0.6)
plot(suppointCA2, main = "Symmetrinen kartta: Saksan(2) Belgian(3) aluejako",
sub = "Passiiviset pisteet DE ja BE" )
Belgian ja Saksan aluejako
Kääntöä ei tarvita, kun maiden järjestys on sama myös muuttujassa maa3 (mukana maiden jaot)
Saksan ja Belgian summarivit ovat ositteiden painotettuja keskiarvoja (sentroideja), läntisen ja itäisen Saksan rivipisteiden välisellä janalla on koko maan summapiste DE.
Piirretään vertailun vuoksi vielä asymmettrinen kartta (“kontribuutio-kartta, kontribuutio-kaksoiskuva”). edit 3.5.20 Minne katoavat pisteet?
par(cex = 0.6)
plot(suppointCA2, map = "rowgreen",
contrib = c("absolute", "absolute"),
mass = c(TRUE,TRUE),
arrows = c(FALSE, TRUE),
main = "Saksan ja Belgian alueet - asymmetrinen kartta 1",
sub = "kontribuutiokartta (rowgreen, absolute)")
Belgian ja Saksan aluejako
# Sama kuva, maasummat lisäpisteinä (4.2.20)
par(cex = 0.6)
plot(suppointCA2, map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(TRUE,TRUE),
arrows = c(FALSE, TRUE),
main = "Saksan ja Belgian alueet - asymmetrinen kartta 2 ",
sub = "kontribuutiokartta (rowgreen,relative)")
Belgian ja Saksan aluejako
Kaksi asymmetristä konrtibuutio-karttaa (MG:n keksintö) osoittavat, että tulkinnan hankaluuksista huolimatta symmetrinen kartta on usein selkeämpi. Molemmissa ideaalipisteet sijatsevat kaukana, vaikka ne on skaalattu hieman lähemmäs origoa. Maapisteiden hajontaa on aika vaikeaa nähdä. Belgian täydentävä maapiste (BE) peittyy läntisen Saksan (dW) alle.
Tulostetaan numeeriset taulukot.
# CA - numeeriset tulokset
summary(suppointCA2)
##
## Principal inertias (eigenvalues):
##
## dim value % cum% scree plot
## 1 0.154101 73.4 73.4 ******************
## 2 0.032489 15.5 88.9 ****
## 3 0.014294 6.8 95.7 **
## 4 0.008944 4.3 100.0 *
## -------- -----
## Total: 0.209828 100.0
##
##
## Rows:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | bF | 124 650 69 | 157 212 20 | -226 438 195 |
## 2 | bW | 60 388 3 | -36 137 0 | 48 252 4 |
## 3 | bB | 63 481 17 | 85 127 3 | 142 354 39 |
## 4 | BG | 113 878 215 | 590 874 255 | 43 5 6 |
## 5 | dW | 143 345 33 | 100 208 9 | -81 138 29 |
## 6 | dE | 67 966 82 | -495 960 107 | -41 7 3 |
## 7 | DK | 170 971 327 | -591 869 387 | 202 102 214 |
## 8 | FI | 136 957 79 | -206 352 38 | -271 605 307 |
## 9 | HU | 122 927 177 | 477 751 181 | 231 176 201 |
## 10 | (*)BE | <NA> 512 <NA> | 92 338 <NA> | -66 173 <NA> |
## 11 | (*)DE | <NA> 418 <NA> | -90 265 <NA> | -68 153 <NA> |
##
## Columns:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | S | 99 816 167 | 421 505 115 | 331 311 335 |
## 2 | s | 238 781 143 | 309 759 147 | 52 22 20 |
## 3 | | 168 594 88 | 255 589 71 | -22 4 2 |
## 4 | e | 261 871 98 | -12 2 0 | -262 870 550 |
## 5 | E | 234 999 505 | -663 971 667 | 113 28 93 |
Kolmiulotteisesta kuvasta voi tulostaa molempien akseleiden ja uuden kolmannen akselin kartat. R-ohjelmistossa voi tulostaa näytölle kolmiulotteisen kuvan, siitä voisi ehkä ottaa kuvakaappauksena esimerkin raporttiin? edit Kommentti 3d-ratkaisusta: tuo esiin Belgian (“belgioiden”) erilaisuuden. "Belgiat ovat 2-3 - dimension kartassa diagonaalilla, ja 1-3 kartassa hieman samoin kuin 2-d - ratkaisun kartassa. Tarvittaessa voi liittää myös 3-d - kuvia, pitäsi saada myös dynaamisen pdf-tiedostoon? (8.6.2020). Mutta 2d-approksimaatio on aika hyvä, 89 % kokonaisinertiasta. Miten pitäisi jatkaa? Analysoida maiden sisäisiä eroja? Siinä erilaiset aluejaot ovat aika herkästi korvikemuuttujia joillekin muille vaikuttaville tekijöile. Entäs kaupungit - isot ja pienet - ja maaseutu? Elinkeinorakenne, tulot jne…
# Näkyisikö Belgian aluejako kolmannessa dimensiossa? (19.2.20)
# Toimii, mutta siistittävä, samoin koko maajakoskripti!
suppointCA3 <- ca(~maa3 + Q1b,ISSP2012esim1.dat, nd = 3)
# (24.2.20)
# Tulostetaan kolme karttaa - ensimmäinen ja toinen akseli uuden kolmannen kera
par(cex = 0.6)
plot(suppointCA3, dim = c(1,2),
main = "Belgian ja Saksan ositteet - kolme dimensiota",
sub = "symmetrinen kartta - 1. ja 2. dimensio")
Belgian ja Saksan aluejako - 3D
par(cex = 0.6)
plot(suppointCA3, dim = c(1,3),
main = "Belgian ja Saksan ositteet - kolme dimensiota",
sub = "symmetrinen kartta - 1. ja 3. dimensio")
Belgian ja Saksan aluejako - 3D
par(cex = 0.6)
plot(suppointCA3, dim = c(2,3),
main = "Belgian ja Saksan ositteet - kolme dimensiota",
sub = "symmetrinen kartta - 2. ja 3. dimensio")
Belgian ja Saksan aluejako - 3D
# summary(suppointCA3) - KUMMALLINEN JUTTU, summary() EI TOIMI KUN 3d-ratkaisu!
#
# Virheilmoitus "Error in rsc %*% diag(sv) : non-conformable arguments" ?!
# onko vika täydentävissä pisteissä? Ei ole, eivät ole mukana
# ISSP2012esim1.dat %>% tableX(maa3, Q1b)
# suppointCA3
# Virheilmoituksen selvittelyä (24.2.20)
# str(suppointCA3)
# tämä matriisikertolasku ei onnistu - 3d-ratkaisussa on vain kolme koordinaattia!
# suppointCA3$rowcoord
# diag(suppointCA3$sv)
# suppointCA1$rowcoord %*% diag(suppointCA1$sv)
#Tämä toimii
#
# suppointCA1$rowcoord
# suppointCA1$sv
# suppointCA1$rowcoord %*% diag(suppointCA1$sv)
# summary(suppointCA1)
#
# Kolmiulottein kuva grafiikkaikkunaan
# X11()
# plot3d(suppointCA3, c(1,2,3))
# Hyödyllinen, mutta aika vaikea
edit 9.9.20 Tällä datalla ABBA stacked-jaksossa?
zxy Otsikkoa pitää harkita, CAip - kirjassa tämä on ensimmäinen esimerkki yksinkertaisen CA:n laajennuksesta. Otsikkona on “multiway tables”, ja tästä yhteisvaikutusmuuttujan (interactive coding) luominen on ensimmäinen esimerkki. Menetelmää taivutetaan sen jälkeen moneen suuntaan.
Luodaan luokiteltu ikämuuttua age_cat, ja sen avulla iän ja sukupuolen interaktiomuuttuja ga. Maiden välillä on hieman eroja siinä, kuinka nuoria vastaajia on otettu tutkimuksen kohteeksi. Suomessa alaikäraja on 15 vuotta, monessa maassa se on hieman korkeampi. Ikäluokat ovat (1=15-25, 2 =26-35, 3=36-45, 4=46-55, 5=56-65, 6= 66 tai vanhempi). Vuorovaikutusmuuttuja ga koodataan f1,…, f6 ja m1,…,m6. Muuttujien nimet kannattaa pitää mahdollisimman lyhyinä.
# Iän ja sukupuolen vuorovaikutusmuuttujia 1
#
# Uusi R-data: ISSP2012esim2.dat - MIKSI, TARVITAANKO? *esim1.dat kelpaisi?(4.2.20)
#
#age_cat
#AGE 1=15-25, 2 =26-35, 3=36-45, 4=46-55, 5=56-65, 6= 66 and older
#
#summary(ISSP2012esim1.dat$AGE)
hist(ISSP2012esim1.dat$ika)
ISSP2012esim2.dat <- mutate(ISSP2012esim1.dat, age_cat = ifelse(ika %in% 15:25, "1",
ifelse(ika %in% 26:35, "2",
ifelse(ika %in% 36:45, "3",
ifelse(ika %in% 46:55, "4",
ifelse(ika %in% 56:65, "5", "6"))))))
ISSP2012esim2.dat <- ISSP2012esim2.dat %>% # uusi (4.2.20)
mutate(age_cat = as_factor(age_cat)) # järjestys omituinen! (4.2.20)
# Tarkistuksia
# str(ISSP2012esim2.dat$age_cat)
# levels(ISSP2012esim2.dat$age_cat)
# ISSP2012esim2.dat$age_cat %>% summary()
# Järjestetään ikäluokat uudelleen
ISSP2012esim2.dat <- ISSP2012esim2.dat %>%
mutate(age_cat =
fct_relevel(age_cat,
"1",
"2",
"3",
"4",
"5",
"6")
)
# Tarkistuksia
# Iso taulukko, voi tarkistaa että muunnos ok.
# test6 %>% tableX(AGE, age_cat, type = "count")
# taulu42 <- ISSP2012esim2.dat %>% tableX(maa,age_cat,type = "count")
# kable(taulu42,digits = 2, caption = "Ikäluokka age_cat")
#
# UUdet taulukot (4.2.20)
ISSP2012esim2.dat %>%
tableX(maa,age_cat,type = "count") %>%
kable(digits = 2, caption = "Ikäluokka age_cat")
1 | 2 | 3 | 4 | 5 | 6 | Total | |
---|---|---|---|---|---|---|---|
BE | 208 | 333 | 336 | 375 | 368 | 393 | 2013 |
BG | 77 | 115 | 159 | 148 | 198 | 224 | 921 |
DE | 205 | 223 | 274 | 358 | 288 | 366 | 1714 |
DK | 207 | 213 | 245 | 271 | 234 | 218 | 1388 |
FI | 152 | 166 | 165 | 223 | 238 | 166 | 1110 |
HU | 103 | 161 | 198 | 171 | 196 | 168 | 997 |
Total | 952 | 1211 | 1377 | 1546 | 1522 | 1535 | 8143 |
ISSP2012esim2.dat %>%
tableX(maa,age_cat,type = "row_perc") %>%
kable(digits = 2, caption = "age_cat: suhteelliset frekvenssit")
1 | 2 | 3 | 4 | 5 | 6 | Total | |
---|---|---|---|---|---|---|---|
BE | 10.33 | 16.54 | 16.69 | 18.63 | 18.28 | 19.52 | 100.00 |
BG | 8.36 | 12.49 | 17.26 | 16.07 | 21.50 | 24.32 | 100.00 |
DE | 11.96 | 13.01 | 15.99 | 20.89 | 16.80 | 21.35 | 100.00 |
DK | 14.91 | 15.35 | 17.65 | 19.52 | 16.86 | 15.71 | 100.00 |
FI | 13.69 | 14.95 | 14.86 | 20.09 | 21.44 | 14.95 | 100.00 |
HU | 10.33 | 16.15 | 19.86 | 17.15 | 19.66 | 16.85 | 100.00 |
All | 11.69 | 14.87 | 16.91 | 18.99 | 18.69 | 18.85 | 100.00 |
Ikäjäkauma painottuu kaikissa maissa jonkinverran vanhempiin ikäluokkiin. Nuorempien ikäluokkien osuus on (alle 26-vuotiaan ja alle 26-35 - vuotiaat) varsinkin Bulgariassa (BG) ja Unkarissa (HU) pieni.
zxy Siistimmät versioit muuttujien luonnista (case_when - rakenne) (19.9.2018).
# ga - ikäluokka ja sukupuoli
# case_when: ikä ja sukupuoli
ISSP2012esim2.dat <- mutate(ISSP2012esim2.dat, ga = case_when((age_cat == "1")&(sp == "m") ~ "m1",
(age_cat == "2")&(sp == "m") ~ "m2",
(age_cat == "3")&(sp == "m") ~ "m3",
(age_cat == "4")&(sp == "m") ~ "m4",
(age_cat == "5")&(sp == "m") ~ "m5",
(age_cat == "6")&(sp == "m") ~ "m6",
(age_cat == "1")&(sp == "f") ~ "f1",
(age_cat == "2")&(sp == "f") ~ "f2",
(age_cat == "3")&(sp == "f") ~ "f3",
(age_cat == "4")&(sp == "f") ~ "f4",
(age_cat == "4")&(sp == "f") ~ "f4",
(age_cat == "5")&(sp == "f") ~ "f5",
(age_cat == "6")&(sp == "f") ~ "f6",
TRUE ~ "missing"
))
#ISSP2012esim1.dat %>% tableX(ga,ga2) # tarkistus uudelle muuttujan luontikoodille
# muuttujien tarkistuksia 19.9.2018
str(ISSP2012esim2.dat$ga) # chr-muuttuja, mutta toimii (4.2.20)
## chr [1:8143] "f5" "f3" "m5" "f2" "f4" "f4" "m4" "m3" "f5" "m5" "m3" "f5" ...
# str(ISSP2012esim2.dat)
# str(ISSP2012esim1.dat$ga2)
# ga on merkkijono, samoin ga2, pitäisikö muuttaa faktoriksi?
# str(ISSP2012esim1.dat)
#Tulostetaan taulukkoina ga2 - muuttuja.
ISSP2012esim2.dat %>% tableX(maa,ga,type = "count") %>%
kable(digits = 2, caption = "Ikäluokka ja sukupuoli ga")
f1 | f2 | f3 | f4 | f5 | f6 | m1 | m2 | m3 | m4 | m5 | m6 | Total | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BE | 116 | 198 | 174 | 199 | 186 | 185 | 92 | 135 | 162 | 176 | 182 | 208 | 2013 |
BG | 40 | 64 | 94 | 85 | 114 | 149 | 37 | 51 | 65 | 63 | 84 | 75 | 921 |
DE | 102 | 120 | 152 | 186 | 135 | 185 | 103 | 103 | 122 | 172 | 153 | 181 | 1714 |
DK | 83 | 110 | 136 | 146 | 128 | 99 | 124 | 103 | 109 | 125 | 106 | 119 | 1388 |
FI | 94 | 95 | 94 | 118 | 142 | 91 | 58 | 71 | 71 | 105 | 96 | 75 | 1110 |
HU | 54 | 86 | 95 | 91 | 94 | 104 | 49 | 75 | 103 | 80 | 102 | 64 | 997 |
Total | 489 | 673 | 745 | 825 | 799 | 813 | 463 | 538 | 632 | 721 | 723 | 722 | 8143 |
ISSP2012esim2.dat %>% tableX(maa,ga,type = "row_perc") %>%
kable(digits = 2, caption = "ga: suhteelliset frekvenssit")
f1 | f2 | f3 | f4 | f5 | f6 | m1 | m2 | m3 | m4 | m5 | m6 | Total | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BE | 5.76 | 9.84 | 8.64 | 9.89 | 9.24 | 9.19 | 4.57 | 6.71 | 8.05 | 8.74 | 9.04 | 10.33 | 100.00 |
BG | 4.34 | 6.95 | 10.21 | 9.23 | 12.38 | 16.18 | 4.02 | 5.54 | 7.06 | 6.84 | 9.12 | 8.14 | 100.00 |
DE | 5.95 | 7.00 | 8.87 | 10.85 | 7.88 | 10.79 | 6.01 | 6.01 | 7.12 | 10.04 | 8.93 | 10.56 | 100.00 |
DK | 5.98 | 7.93 | 9.80 | 10.52 | 9.22 | 7.13 | 8.93 | 7.42 | 7.85 | 9.01 | 7.64 | 8.57 | 100.00 |
FI | 8.47 | 8.56 | 8.47 | 10.63 | 12.79 | 8.20 | 5.23 | 6.40 | 6.40 | 9.46 | 8.65 | 6.76 | 100.00 |
HU | 5.42 | 8.63 | 9.53 | 9.13 | 9.43 | 10.43 | 4.91 | 7.52 | 10.33 | 8.02 | 10.23 | 6.42 | 100.00 |
All | 6.01 | 8.26 | 9.15 | 10.13 | 9.81 | 9.98 | 5.69 | 6.61 | 7.76 | 8.85 | 8.88 | 8.87 | 100.00 |
edit Vain tarkistuksiin, toisen voi poistaa (19.9.2018)!
CAiP, ch16, täällä myös maa- ja sukupuoli- uudelleenpainotus.
gaTestCA1 <- ca(~ga + Q1b,ISSP2012esim2.dat)
# maapisteiden pääkoordinaatit janojen piirtämiseen
gaTestCA1.rpc <- gaTestCA1$rowcoord %*% diag(gaTestCA1$sv)
par(cex = 0.6)
plot(gaTestCA1, main = "Äiti töissä: ikäluokka ja sukupuoli",
sub = "symmetrinen kartta")
# naiset
lines(gaTestCA1.rpc[1:6,1],gaTestCA1.rpc[1:6,2])
#miehet
lines(gaTestCA1.rpc[7:12,1],gaTestCA1.rpc[7:12,2], col = "red")
Iän ja sukupuolen yhdistetty muuttuja
#segments(gaTestCA1.rpc[1:6,1],gaTestCA1.rpc[1:6,2])
# ,
# gaTestCA1.rpc[4,1],gaTestCA1.rpc[4,2]
# )
#segments(gaTestCA1.rpc[4,1],gaTestCA1.rpc[4,2],
# gaTestCA1.rpc[3,1],gaTestCA1.rpc[3,2]
# )
summary(gaTestCA1)
##
## Principal inertias (eigenvalues):
##
## dim value % cum% scree plot
## 1 0.037448 87.0 87.0 **********************
## 2 0.003977 9.2 96.2 **
## 3 0.001041 2.4 98.6 *
## 4 0.000590 1.4 100.0
## -------- -----
## Total: 0.043055 100.0
##
##
## Rows:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | f1 | 60 990 36 | -125 614 25 | -98 376 145 |
## 2 | f2 | 83 997 163 | -289 983 185 | 35 14 25 |
## 3 | f3 | 91 984 47 | -146 958 52 | 24 26 13 |
## 4 | f4 | 101 1000 97 | -186 836 93 | 82 164 172 |
## 5 | f5 | 98 879 4 | -35 658 3 | 20 221 10 |
## 6 | f6 | 100 951 176 | 256 866 175 | 80 85 162 |
## 7 | m1 | 57 659 32 | 42 72 3 | -120 587 205 |
## 8 | m2 | 66 977 57 | -187 946 62 | -34 30 19 |
## 9 | m3 | 78 457 5 | -31 318 2 | -20 139 8 |
## 10 | m4 | 89 674 14 | 58 482 8 | -37 192 30 |
## 11 | m5 | 89 988 90 | 189 818 85 | -86 170 166 |
## 12 | m6 | 89 978 277 | 360 963 307 | 45 15 45 |
##
## Columns:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | S | 99 915 128 | 196 695 102 | 110 220 304 |
## 2 | s | 238 969 304 | 230 961 336 | 21 8 27 |
## 3 | | 168 777 46 | 62 330 17 | -73 447 223 |
## 4 | e | 261 897 58 | -68 473 32 | -64 424 268 |
## 5 | E | 234 997 464 | -286 962 513 | 55 35 177 |
zxy Aika yksiuloitteinen (87 prosenttia ensimmäisellä dimensiolla!). Data on “as it is”, ei ole vakioitu ga-luokkien kokoja (massat max(f4 101), min (m1 57)).
zxy miten pitäisi tulkita “oikealle kaatunut U - muoto” miehillä ja naisilla? Järjestys ei toimi, S s-sarakkeen vasemmalla puolella. Miehet konservatiivisempia, mutta maltillisempia? Nuorin ikäluokka on poikkeava. Epävarmoja tai maltillisesti e, sitten loikka vasemmalle ja sieltä konservatiiviseen suuntaa oikealle. Naisilla poikkeama f3 - f4. VAnhimmat ikäluokat tiukemmin konservatiivisa (f6, m6). Jos vertaa sukupuolten eroja samassa ikäluokassa, on aika samanlainen (miehet konservatiivisia, naiset liberaaleja). Naisista vain vanhin ikäluokka oikealla, miehistä nuorin ja kolme vanhinta.
zxy Tulkinnassa muistettava, että ikäluokat yli maiden. Voi verrata sekä edellisiin maa-vertailuihin että maan, ikäluokan ja sukupuolen yhteisvaikutusmuuttujan tuloksiin. MG tutkailee eri kysymyksellä tätä samaa asiaa, ja havaitsee että (a) maiden erot suuria ja sukupuolten pieniä (b) naiset liberaalimpia kuin miehet. edit 14.8.20 Viite?
edit 14.8.20 Numeeriset tulokset: nuorimpien miesten (qlt 659) ja erityisesti keski-ikäisten miestén m3 (qlt 457) pisteet huonosti esitetty kartalla. Tulkitaan myös cor ja ctr, riveille ja sarakkeille.
# Luodaan aineistoon kolmen muuttujan yhdysvaikutusmuuttuja maaga, maa, ikäluokka ja sukupuoli.
# Yleensä ei yhdysvaikuksissa mennä yli kolmen luokittelumuuttujan, ja tässäkin vain maiden pieni lukumää
# tekee tarkastelun aika helpoksi.
ISSP2012esim2.dat <- mutate(ISSP2012esim2.dat, maaga = paste(maa, ga, sep = ""))
# tarkistus, muunnos ok
# ISSP2012esim2.dat %>% tableX(maa, maaga)
# head(ISSP2012esim2.dat)
# str(ISSP2012esim2.dat)
Maa - ikäluokka - sukupuoli - interaktiomuuttuja maaga
Tehty jo 26.9.2018!
maagaCA1 <- ca(~maaga + Q1b,ISSP2012esim2.dat)
# maapisteiden pääkoordinaatit janojen piirtämiseen
# HUOM! maagaCA1.rpc on matriisi
maagaCA1.rpc <- maagaCA1$rowcoord %*% diag(maagaCA1$sv)
par(cex = 0.5)
plot(maagaCA1, main = "Äiti töissä: ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta cex=0.5")
Ikä, sukupuoli ja maa
#Kuvatiedoston koko säädettävä tarkemmin (30.3.20)
# Miten kuvatiedosto talteen?
# Omana koodipätkänä (4.5.2020)
# pdf("img/maagaCA1_symm1.pdf")
# par(cex = 0.5)
# plot(maagaCA1, main = "Äiti töissä: ikäluokka ja sukupuoli maittain",
# sub = "symmetrinen kartta cex=0.5")
# dev.off()
maaga-talukossa on paljon pieniä frekvenssejä (alle 5). Periaatteessa pienen frekvenssin rivejä tai sarakkeita voi yhdistää (distr. equivivalece), ja näin kannattaa tehdä jotta kartta ei mene tukkoon. 9.9.20 Pienet solufrekvenssin vs. pienet reunajakauman frekvenssin, miten edellisen kanssa pitäisi toimia?
Kartan herkkyyttä joillekin pienen massan rivipisteille on tutkittu. Ei ilmeistä syytä huoleen, mutta (a) joidenkin pisteiden huono kvaliteetti ja (b) pienet solufrekvenssit ovat huono juttu. Jälkimmäisen voisi korjata yhdistelemättä luokkia, hyöty olisi kuvan selkeytyminen ja haitta kiinnostavien piirteiden peittymine. Erityisesti nuorimman ja toiseksi nuorimman ikäluokan ero.
Vertailu voi tehdä
1.Maiden sisällä, ikä-sukupuoli - luokkien välillä. Ovatko naiset kaikissa ikäluokissa mies-ikäluokkien oikealla vai vasemmalla puolella?
2.Maiden välillä
miten ikä-sukupuoliluokat sijaitsevat suhteessa maiden keskiarvopisteisiin
mikä on niiden järjestys
Ratkaisun numeerisia tuloksia voi katsoa, löytyykö profiileja joilla on pieni massa mutta suuri vaikutus akseleihin.
# (24.2.20) Miten voisi kätevästi tarkistaa, että mikään pienen massa piste ei
# vaikuta (kontribuutiot) liikaa karttaan?
#str(maagaTestCA1)
ISSP2012esim2.dat %>% tableX(maaga, Q1b) # aika pieniä frekvenssejä soluissa!
maaga/Q1b | S | s | ? | e | E | Total |
---|---|---|---|---|---|---|
BEf1 | 5 | 15 | 28 | 43 | 25 | 116 |
BEf2 | 10 | 26 | 34 | 66 | 62 | 198 |
BEf3 | 19 | 27 | 33 | 53 | 42 | 174 |
BEf4 | 21 | 34 | 40 | 55 | 49 | 199 |
BEf5 | 21 | 38 | 46 | 48 | 33 | 186 |
BEf6 | 25 | 58 | 50 | 30 | 22 | 185 |
BEm1 | 9 | 19 | 30 | 24 | 10 | 92 |
BEm2 | 10 | 19 | 31 | 40 | 35 | 135 |
BEm3 | 18 | 33 | 31 | 44 | 36 | 162 |
BEm4 | 19 | 46 | 37 | 51 | 23 | 176 |
BEm5 | 15 | 61 | 34 | 49 | 23 | 182 |
BEm6 | 19 | 75 | 44 | 49 | 21 | 208 |
BGf1 | 2 | 21 | 7 | 9 | 1 | 40 |
BGf2 | 7 | 28 | 17 | 12 | 0 | 64 |
BGf3 | 10 | 44 | 21 | 18 | 1 | 94 |
BGf4 | 14 | 30 | 15 | 24 | 2 | 85 |
BGf5 | 16 | 51 | 21 | 25 | 1 | 114 |
BGf6 | 27 | 66 | 26 | 27 | 3 | 149 |
BGm1 | 8 | 12 | 9 | 7 | 1 | 37 |
BGm2 | 4 | 21 | 12 | 14 | 0 | 51 |
BGm3 | 5 | 33 | 16 | 11 | 0 | 65 |
BGm4 | 7 | 19 | 21 | 15 | 1 | 63 |
BGm5 | 12 | 29 | 21 | 19 | 3 | 84 |
BGm6 | 6 | 41 | 19 | 9 | 0 | 75 |
DEf1 | 5 | 28 | 13 | 33 | 23 | 102 |
DEf2 | 9 | 14 | 14 | 37 | 46 | 120 |
DEf3 | 10 | 22 | 12 | 59 | 49 | 152 |
DEf4 | 11 | 31 | 20 | 53 | 71 | 186 |
DEf5 | 8 | 27 | 12 | 43 | 45 | 135 |
DEf6 | 31 | 40 | 15 | 50 | 49 | 185 |
DEm1 | 6 | 26 | 20 | 36 | 15 | 103 |
DEm2 | 7 | 26 | 13 | 39 | 18 | 103 |
DEm3 | 11 | 24 | 15 | 45 | 27 | 122 |
DEm4 | 22 | 39 | 17 | 57 | 37 | 172 |
DEm5 | 11 | 43 | 19 | 54 | 26 | 153 |
DEm6 | 34 | 55 | 28 | 32 | 32 | 181 |
DKf1 | 7 | 11 | 9 | 15 | 41 | 83 |
DKf2 | 4 | 15 | 7 | 13 | 71 | 110 |
DKf3 | 3 | 20 | 15 | 14 | 84 | 136 |
DKf4 | 5 | 24 | 8 | 19 | 90 | 146 |
DKf5 | 6 | 16 | 11 | 22 | 73 | 128 |
DKf6 | 5 | 26 | 11 | 17 | 40 | 99 |
DKm1 | 10 | 21 | 18 | 28 | 47 | 124 |
DKm2 | 2 | 11 | 9 | 16 | 65 | 103 |
DKm3 | 2 | 13 | 12 | 23 | 59 | 109 |
DKm4 | 4 | 24 | 14 | 24 | 59 | 125 |
DKm5 | 11 | 14 | 23 | 18 | 40 | 106 |
DKm6 | 11 | 43 | 15 | 23 | 27 | 119 |
FIf1 | 3 | 9 | 13 | 36 | 33 | 94 |
FIf2 | 5 | 6 | 3 | 34 | 47 | 95 |
FIf3 | 2 | 8 | 13 | 39 | 32 | 94 |
FIf4 | 3 | 15 | 13 | 47 | 40 | 118 |
FIf5 | 6 | 26 | 17 | 52 | 41 | 142 |
FIf6 | 3 | 22 | 21 | 34 | 11 | 91 |
FIm1 | 1 | 9 | 13 | 22 | 13 | 58 |
FIm2 | 2 | 5 | 6 | 28 | 30 | 71 |
FIm3 | 2 | 10 | 9 | 27 | 23 | 71 |
FIm4 | 8 | 23 | 13 | 43 | 18 | 105 |
FIm5 | 5 | 31 | 15 | 35 | 10 | 96 |
FIm6 | 7 | 24 | 13 | 26 | 5 | 75 |
HUf1 | 11 | 13 | 16 | 11 | 3 | 54 |
HUf2 | 15 | 19 | 25 | 22 | 5 | 86 |
HUf3 | 22 | 26 | 26 | 12 | 9 | 95 |
HUf4 | 24 | 25 | 20 | 14 | 8 | 91 |
HUf5 | 21 | 28 | 19 | 19 | 7 | 94 |
HUf6 | 33 | 30 | 18 | 21 | 2 | 104 |
HUm1 | 9 | 15 | 12 | 8 | 5 | 49 |
HUm2 | 18 | 13 | 15 | 22 | 7 | 75 |
HUm3 | 15 | 38 | 24 | 16 | 10 | 103 |
HUm4 | 14 | 29 | 17 | 13 | 7 | 80 |
HUm5 | 19 | 31 | 24 | 21 | 7 | 102 |
HUm6 | 18 | 21 | 9 | 11 | 5 | 64 |
Total | 810 | 1935 | 1367 | 2125 | 1906 | 8143 |
maagaCA1num <- summary(maagaCA1)
# maagaCA1num
# str(maagaCA1num) numeeriset tulokset tibbleksi - rivit
maagaCAnum2 <- as_tibble(maagaCA1num$rows, .name_repair = c("unique"))
## New names:
## * cor -> cor...6
## * ctr -> ctr...7
## * cor -> cor...9
## * ctr -> ctr...10
# maagaCAnum2
# str(maagaCAnum2)
summary(maagaCAnum2)
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 | |
---|---|---|---|---|---|---|---|---|---|---|
BEf1 : 1 | Min. : 5.00 | Min. :108.0 | Min. : 1.00 | Min. :-895.00 | Min. : 0.0 | Min. : 0.00 | Min. :-347.000 | Min. : 0.00 | Min. : 0.00 | |
BEf2 : 1 | 1st Qu.:10.00 | 1st Qu.:704.8 | 1st Qu.: 6.75 | 1st Qu.:-330.00 | 1st Qu.:351.2 | 1st Qu.: 4.50 | 1st Qu.:-156.000 | 1st Qu.: 42.75 | 1st Qu.: 2.75 | |
BEf3 : 1 | Median :13.00 | Median :838.0 | Median :11.00 | Median : 82.50 | Median :667.5 | Median :11.00 | Median : -13.500 | Median :141.50 | Median :10.00 | |
BEf4 : 1 | Mean :13.97 | Mean :772.6 | Mean :13.88 | Mean : 46.49 | Mean :573.3 | Mean :13.92 | Mean : 1.653 | Mean :199.28 | Mean :13.86 | |
BEf5 : 1 | 3rd Qu.:17.00 | 3rd Qu.:953.2 | 3rd Qu.:15.00 | 3rd Qu.: 472.50 | 3rd Qu.:830.2 | 3rd Qu.:17.00 | 3rd Qu.: 173.500 | 3rd Qu.:265.50 | 3rd Qu.:21.25 | |
BEf6 : 1 | Max. :26.00 | Max. :999.0 | Max. :57.00 | Max. : 701.00 | Max. :982.0 | Max. :66.00 | Max. : 389.000 | Max. :834.00 | Max. :61.00 | |
(Other):66 | NA | NA | NA | NA | NA | NA | NA | NA | NA |
colnames(maagaCAnum2) # välilyötejä nimen alussa
## [1] "name" "mass" " qlt" " inr" " k=1" "cor...6"
## [7] "ctr...7" " k=2" "cor...9" "ctr...10"
names(maagaCAnum2)[3] <- "qlt"
# maagaCAnum2 %>% rename( qlt, qlt)
arrange(maagaCAnum2 , mass)
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 |
---|---|---|---|---|---|---|---|---|---|
BGf1 | 5 | 531 | 11 | 547 | 531 | 8 | -9 | 0 | 0 |
BGm1 | 5 | 940 | 7 | 596 | 878 | 9 | 159 | 62 | 3 |
BGm2 | 6 | 830 | 9 | 557 | 788 | 11 | -130 | 43 | 3 |
HUm1 | 6 | 935 | 5 | 426 | 766 | 6 | 201 | 170 | 6 |
FIm1 | 7 | 787 | 5 | -115 | 78 | 1 | -347 | 710 | 22 |
HUf1 | 7 | 723 | 9 | 499 | 698 | 9 | 93 | 25 | 1 |
BGf2 | 8 | 860 | 14 | 640 | 853 | 17 | 59 | 7 | 1 |
BGm3 | 8 | 709 | 19 | 655 | 698 | 19 | 83 | 11 | 1 |
BGm4 | 8 | 771 | 11 | 540 | 754 | 12 | -81 | 17 | 1 |
HUm6 | 8 | 726 | 15 | 517 | 529 | 11 | 315 | 197 | 20 |
BGm6 | 9 | 692 | 27 | 701 | 647 | 24 | 184 | 45 | 8 |
FIm2 | 9 | 977 | 14 | -598 | 832 | 17 | -250 | 146 | 14 |
FIm3 | 9 | 998 | 6 | -345 | 629 | 6 | -265 | 369 | 16 |
FIm6 | 9 | 911 | 6 | 336 | 637 | 6 | -220 | 274 | 12 |
HUm2 | 9 | 381 | 11 | 344 | 381 | 6 | -2 | 0 | 0 |
BGf4 | 10 | 932 | 12 | 519 | 927 | 15 | -39 | 5 | 0 |
BGm5 | 10 | 979 | 11 | 524 | 977 | 15 | 21 | 2 | 0 |
DKf1 | 10 | 991 | 15 | -567 | 839 | 18 | 241 | 152 | 15 |
HUm4 | 10 | 999 | 10 | 468 | 830 | 12 | 211 | 169 | 11 |
BEm1 | 11 | 429 | 9 | 284 | 367 | 5 | -117 | 62 | 4 |
FIf6 | 11 | 835 | 7 | 151 | 134 | 1 | -347 | 701 | 35 |
HUf2 | 11 | 689 | 11 | 438 | 685 | 11 | -35 | 4 | 0 |
HUf4 | 11 | 768 | 18 | 491 | 564 | 15 | 296 | 204 | 25 |
BGf3 | 12 | 815 | 21 | 617 | 804 | 24 | 75 | 12 | 2 |
DKf6 | 12 | 808 | 9 | -340 | 579 | 8 | 214 | 229 | 14 |
FIf1 | 12 | 980 | 11 | -417 | 693 | 11 | -269 | 287 | 21 |
FIf2 | 12 | 927 | 26 | -730 | 907 | 34 | -110 | 21 | 4 |
FIf3 | 12 | 984 | 13 | -423 | 590 | 11 | -346 | 394 | 36 |
FIm5 | 12 | 734 | 7 | 220 | 289 | 3 | -273 | 446 | 23 |
HUf3 | 12 | 808 | 18 | 484 | 586 | 15 | 298 | 222 | 27 |
HUf5 | 12 | 850 | 13 | 474 | 753 | 14 | 170 | 97 | 9 |
DEf1 | 13 | 425 | 3 | -41 | 29 | 0 | -149 | 395 | 7 |
DEm1 | 13 | 912 | 4 | 124 | 180 | 1 | -250 | 732 | 20 |
DEm2 | 13 | 766 | 4 | 38 | 16 | 0 | -259 | 749 | 22 |
DKm2 | 13 | 989 | 43 | -895 | 900 | 55 | 282 | 89 | 26 |
DKm3 | 13 | 982 | 28 | -728 | 950 | 38 | 134 | 32 | 6 |
DKm5 | 13 | 643 | 9 | -281 | 435 | 6 | 194 | 208 | 13 |
FIm4 | 13 | 837 | 6 | 19 | 3 | 0 | -316 | 834 | 33 |
HUf6 | 13 | 671 | 34 | 637 | 581 | 28 | 251 | 90 | 21 |
HUm3 | 13 | 957 | 12 | 441 | 803 | 13 | 193 | 154 | 12 |
HUm5 | 13 | 942 | 12 | 472 | 891 | 15 | 113 | 51 | 4 |
BEf1 | 14 | 678 | 9 | -83 | 43 | 1 | -320 | 635 | 38 |
BGf5 | 14 | 880 | 23 | 609 | 870 | 28 | 66 | 10 | 2 |
DKf2 | 14 | 991 | 49 | -888 | 831 | 58 | 389 | 160 | 53 |
FIf4 | 14 | 991 | 14 | -398 | 644 | 12 | -292 | 347 | 32 |
DEf2 | 15 | 938 | 10 | -415 | 919 | 14 | -60 | 19 | 1 |
DEm3 | 15 | 737 | 4 | -64 | 63 | 0 | -210 | 674 | 17 |
DKm1 | 15 | 981 | 7 | -329 | 898 | 9 | 100 | 83 | 4 |
DKm4 | 15 | 941 | 19 | -534 | 855 | 24 | 170 | 86 | 11 |
DKm6 | 15 | 355 | 5 | 89 | 85 | 1 | 158 | 270 | 9 |
DKf5 | 16 | 998 | 38 | -753 | 894 | 48 | 258 | 105 | 27 |
BEm2 | 17 | 372 | 5 | -113 | 169 | 1 | -125 | 203 | 7 |
DEf5 | 17 | 839 | 7 | -297 | 772 | 8 | -87 | 67 | 3 |
DKf3 | 17 | 963 | 53 | -816 | 793 | 60 | 377 | 170 | 61 |
FIf5 | 17 | 952 | 8 | -240 | 502 | 5 | -227 | 450 | 23 |
BGf6 | 18 | 921 | 32 | 627 | 846 | 39 | 186 | 74 | 16 |
DKf4 | 18 | 977 | 57 | -826 | 820 | 66 | 362 | 157 | 61 |
DEf3 | 19 | 846 | 13 | -333 | 582 | 11 | -224 | 264 | 24 |
DEm5 | 19 | 603 | 5 | 76 | 75 | 1 | -202 | 529 | 20 |
BEm3 | 20 | 108 | 1 | 17 | 29 | 0 | -29 | 79 | 0 |
BEf3 | 21 | 320 | 3 | -62 | 96 | 0 | -95 | 224 | 5 |
DEm4 | 21 | 137 | 5 | -1 | 0 | 0 | -89 | 137 | 4 |
BEm4 | 22 | 966 | 5 | 225 | 812 | 6 | -98 | 154 | 5 |
BEm5 | 22 | 728 | 8 | 255 | 686 | 8 | -63 | 42 | 2 |
DEm6 | 22 | 849 | 12 | 244 | 427 | 7 | 242 | 422 | 34 |
BEf5 | 23 | 332 | 5 | 133 | 304 | 2 | -40 | 28 | 1 |
BEf6 | 23 | 832 | 17 | 371 | 710 | 17 | 153 | 121 | 14 |
DEf4 | 23 | 985 | 13 | -390 | 982 | 19 | -18 | 2 | 0 |
DEf6 | 23 | 116 | 8 | -56 | 32 | 0 | 90 | 84 | 5 |
BEf2 | 24 | 914 | 11 | -278 | 650 | 10 | -177 | 264 | 20 |
BEf4 | 24 | 164 | 3 | -50 | 92 | 0 | -44 | 71 | 1 |
BEm6 | 26 | 788 | 15 | 348 | 788 | 17 | -5 | 0 | 0 |
# maagaCAnum2
# plot(maagaCAnum2, x = c("mass"), y = c("ctr...7"), xlim = c(0,30), ylim = c(0, 1000))
with(maagaCAnum2, plot(mass, ctr...7))
tail(arrange(maagaCAnum2 ,ctr...7))
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 |
---|---|---|---|---|---|---|---|---|---|
BGf6 | 18 | 921 | 32 | 627 | 846 | 39 | 186 | 74 | 16 |
DKf5 | 16 | 998 | 38 | -753 | 894 | 48 | 258 | 105 | 27 |
DKm2 | 13 | 989 | 43 | -895 | 900 | 55 | 282 | 89 | 26 |
DKf2 | 14 | 991 | 49 | -888 | 831 | 58 | 389 | 160 | 53 |
DKf3 | 17 | 963 | 53 | -816 | 793 | 60 | 377 | 170 | 61 |
DKf4 | 18 | 977 | 57 | -826 | 820 | 66 | 362 | 157 | 61 |
with(maagaCAnum2, plot(mass, ctr...10))
tail(arrange(maagaCAnum2 ,ctr...10))
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 |
---|---|---|---|---|---|---|---|---|---|
FIf6 | 11 | 835 | 7 | 151 | 134 | 1 | -347 | 701 | 35 |
FIf3 | 12 | 984 | 13 | -423 | 590 | 11 | -346 | 394 | 36 |
BEf1 | 14 | 678 | 9 | -83 | 43 | 1 | -320 | 635 | 38 |
DKf2 | 14 | 991 | 49 | -888 | 831 | 58 | 389 | 160 | 53 |
DKf3 | 17 | 963 | 53 | -816 | 793 | 60 | 377 | 170 | 61 |
DKf4 | 18 | 977 | 57 | -826 | 820 | 66 | 362 | 157 | 61 |
str(maagaCAnum2)
## tibble [72 x 10] (S3: tbl_df/tbl/data.frame)
## $ name : Factor w/ 72 levels "BEf1","BEf2",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ mass : num [1:72] 14 24 21 24 23 23 11 17 20 22 ...
## $ qlt : num [1:72] 678 914 320 164 332 832 429 372 108 966 ...
## $ inr : num [1:72] 9 11 3 3 5 17 9 5 1 5 ...
## $ k=1 : num [1:72] -83 -278 -62 -50 133 371 284 -113 17 225 ...
## $ cor...6 : num [1:72] 43 650 96 92 304 710 367 169 29 812 ...
## $ ctr...7 : num [1:72] 1 10 0 0 2 17 5 1 0 6 ...
## $ k=2 : num [1:72] -320 -177 -95 -44 -40 153 -117 -125 -29 -98 ...
## $ cor...9 : num [1:72] 635 264 224 71 28 121 62 203 79 154 ...
## $ ctr...10: num [1:72] 38 20 5 1 1 14 4 7 0 5 ...
arrange(maagaCAnum2, qlt)
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 |
---|---|---|---|---|---|---|---|---|---|
BEm3 | 20 | 108 | 1 | 17 | 29 | 0 | -29 | 79 | 0 |
DEf6 | 23 | 116 | 8 | -56 | 32 | 0 | 90 | 84 | 5 |
DEm4 | 21 | 137 | 5 | -1 | 0 | 0 | -89 | 137 | 4 |
BEf4 | 24 | 164 | 3 | -50 | 92 | 0 | -44 | 71 | 1 |
BEf3 | 21 | 320 | 3 | -62 | 96 | 0 | -95 | 224 | 5 |
BEf5 | 23 | 332 | 5 | 133 | 304 | 2 | -40 | 28 | 1 |
DKm6 | 15 | 355 | 5 | 89 | 85 | 1 | 158 | 270 | 9 |
BEm2 | 17 | 372 | 5 | -113 | 169 | 1 | -125 | 203 | 7 |
HUm2 | 9 | 381 | 11 | 344 | 381 | 6 | -2 | 0 | 0 |
DEf1 | 13 | 425 | 3 | -41 | 29 | 0 | -149 | 395 | 7 |
BEm1 | 11 | 429 | 9 | 284 | 367 | 5 | -117 | 62 | 4 |
BGf1 | 5 | 531 | 11 | 547 | 531 | 8 | -9 | 0 | 0 |
DEm5 | 19 | 603 | 5 | 76 | 75 | 1 | -202 | 529 | 20 |
DKm5 | 13 | 643 | 9 | -281 | 435 | 6 | 194 | 208 | 13 |
HUf6 | 13 | 671 | 34 | 637 | 581 | 28 | 251 | 90 | 21 |
BEf1 | 14 | 678 | 9 | -83 | 43 | 1 | -320 | 635 | 38 |
HUf2 | 11 | 689 | 11 | 438 | 685 | 11 | -35 | 4 | 0 |
BGm6 | 9 | 692 | 27 | 701 | 647 | 24 | 184 | 45 | 8 |
BGm3 | 8 | 709 | 19 | 655 | 698 | 19 | 83 | 11 | 1 |
HUf1 | 7 | 723 | 9 | 499 | 698 | 9 | 93 | 25 | 1 |
HUm6 | 8 | 726 | 15 | 517 | 529 | 11 | 315 | 197 | 20 |
BEm5 | 22 | 728 | 8 | 255 | 686 | 8 | -63 | 42 | 2 |
FIm5 | 12 | 734 | 7 | 220 | 289 | 3 | -273 | 446 | 23 |
DEm3 | 15 | 737 | 4 | -64 | 63 | 0 | -210 | 674 | 17 |
DEm2 | 13 | 766 | 4 | 38 | 16 | 0 | -259 | 749 | 22 |
HUf4 | 11 | 768 | 18 | 491 | 564 | 15 | 296 | 204 | 25 |
BGm4 | 8 | 771 | 11 | 540 | 754 | 12 | -81 | 17 | 1 |
FIm1 | 7 | 787 | 5 | -115 | 78 | 1 | -347 | 710 | 22 |
BEm6 | 26 | 788 | 15 | 348 | 788 | 17 | -5 | 0 | 0 |
DKf6 | 12 | 808 | 9 | -340 | 579 | 8 | 214 | 229 | 14 |
HUf3 | 12 | 808 | 18 | 484 | 586 | 15 | 298 | 222 | 27 |
BGf3 | 12 | 815 | 21 | 617 | 804 | 24 | 75 | 12 | 2 |
BGm2 | 6 | 830 | 9 | 557 | 788 | 11 | -130 | 43 | 3 |
BEf6 | 23 | 832 | 17 | 371 | 710 | 17 | 153 | 121 | 14 |
FIf6 | 11 | 835 | 7 | 151 | 134 | 1 | -347 | 701 | 35 |
FIm4 | 13 | 837 | 6 | 19 | 3 | 0 | -316 | 834 | 33 |
DEf5 | 17 | 839 | 7 | -297 | 772 | 8 | -87 | 67 | 3 |
DEf3 | 19 | 846 | 13 | -333 | 582 | 11 | -224 | 264 | 24 |
DEm6 | 22 | 849 | 12 | 244 | 427 | 7 | 242 | 422 | 34 |
HUf5 | 12 | 850 | 13 | 474 | 753 | 14 | 170 | 97 | 9 |
BGf2 | 8 | 860 | 14 | 640 | 853 | 17 | 59 | 7 | 1 |
BGf5 | 14 | 880 | 23 | 609 | 870 | 28 | 66 | 10 | 2 |
FIm6 | 9 | 911 | 6 | 336 | 637 | 6 | -220 | 274 | 12 |
DEm1 | 13 | 912 | 4 | 124 | 180 | 1 | -250 | 732 | 20 |
BEf2 | 24 | 914 | 11 | -278 | 650 | 10 | -177 | 264 | 20 |
BGf6 | 18 | 921 | 32 | 627 | 846 | 39 | 186 | 74 | 16 |
FIf2 | 12 | 927 | 26 | -730 | 907 | 34 | -110 | 21 | 4 |
BGf4 | 10 | 932 | 12 | 519 | 927 | 15 | -39 | 5 | 0 |
HUm1 | 6 | 935 | 5 | 426 | 766 | 6 | 201 | 170 | 6 |
DEf2 | 15 | 938 | 10 | -415 | 919 | 14 | -60 | 19 | 1 |
BGm1 | 5 | 940 | 7 | 596 | 878 | 9 | 159 | 62 | 3 |
DKm4 | 15 | 941 | 19 | -534 | 855 | 24 | 170 | 86 | 11 |
HUm5 | 13 | 942 | 12 | 472 | 891 | 15 | 113 | 51 | 4 |
FIf5 | 17 | 952 | 8 | -240 | 502 | 5 | -227 | 450 | 23 |
HUm3 | 13 | 957 | 12 | 441 | 803 | 13 | 193 | 154 | 12 |
DKf3 | 17 | 963 | 53 | -816 | 793 | 60 | 377 | 170 | 61 |
BEm4 | 22 | 966 | 5 | 225 | 812 | 6 | -98 | 154 | 5 |
DKf4 | 18 | 977 | 57 | -826 | 820 | 66 | 362 | 157 | 61 |
FIm2 | 9 | 977 | 14 | -598 | 832 | 17 | -250 | 146 | 14 |
BGm5 | 10 | 979 | 11 | 524 | 977 | 15 | 21 | 2 | 0 |
FIf1 | 12 | 980 | 11 | -417 | 693 | 11 | -269 | 287 | 21 |
DKm1 | 15 | 981 | 7 | -329 | 898 | 9 | 100 | 83 | 4 |
DKm3 | 13 | 982 | 28 | -728 | 950 | 38 | 134 | 32 | 6 |
FIf3 | 12 | 984 | 13 | -423 | 590 | 11 | -346 | 394 | 36 |
DEf4 | 23 | 985 | 13 | -390 | 982 | 19 | -18 | 2 | 0 |
DKm2 | 13 | 989 | 43 | -895 | 900 | 55 | 282 | 89 | 26 |
DKf1 | 10 | 991 | 15 | -567 | 839 | 18 | 241 | 152 | 15 |
DKf2 | 14 | 991 | 49 | -888 | 831 | 58 | 389 | 160 | 53 |
FIf4 | 14 | 991 | 14 | -398 | 644 | 12 | -292 | 347 | 32 |
DKf5 | 16 | 998 | 38 | -753 | 894 | 48 | 258 | 105 | 27 |
FIm3 | 9 | 998 | 6 | -345 | 629 | 6 | -265 | 369 | 16 |
HUm4 | 10 | 999 | 10 | 468 | 830 | 12 | 211 | 169 | 11 |
head(arrange(maagaCAnum2, qlt))
name | mass | qlt | inr | k=1 | cor…6 | ctr…7 | k=2 | cor…9 | ctr…10 |
---|---|---|---|---|---|---|---|---|---|
BEm3 | 20 | 108 | 1 | 17 | 29 | 0 | -29 | 79 | 0 |
DEf6 | 23 | 116 | 8 | -56 | 32 | 0 | 90 | 84 | 5 |
DEm4 | 21 | 137 | 5 | -1 | 0 | 0 | -89 | 137 | 4 |
BEf4 | 24 | 164 | 3 | -50 | 92 | 0 | -44 | 71 | 1 |
BEf3 | 21 | 320 | 3 | -62 | 96 | 0 | -95 | 224 | 5 |
BEf5 | 23 | 332 | 5 | 133 | 304 | 2 | -40 | 28 | 1 |
# Hieman hankalaa kätevästi järjestää numeerisia tuloksia massan mukaan
#str(maagaCA1num)
#maagaCA1num$rows
#maagaRows.df <- maagaCA1num$rows
# sarakenimet eivät yksikäsitteisiä
#maagaRows.df
#str(maagaRows.df)
#names(maagaRows.df)
#str(maagaRows.df$mass)
# ei toimi AscmaagaRows.df <- maagaRows.df[order(mass),]
Massa ja kontribuutiot akseleille 1 ja 2: epäilyttäviä havaintoja joilla pieni massa ja suuri kontribuutio ei näytä olevan.
Huonosti esitetettyjä pisteitä on erityisesti Belgiasta, myös Saksan (DEf6,DEf1 ja DEm4), Tanskan vanhat miehet (DKm6) ja Unkarin nuorehkot miehet (HUm2) kuuluvat tähän joukkon.
Maapisteet täydentäviksi pisteiksi - tarkistuksia.
# Miten maa-rivit täydentäviksi riveiksi - alla siisti ratkaisu
# Miten labelit hieman lähemmäkis pistettä? offset-jotenkin toimii...
# rakennetaan taulukko, jossa alimpina riveinä "maa-rivit"
# otetaan karttaan mukaan täydentävinä pisteinä
# karttaa on helpompi tulkita, kun nähdään miten ikä-sukupuoli-ryhmät sijatsevat keskiarvonsa ympärillä
# HUOM! maagaTab1 integer matriisi, dimnames-attribuutilla kaksi arvoa
#ikäluokka - sukupuoli ja maa - maaga-muuttuja
maagaTab1 <- table(ISSP2012esim2.dat$maaga, ISSP2012esim2.dat$Q1b)
#dim(testTab1) #72 riviä, 5 saraketta
# maa-rivit
maagaTab_sr <- table(ISSP2012esim2.dat$maa, ISSP2012esim2.dat$Q1b)
#maagaTab_sr
maagaTab1 <- rbind(maagaTab1,maagaTab_sr)
# str(maagaTab1)
# maagaTab1
# dim(maagaTab1) #78 riviä, 5 saraketta, 1-72 data ja 73-78 täydentävät rivit
spCAmaaga1 <- ca(maagaTab1[,1:5], suprow = 73:78)
# X11()
# Plot toimii (4.2.20), ja par() (4.5.20)
par(cex = 0.5)
plot(spCAmaaga1, main = "Äiti töissä: ikäluokka ja sukupuoli maittain 2",
sub = "symmetrinen kartta, maat täydentävinä pisteinä, cex=0.5"
)
Ikä-sukupuoli-maa
#asymmetrinen kartta
#X11()
par(cex = 0.5)
plot(spCAmaaga1, map = "rowgreen",
contrib = c("absolute", "absolute"),
mass = c(TRUE,TRUE),
arrows = c(FALSE,TRUE),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain 3",
sub ="absoluuttiset kontribuutiot ('rowgreen'),cex=0.5",
)
Ikä-sukupuoli-maa
#asymmetrinen kartta (14.8.20)
par(cex = 0.5)
plot(spCAmaaga1, map = "rowgreen",
contrib = c("absolute", "absolute"),
mass = c(TRUE,TRUE),
arrows = c(FALSE,TRUE),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain 3",
sub = "suhteelliset kontribuutiot ('rowgreen') ,cex=0.5"
)
Ikä-sukupuoli-maa
Analyysin voi tehdä vain osalle dataa - vähän kehno ratkaisu, ei yhteyttä koko aineiston antamaan yleiskuvaan muuttujien yhteyksistä.
Kartasta voi suurentaa osan käsityönä (“leikkaa ja liimaa”). Toimii, yksinkertainen ja ehkä siksi paras? Mutta ei voi koodata! Sopii eksploratiiviseen vaiheeseen, pdf-kuviin voi liittää kommenteja ja tekstiä jne.
BaseR plot-funktiolla voi rakentaa kartan pala kerrallaan ja rajata kuva-alan johonkin kartan osaan. Työlästä, hankalaa? Yllättäen ei, kun asettaa koodilohkon option Rmarkdownissa oikein! (9.9.20). Jos käytetään yhtä ca-funktion tulosobjektia, pelkkiä plot-komentoja.
Osajoukon korrespondenssianalyysi (subset ca)
*zxy** Tässä vain lyhyt kuvaus subset ca:n perusideasta
# Zoomaus - esimerkki (24.2.20) xlim=c(-0.5,0.5), ylim=c(-0.6,0.4)
# EI TOIMI - PISTEET piirrettävä, ei voi käyttää ca.plot - funktiota? (4.5.20).
# MG2017 laskarit - day3: mca:n tuloslistaa käytetty luottamusellipseissä ja toimii?
# Piirtää pisteitä koko "plot-alueelle"?
#X11()
# Rivi- ja sarakekoordinaatit (principal coordinates) talteen
maagaCA1.rpc <- spCAmaaga1$rowcoord %*% diag(simpleCA1$sv)
maagaCA1.cpc <- spCAmaaga1$colcoord %*% diag(simpleCA1$sv)
par(cex = 0.5)
plot(spCAmaaga1, xlim = c(-0.75,0.75), ylim = c(-0.75,0.75),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain 2",
sub = "osa symmetristä karttaa, cex=0.5"
)
Ikä-sukupuoli-maa
# TÄTÄ KEHITELLÄÄ CAcalc_1.R - skriptissä (15.6.20)
# ei toimi ihan toivotulla tavalla - tarkoitettu komentoriviltä
# grafiikkaikkunaan tulostukseen ?
# Vai pitääkö ensin piirtää kuvan "kehys" ilman pisteitä xlim- ja ylim- parametreilla
# ja sitten vasta pisteet?
# Kuvasuhde oikein, kun xlim = ylim, miten turhat pisteet pois? (29.5.20).Menevät
# näköjään kuva-alueen ja ulomman marginaalin väliin.
# Voisiko valita objektista vain osan pisteistä? Tai plot ilman tulostusta, tulos
# objektiin ja sieltä pisteet kuvaan? (29.5.20)
# str(spCAmaaga1)
Ei toimi ihan odotetulla tavalla, mutta kuvasuhde näyttäisi olevan molemmissa oikea. Hieman hankala menetelmä.
# Zoomaus - esimerkki (24.2.20) xlim=c(-0.5,0.5), ylim=c(-0.6,0.4)
# EI TOIMI - PISTEET piirrettävä, ei voi käyttää ca.plot - funktiota? (4.5.20).
# MG2017 laskarit - day3: mca:n tuloslistaa käytetty luottamusellipseissä ja toimii?
# Piirtää pisteitä koko "plot-alueelle"?
# Rivi- ja sarakekoordinaatit (principal coordinates) talteen
maagaCA1.rpc <- spCAmaaga1$rowcoord %*% diag(simpleCA1$sv)
maagaCA1.cpc <- spCAmaaga1$colcoord %*% diag(simpleCA1$sv)
par(cex = 0.5)
plot(spCAmaaga1, xlim = c(0,0.75), ylim = c(-0.75,0.75),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain 2",
sub = "osa symmetristä karttaa - tämä ei oikein toimi (14.9.20)"
)
Ikä-sukupuoli-maa
# TÄTÄ KEHITELLÄÄ CAcalc_1.R - skriptissä (15.6.20)
# ei toimi ihan toivotulla tavalla - tarkoitettu komentoriviltä
# grafiikkaikkunaan tulostukseen ?
# Vai pitääkö ensin piirtää kuvan "kehys" ilman pisteitä xlim- ja ylim- parametreilla
# ja sitten vasta pisteet?
# Kuvasuhde oikein, kun xlim = ylim, miten turhat pisteet pois? (29.5.20).Menevät
# näköjään kuva-alueen ja ulomman marginaalin väliin.
# Voisiko valita objektista vain osan pisteistä? Tai plot ilman tulostusta, tulos
# objektiin ja sieltä pisteet kuvaan? (29.5.20)
# str(spCAmaaga1)
Rivipisteiden inertia on suurempi kuin sarakkeiden. Asymmetrinen kartta näyttää sarakkeet selvemmin.
# Zoomaus - esimerkki (24.2.20) xlim=c(-0.5,0.5), ylim=c(-0.6,0.4)
# EI TOIMI - PISTEET piirrettävä, ei voi käyttää ca.plot - funktiota? (4.5.20).
# MG2017 laskarit - day3: mca:n tuloslistaa käytetty luottamusellipseissä ja toimii?
# Piirtää pisteitä koko "plot-alueelle"?
# Rivi- ja sarakekoordinaatit (principal coordinates) talteen
# maagaCA1.rpc <- spCAmaaga1$rowcoord %*% diag(simpleCA1$sv)
# maagaCA1.cpc <- spCAmaaga1$colcoord %*% diag(simpleCA1$sv)
par(cex = 0.5)
plot(spCAmaaga1, map = "rowgreen",
contrib = c("absolute", "absolute"),
mass = c(TRUE,TRUE),
arrows = c(FALSE,TRUE),
xlim = c(0,0.75), ylim = c(0,0.75),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain 2",
sub = "osa asymmetristä karttaa"
)
Ikä-sukupuoli-maa
# TÄTÄ KEHITELLÄÄ CAcalc_1.R - skriptissä (15.6.20)
# ei toimi ihan toivotulla tavalla - tarkoitettu komentoriviltä
# grafiikkaikkunaan tulostukseen ?
# Vai pitääkö ensin piirtää kuvan "kehys" ilman pisteitä xlim- ja ylim- parametreilla
# ja sitten vasta pisteet?
# Kuvasuhde oikein, kun xlim = ylim, miten turhat pisteet pois? (29.5.20).Menevät
# näköjään kuva-alueen ja ulomman marginaalin väliin.
# Voisiko valita objektista vain osan pisteistä? Tai plot ilman tulostusta, tulos
# objektiin ja sieltä pisteet kuvaan? (29.5.20)
# str(spCAmaaga1)
Edellinen kartta on vähän epäilyttävä, asettuvatkohan skaalatut sarakevektorin oikein? (9.9.20)
Teoria esitetään myöhemnmin, käytännön hyödyllisyys osoitetaan tässä. CA-kartoissa on usein aivan liian paljon pisteitä, vain karkeat yleispiirteet näkyvät. Ovatko kiinnostavat asia piilossa? “Poikkeavat havainnot ovat ainoita todella kiinnostavia havaintoja”.
Data Ensimmäinen osajoukko-ca käyttää datan perustiedostoa (ISSP2012esim2.dat). Maa-rivit ovat mukana kokonaislukumatriisissa maagaTab1.
Datassa maa-sukupuoli-ikäluokkarivit ovat näillä riveillä: BE 1-12, BG 13-24, DE 25-36, DK 37-48, FI 49-60, HU 61-72 . Maa-profiilit ovat taulukon(matriisin) maagaTab1 riveillä 73-78 samassa järjestyksessä. edit 9.9.20 Tarkistettava, miten ca-funktio laskee täydentävien rivien koordinaatit, kun riveistä otetaan analyysiin vain osa.
#31.8.20 Testataan subset ca
#31.8.20 Testataan subset ca
#ISSP2012esim2.dat %>% tableX(maaga, Q1b)
maagaCA2subset1 <- ca(~maaga + Q1b,ISSP2012esim2.dat, subsetrow = 1:24)
par(cex = 0.5)
plot(maagaCA2subset1,
sub = "symmetrinen kartta:Belgia,osajoukon ca (subset ca)"
)
Ikä, sukupuoli ja maa
# main = "Äiti töissä: ikäluokka ja sukupuoli maittain" mikä on plot-funktion
# title-asetusten ja koodilohkon asetusten suhde? Ainakin plot-funkiton
# main = "Äiti töissä: ikäluokka ja sukupuoli maittain" korvaa koodilohkossa
# määritellyn (9.9.20). R-markdownissa kuvan pääotsikko putoaa kokonaan pois,
# mitenköhän tulosteissa?
Kartan tulkintaa, kokonaisinertia voidaan esittää maa kerrallaan. (9.9.20)
# Datana maagaTab1 - viimeisinä riveinä maarivit
maagaCA2sub1 <- ca(maagaTab1[,1:5], subsetrow = 1:24)
par(cex = 0.5)
plot(maagaCA2sub1, map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(TRUE,TRUE),
arrows = c(FALSE, TRUE),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain",
sub = "asymmetrinen(rowgreen) kartta:Belgia,osajoukon ca (subset ca)"
)
Lisätään kuvaan täydentävänä (passiivisena) pisteenä Belgian maapiste, tarkistettava tuleeko se “oikeaan” kohtaa. Jostain syystä
# Datana maagaTab1 - viimeisinä riveinä maarivit
maagaCA2sub2 <- ca(maagaTab1[,1:5], subsetrow = 1:24, suprow = 73)
par(cex = 0.4)
plot(maagaCA2sub2, map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(FALSE, TRUE),
arrows = c(FALSE, TRUE),
main = "Äiti töissä: ikäluokka ja sukupuoli maittain",
sub = "asymmetrinen(rowgreen) kartta:Belgia,osajoukon ca (subset ca)"
)
Belgian kolme aluetta täydentäviksi pisteiksi? Ei tehdä, aika iso duuni.(9.9.20)
# ISSP2012esim2.dat
# spCAmaaga1 maaga-ca-objekti (täydentävillä maa-pisteillä)
# maagaTab1 taulukko jossa maaga-rivit ja maat täydentävinä pisteinä
#
# Ongelma 1: miten saa maarivit kätevästi? Tässä tapauksessa näin
# maagaTab1
# Taulukon viimeisillä riveillä maa-profiilit frekvensseinä
# maaga-rivit ovat samassa järjestyksessä, kuusi naisten ja kuusi miesten
# ikäryhmää
# ISSP2012esim2.dat %>% tableX(maaga, Q1b)
#
# BE 191 451 438 552 381
# BG 118 395 205 190 13
# DE 165 375 198 538 438
# DK 70 238 152 232 696
# FI 47 188 149 423 303
# HU 219 288 225 190 75
#
# BE 1-12, BG 13-24, DE 25-36, DK 37-48, FI 49-60, HU 61-72, maarivi
# Hoitaako ca-paketti automaattisesti täydentävien pisteiden "skaalauksen
# subsetCA:ssa? Sarakepisteiden keskiarvo on origossa, mutta rivien osajoukon
# keskiarvo ei ole ja tämä pitäisi korjata.
maagaCA2sub2 <- ca(~maaga + Q1b,ISSP2012esim2.dat,subsetrow = 25:60)
par(cex = 0.6)
plot(maagaCA2sub2, main = "Äiti töissä: ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta - rivit 25-60 (subset ca)")
Täydentävät maapisteet hieman epäilyttäviä, tarkistettava ovatko oikein.
# Osajoukko-ca ja täydentävät maapisteet
# maapisteet suprow = 73:78 toimivat
spCAmaagasub1 <- ca(maagaTab1[,1:5], suprow = 73:78,subsetrow = 25:60 )
par(cex = 0.6)
plot(spCAmaagasub1, main = "Äiti töissä: ikäluokka ja sukupuoli maittain 2",
sub = "symmetrinen kartta, maat täydentävinä pisteinä, cex=0.06"
)
Osajoukko-ca neljälle ryhmälle Belgia on vähän rajatapaus, kokeillaan osajoukko-ca:ta neljällä maaryhmällä. BG-HU, BE-DE-DK-FI,DEDKFI ja BEBGHUsubset <- c(1:12,13:24,61:72)
# Neljä maaryhmää
BGHUsubset <- c(13:24,61:72)
BEDEDKFIsubset <- c(1:12, 25:36, 37:48, 49:60)
DEDKFIsubset <- c(25:36, 37:48, 49:60)
BEBGHUsubset <- c(1:12,13:14,61:72)
spCAmaagasub3 <- ca(maagaTab1[,1:5], subsetrow = BGHUsubset)
par(cex = 0.6)
plot(spCAmaagasub3, main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta, osajoukko-ca, cex=0.06"
)
spCAmaagasub4 <- ca(maagaTab1[,1:5], subsetrow = BEDEDKFIsubset)
par(cex = 0.6)
plot(spCAmaagasub4,
arrows = c(FALSE, TRUE),
main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta, osajoukko-ca, cex=0.06"
)
# asymmetrinen kartta
par(cex = 0.6)
plot(spCAmaagasub4,map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(FALSE, TRUE),
arrows = c(FALSE, TRUE),
main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "asymmetrinen kartta (rowgreen, relative contr.), osajoukko-ca, cex=0.06"
)
spCAmaagasub5 <- ca(maagaTab1[,1:5], subsetrow = DEDKFIsubset)
par(cex = 0.6)
plot(spCAmaagasub5, main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta, osajoukko-ca, cex=0.06"
)
# asymmetrinen kartta
par(cex = 0.6)
plot(spCAmaagasub5,map = "rowgreen",
contrib = c("relative", "relative"),
mass = c(FALSE, TRUE),
arrows = c(FALSE, TRUE),
main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "asymmetrinen kartta (rowgreen, relative contr.), osajoukko-ca, cex=0.06"
)
spCAmaagasub6 <- ca(maagaTab1[,1:5], subsetrow = BEBGHUsubset)
par(cex = 0.6)
plot(spCAmaagasub6, main = "Äiti töissä (Q1b): ikäluokka ja sukupuoli maittain",
sub = "symmetrinen kartta, osajoukko-ca, cex=0.06"
)
TODO Vielä kuuden maan aineistolla ilman puuttuvia havaintoja? Helpompi havainnollistaa taulukoiden pinoamista / liittämistä (concate, stack). Ja voisi jatkaa ehkä pari pointtia pienellä aineistolla?
# str(ISSP2012jh1d.dat)
# Yksinkertaisuuden vuoksi muuttujat tähän
isodatVars1 <- ISSP2012jh1d.dat %>% names()
isodatVars1 <- isodatVars1[24:73]
demogrVars1 <- c("maa","maa3","sp","ika")
isodatVars1 <- isodatVars1[21:50]
isodatVars1 <- c(demogrVars1, isodatVars1)
isodatVars1
## [1] "maa" "maa3" "sp" "ika" "Q1a" "Q1b" "Q1c"
## [8] "Q1d" "Q1e" "Q2a" "Q2b" "Q3a" "Q3b" "edu"
## [15] "msta" "sosta" "nchild" "lifsta" "urbru" "Q1am" "Q1bm"
## [22] "Q1cm" "Q1dm" "Q1em" "Q2am" "Q2bm" "Q3am" "Q3bm"
## [29] "edum" "mstam" "sostam" "nchildm" "lifstam" "urbrum"
ISSP2012jh1d.dat %>% select(all_of(isodatVars1)) %>%
summary()
maa | maa3 | sp | ika | Q1a | Q1b | Q1c | Q1d | Q1e | Q2a | Q2b | Q3a | Q3b | edu | msta | sosta | nchild | lifsta | urbru | Q1am | Q1bm | Q1cm | Q1dm | Q1em | Q2am | Q2bm | Q3am | Q3bm | edum | mstam | sostam | nchildm | lifstam | urbrum | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FR : 2409 | FR-France : 2409 | m:14789 | Min. : 15.00 | S :11116 | S :2747 | S :2838 | S :2818 | S :3357 | S :11305 | S :2704 | W : 5373 | W :13722 | Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A big city :8442 | S:11116 | S:2747 | S:2838 | S:2818 | S:3357 | S:11305 | S:2704 | W: 5373 | W:13722 | Lower secondary (secondary completed does not allow entry to university: obligatory school) :7811 | In paid work :17967 | 06 :6889 | No children:24102 | Married :17573 | A big city :8442 | |
BE : 2192 | CZ-Czech Republic: 1804 | f:18034 | 1st Qu.: 36.00 | s :12352 | s :8389 | s :8263 | s :7672 | s :8342 | s :13464 | s :5164 | w :15655 | w :13817 | Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Civil partnership : 1035 | The suburbs or outskirts of a big city:4386 | s:12352 | s:8389 | s:8263 | s:7672 | s:8342 | s:13464 | s:5164 | w:15655 | w:13817 | Upper secondary (programs that allows entry to university :7115 | Retired : 7999 | 05 :6798 | One child : 4378 | Civil partnership : 1035 | The suburbs or outskirts of a big city:4386 | |
CZ : 1804 | AU-Australia : 1557 | NA | Median : 50.00 | ? : 3382 | ? :5949 | ? :6000 | ? :7403 | ? :7841 | ? : 5039 | ? :6109 | H : 8367 | H : 1762 | Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership): 486 | A town or a small city :9203 | ?: 3382 | ?:5949 | ?:6000 | ?:7403 | ?:7841 | ?: 5039 | ?:6109 | H: 8367 | H: 1762 | Post secondary, non-tertiary (other upper secondary programs toward labour market or technical formation):5658 | Unemployed and looking for a job, HR: incl never had a job: 1769 | 07 :5778 | 2 children : 2643 | Separated from spouse/ civil partner (still legally married/ still legally in a civil partnership): 486 | A town or a small city :9203 | |
DE : 1761 | RU-Russia : 1525 | NA | Mean : 49.52 | e : 4074 | e :9003 | e :8706 | e :7863 | e :7267 | e : 1929 | e :9210 | NA’s: 3428 | NA’s: 3522 | Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | 3 : 598 | Divorced from spouse/ legally separated from civil partner : 2997 | A country village :8646 | e: 4074 | e:9003 | e:8706 | e:7863 | e:7267 | e: 1929 | e:9210 | P: 3428 | P: 3522 | Lower level tertiary, first stage (also technical schools at a tertiary level) :5147 | In education : 1763 | 08 :3477 | missing : 940 | Divorced from spouse/ legally separated from civil partner : 2997 | A country village :8646 | |
AU : 1557 | NO-Norway : 1444 | NA | 3rd Qu.: 63.00 | E : 1051 | E :5547 | E :5960 | E :5016 | E :3462 | E : 403 | E :8917 | NA | NA | Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 4 : 117 | Widowed/ civil partner died : 2763 | A farm or home in the country :1902 | E: 1051 | E:5547 | E:5960 | E:5016 | E:3462 | E: 403 | E:8917 | NA | NA | Upper level tertiary (Master, Dr.) :4762 | Domestic work : 1180 | 04 :3346 | 3 : 598 | Widowed/ civil partner died : 2763 | A farm or home in the country :1902 | |
RU : 1525 | DK-Denmark : 1403 | NA | Max. :102.00 | NA’s: 848 | NA’s:1188 | NA’s:1056 | NA’s:2051 | NA’s:2554 | NA’s: 683 | NA’s: 719 | NA | NA | (Other) :2022 | (Other) : 1775 | (Other):4758 | (Other) : 45 | Never married/ never in a civil partnership, single : 7535 | NA’s : 244 | P: 848 | P:1188 | P:1056 | P:2051 | P:2554 | P: 683 | P: 719 | NA | NA | Primary school (elementary school) :1531 | Permanently sick or disabled : 1093 | 03 :2221 | 4 : 117 | Never married/ never in a civil partnership, single : 7535 | missing : 244 | |
(Other):21575 | (Other) :22681 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA’s : 308 | NA’s : 370 | NA’s :1777 | NA’s : 940 | NA’s : 434 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | (Other) : 799 | (Other) : 1052 | (Other):4314 | (Other) : 45 | missing : 434 | NA |
Data on valmiina, edellisen luvun ikäluokka, ikä-sukupuoli- muuttuja ja ikä-sukupuoli- maa muuttujien luontia voi harkita.
edit Tässä keskityttävä data-analyysin tutkimusongelmiin, johdantoa MCA-lukuun.
Ref:CAip, CA_Week2.pdf (kalvot MCA-kurssilta 2017)
Concatenated tables (yhdistetyt taulut tai matriisit): (a) kaksi luokittelumuuttujaa (b) useita muuttujia stacked (“pinotaan”).
MCA 2017 laskareissa ja kalvoissa esitetään, miten nämä saadaan kätevästi CA-paketin MJCA-funktion BURT-optiolla.
Ref:CAip ss. 177, HY2017_MCA, Greenacre JAS 2013 (sovellus ISSP 1989, 4 kysymystä ‘pitäisikö äidin olla kotona’, 8 maata), tässä artikkelissa “SVD-based methods”, joista yksi CA (muut biplots, PCA, compositional data/log ratios).
Edellisen menetelmän variantti, jossa ryhmien väliset ja sisäiset erot saadaan esiin. Inertian jakaminen. Samanlaisten rivien ja sarakkeiden kaksi samankokoista taulua, esimerkiksi sukupuolivaikutusten arviointi. Alkuperäinen taulukko jaetaan kahdeksi tauluksi sukupuolen mukaan. Matriisien yhdistäminen (concatenation) riveittäin tai sarakkeittain ei näytä optimaalisesti mm - matriisien eroja.
Ryhmien välisen ja ryhmien sisäinen inertian erottaminen, ABBA on yksi ratkaisu (ABBA matrix, teknisesti block circulanMat matrix).
Luokittelu voi olla myös kahden indikaattorimuuttujan avulla jako neljään taulukkoon (esim. miehet vs. naiset länsieuroopassa verratuna samaan asetelmaan itä-Euroopassa). Samaa ideaa laajennetaan.
Esimerkkinä “Attitudes to women working in 2012”.