Avainsana-arkisto: Ristiintaulukointi

Lukumäärä- ja prosenttiyhteenvedot Pythonilla

Päivitetty 8.2.2024

Lukumäärä- ja prosenttiyhteenvedot tulevat kyseeseen seuraavissa tapauksissa:

  • Kategorisen muuttujan yhteenvetotaulukko (frekvenssitaulukko) tai frekvenssien esittäminen pylväskaaviona.
  • Määrällisen muuttujan luokiteltu jakauma frekvenssitaulukkona tai histogrammina.
  • Dummy-muuttujien (dikotomisten muuttujien) yhteenveto. Dummy-muuttujaksi kutsutaan muuttujaa, joka saa arvokseen joko 0 (joskus tämän sijasta käytetään tyhjää) tai 1. Esimerkiksi kyselytutkimuksessa monivalintakysymys, jonka vaihtoehdoista vastaaja saa valita useammankin kuin yhden, koodataan dummy-muuttujiksi: Jokainen kysymyksen vaihtoehto on muuttuja, joka saa arvokseen 1, jos vastaaja on sen valinnut. Muussa tapauksessa arvo on 0 tai tyhjä.
  • Kategoristen muuttujien välisen riippuvuuden tarkastelu ristiintaulukoimalla.

Frekvenssitaulukko

Frekvenssitaulukon lasken pandas-kirjaston crosstab-funktiolla.

Jos kategoristen muuttujien arvot eivät ole tekstimuodossa, niin määrittelen numeroiden tekstimuotoiset vastineet listoina. Listan voin sijoittaa taulukon indeksin arvoksi.

frekvenssitaulukko

Voin visualisoida lukumääriä tai prosentteja vaaka- tai pystypylväskaaviona. Yhteensä-rivin tietoja en esitä pylväänä. Jos esitän kaaviossa prosentteja, niin näytän n-arvon (lukumäärä, josta prosentit on laskettu; esimerkiksi edellisessä taulukossa n=81).

Tarkemmat yksityiskohdat selviävät esimerkistä.

Luokiteltu jakauma

Määrällisen muuttujan jakaumaan tutustun luokitellun jakauman avulla.

Pythonilla on helppo kokeilla erilaisia luokkien lukumääriä tai luokkarajoja tilanteeseen sopivan luokittelun löytämiseksi. Olen tottunut käyttämään luokitteluun kahta menetelmää:

  • Pandas kirjaston cut-funktiolla voin lisätä luokat alkuperäiseen dataan ja laatia sen jälkeen frekvenssitaulukon crosstab-funktiolla.
  • Mieluummin laadin histogrammin suoraan datasta seaborn kirjaston histplot-kaaviolajia käyttäen.

histogrammi

Tarkemmat yksityiskohdat selviävät esimerkistä.

Dummy-muuttujien yhteenveto

Yhteenvetoon mukaan otettavat muuttujat määrittelen listana. Tämän jälkeen lasken listan mukaisista muuttujista lukumäärät:

  • Jos dummy-muuttujan arvoina on ykkösiä (ja nollia tai tyhjiä) niin käytän sum-funktiota.
  • Jos dummy-muuttujan arvoina on ykkösten sijasta joitain muita numeroita ja tyhjiä niin käytän count-funktiota (laskee lukujen lukumäärän).

dummy

Tärkeää: Prosentit lasken kaikista vastaajista (=koko otoksesta). Taulukon yhteydessä täytyy ilmoittaa n-arvo (edellä n=82).

Tarkemmat yksityiskohdat selviävät esimerkistä.

Ristiintaulukointi

Kahden kategorisen muuttujan välinen riippuvuus selviää ristiintaulukoimalla. Laadin ristiintaulukoinnin crosstab-funktiolla.

Tärkeää: Jos selittävän muuttujan arvot ovat sarakkeissa, niin käytän prosentteja sarakkeen kokonaismäärästä (columns). Jos selittävän muuttujan arvot ovat riveillä, niin käytän prosentteja rivin kokonaismäärästä (index).

lkm4

Tärkeää: Jos käytän prosentteja niin minun on kerrottava mistä lukumääristä prosentit on laskettu (n-arvot). Edellä prosentit on laskettu naisten kohdalla naisten lukumäärästä (n=19) ja miesten kohdalla miesten lukumäärästä (n=62).

Jos otoksesta lasketussa ristiintaulukoinnissa on havaittavaa riippuvuutta, niin voin tarkistaa khiin neliö -testillä, onko riippuvuus tilastollisesti merkitsevää?

Tarkemmat yksityiskohdat selviävät esimerkistä.

value_counts()

Frekvenssitaulukot ja ristiintaulukoinnit voin siis laskea crosstab()-funktiolla, mutta taitavalle käyttäjälle value_counts() on kätevämpi ja antaa enemmän mahdollisuuksia.

Tarkemmat yksityiskohdat selviävät esimerkistä.

Ristiintaulukointi ja khiin neliö -testi

Päivitetty 17.4.2019.

Jos datani pohjautuu laajemmasta perusjoukosta satunnaisesti valittuun otokseen, niin tietyin edellytyksin voin yleistää otoksen tuloksia perusjoukkoon. Ristiintaulukoinnin tapauksessa tämä tarkoittaa taulukossa havaitun riippuvuuden tai ryhmien välisen eron yleistämistä perusjoukkoon.

Otoksessa havaitun riippuvuuden tai ryhmien välisen eron täytyy olla riittävän suuri, jotta voin yleistää sen perusjoukkoon. Jos riippuvuus tai ryhmien välinen ero on pieni, niin tämän voin selittää otantavirheellä. Riippuvuuden tai eron suuruutta testaan vertaamalla hypoteettiseen tilanteeseen, jossa ei ole lainkaan riippuvuutta tai lainkaan eroja ryhmien välillä. Vertailun toteuttamiseksi lasken ristiintaulukoinnin rinnalle toisen ristiintaulukoinnin, joka vastaa hypoteettista tilannetta.

Tärkeää: Vaikka ristiintaulukoinnissa on havainnollisempaa esittää prosentit kuin lukumäärät, niin khiin neliö -testauksen lähtökohtana käytetään aina lukumääriä.

Hypoteettisen ristiintaulukoinnin laskeminen

Käytän seuraavassa esimerkkidataa data1.xlsx. Datasta laskettu sukupuolen ja tyytyväisyys työympäristöön välinen ristiintaulukointi näyttää seuraavalta:

Taulukossa on havaittavissa ero miesten ja naisten mielipiteissä (naiset tyytyväisempiä). Eron suuruuden selville saamiseksi lasken hypoteettisen ristiintaulukoinnin, jossa eroa ei ole. Hypoteettisessa taulukossa miesten ja naisten yhteismäärien pitää olla havaitun taulukon mukaiset samoin eri mielipiteitä omaavien yhteismäärät.

Hypoteettisen taulukon lukumäärät saan kertomalla havaitun taulukon rivi- ja sarakesummat keskenään ja jakamalla kokonaissummalla (82). Esimerkiksi erittäin tyytymättömien miesten lukumääräksi saan  (9*63)/82 eli noin 6,9. Laskentamenetelmä perustuu todennäköisyyslaskentaan:

  • Jos erittäin tyytymättömiä on 9, niin todennäköisyys sille että otoksesta sattumanvaraisesti valittu on erittäin tyytymätön on 9/82.
  • Jos miehiä on 63, niin todennäköisyys sille että otoksesta sattumanvaraisesti valittu on mies on 63/82.
  • Todennäköisyyden sille että otoksesta sattumanvaraisesti valittu on erittäin tyytymätön mies saan kertomalla todennäköisyydet 9/82 ja 63/82 keskenään. Kyseinen todennäköisyys kertoo samalla erittäin tyytymättömien miesten prosenttiosuuden siinä tapauksessa että miesten ja naisten mielipiteillä ei ole eroa.
  • Laskemalla erittäin tyytymättömien miesten lukumäärä erittäin tyytymättömien miesten prosenttiosuutta käyttäen saan (9/82)*(63/82)*82. Sievennyksen jälkeen tästä tulee (9*63)/82.

Jos lasken taulukon muihin soluihin lukumäärät vastaavalla tavalla (rivisumman ja sarakesumman tulo jaettuna kokonaissummalla), niin saan seuraavan taulukon:

Taulukon lukumääriä kutsutaan odotetuiksi lukumääriksi tai odotetuiksi frekvensseiksi (expected frequencies) ja ne siis vastaavat hypoteettista tilannetta, jossa sukupuolen ja mielipiteen välillä ei ole riippuvuutta (miesten ja naisten mielipiteissä ei ole eroa).

Testin käyttöedellytykset

Havaitun taulukon ja hypoteettisen taulukon eron testaaminen ei ole luotettavaa, jos hypoteettisen taulukon lukumäärät eli odotetut frekvenssit ovat liian pieniä. Kirjallisuudessa annetaan hieman toisistaan poikkeavia rajoja sille, milloin testaaminen muuttuu epäluotettavaksi. Monissa lähteissä esitetään seuraavat kriteerit testaamisen luotettavuudelle:

  • Taulukossa, jossa on kaksi riviä ja kaksi saraketta (2×2 taulukko) ei saa olla yhtään alle viiden (5) suuruista odotettua frekvenssiä.
  • Suuremmissa taulukoissa alle viiden (5) suuruisia odotettuja frekvenssejä saa olla viidesosa (20 %) kaikista odotetuista frekvensseistä. Alle yhden (1) suuruisia odotettuja frekvenssejä ei saa olla lainkaan.

Edellä lasketussa taulukossa on kolme alle viiden suuruista odotettua frekvenssiä eli 3/10=30 % kaikista. Tämä on liikaa.

Esimerkissäni voin luontevasti yhdistää mielipiteitä (erittäin tyytymätön ja tyytymätön yhteen sekä erittäin tyytyväinen ja tyytyväinen yhteen). Näin taulukko pienenee 5×2 taulukosta 3×2 taulukoksi, jolloin taulukon lukumäärät kasvavat. Esimerkissäni mielipiteiden yhdistäminen korjaa tilanteen eikä alle viiden suuruisia odotettuja frekvenssejä ole kuin 1 (1/6 eli 17 % kaikista).

Khiin neliö Χ²

Havaitun ja hypoteettisen taulukon eroa voin mitata khiin neliö -testimuuttujalla. Khiin neliön merkkinä käytetään kreikkalaista isoa khi-kirjainta varustettuna yläindeksillä 2 (Χ²). Khi-kirjaimen sijasta voin käyttää myös isoa X-kirjainta. En selitä tässä khiin neliö -testimuuttujan laskemista, mutta halutessasi voit lukea testimuuttujan laskemisesta ja khiin neliö -jakaumasta artikkelista Khiin neliö -testi – lisätietoa.

Khiin neliö -testimuuttujan tiedetään noudattavan likimain khiin neliö -todennäköisyysjakaumaa, jonka tarkka muoto riippuu vapausasteluvusta df (degrees of freedom). Vapausasteita on (rivien määrä-1)×(sarakkeiden määrä-1). Esimerkiksi 2×2 taulukossa df=(2-1)×(2-1)=1. Tämän voi ymmärtää helposti: Jos taulukon rivi- ja sarakesummat ovat tiedossa, niin ainoastaan yhden arvon voi asettaa 2×2 taulukkoon vapaasti; muut arvot määräytyvät tämän perusteella.

Khiin neliö -testi

Khiin neliö -testissä määritetään khiin neliö -todennäköisyysjakaumasta niin kutsuttu p-arvo, joka vastaa seuraavaan kysymykseen: Kuinka todennäköistä on saada havaitun suuruinen tai vielä suurempi khiin neliö -testimuuttujan arvo ilman riippuvuutta tai eroa perusjoukossa? Mitä pienempi p-arvo on, sitä enemmän riippuvuuden tai eron yleistäminen perusjoukkoon saa tukea. Toisaalta, mitä suurempi p-arvo on, sitä todennäköisemmin havaitut erot johtuvat otantavirheestä.

Vakiintuneen tavan mukaan alle 0,050 (5,0 %) suuruista p-arvoa pidetään riittävänä näyttönä perusjoukossa olevan riippuvuuden tai eron puolesta.

Excelissä voin laskea p-arvon CHISQ.TEST (CHINELIÖ.TESTI) -funktiolla. Funktiolle annetaan kaksi argumenttia: viittaus havaittuihin frekvensseihin ja viittaus odotettuihin frekvensseihin. Excel 2007 ja vanhemmissa versioissa funktion nimi on CHITEST (CHITESTI). Vanha funktion nimi toimii edelleen myös uudemmissa versioissa.

Khiin neliö -testin raportointi

Esimerkissäni mielipiteiden yhdistämisen jälkeen laskettu khiin neliö -testi antaa p-arvoksi 0,005. Tuloksen voin raportoida esimerkiksi seuraavasti: Miesten ja naisten mielipiteissä on merkitsevää eroa (khiin neliö -testin p-arvo 0,005). Tieteellisessä tekstissä tulos on hyvä raportoida vieläkin täsmällisemmin ilmoittamalla vapausasteiden lukumäärä (df) ja khiin neliö -testimuuttujan arvo: Khiin neliö -testin mukaan miesten (n=63) ja naisten (n=19) mielipiteissä on eroa: df=2; Χ²(2)=10,59; p=0,005.

Excel laskee puolestasi

Onneksi jaksoit lukea tänne asti. Kaikkea ei tarvitse laskea alusta alkaen. Voit käyttää rakentamiani taulukkopohjia otantavirhe.xlsx, joihin voit kirjoittaa tai kopioida oman taulukkosi lukumäärät. Tämän jälkeen näet suoraan odotetut frekvenssit, khiin neliön Χ², vapausasteiden lukumäärän df ja p-arvon. Sinun tehtäväksesi jää tulosten raportointi.

Jos haluat laskea khiin neliö -testin SPSS:llä, niin lue artikkeli SPSS: Khiin neliö -testi.

Yhteenveto

Jos otoksesta lasketussa ristiintaulukoinnissa näkyy ryhmien välisiä eroja, niin

  • Mitä pienempi p-arvo, sitä enemmän saan tukea väitteelle, että myös perusjoukossa on ryhmien välisiä eroja. Yleensä alle 0,050 (5,0 %) suuruista p-arvoa pidetään varsin hyvänä tukena väitteelle, että myös perusjoukossa on ryhmien välisiä eroja.
  • mitä isompi p-arvo, sitä todennäköisemmin otoksessa havaitut erot johtuvat pelkästään otantavirheestä.

Vaihtoehtoja khiin neliö -testille

Khiin neliö -testi soveltuu käytettäväksi erityisesti kahden kategorisen muuttujan tapauksessa. Jos toinen muuttujista on mielipideasteikollinen, niin Mann-Whitney U -testi (kahden ryhmän vertailu) tai Kruskal-Wallis -testi (useamman ryhmän vertailu) ovat suositeltavampia testimenetelmiä. Tämän artikkelin esimerkissä toisena muuttujana on mielipideasteikollinen muuttuja. Esimerkissä tuleekin ongelmia khiin neliö -testin käyttöedellytysten kanssa. Mann-Whitney U -testissä ei tule ongelmia käyttöedellytysten kanssa. Valitettavasti Excelissä ei ole toimintoa Mann-Whitney U -testin tai Kurskal-Wallis -testin laskemiseen.

Ristiintaulukointi

Päivitetty 16.1.2021

Ristiintaulukoinnin laatiminen

Hallitsethan varmasti artikkelin Frekvenssijakauma asiat sillä muutoin ei kannata lukea tätä artikkelia.

Käytän seuraavassa dataa data1.xlsx, joka sisältää erään yrityksen työntekijöiden vastauksia. Selvitän onko miesten tyytyväisyys työympäristön suhteen erilainen kuin naisten. Kyseessä on siis ryhmien, miesten ja naisten, vertailu. Voin myös sanoa, että selvitän sukupuolen ja mielipiteen välistä riippuvuutta.

Aloitan valitsemalla yhden ja vain yhden solun datan alueelta (tärkeää!). Tämän jälkeen valitsen Insert (Lisää) -välilehdeltä PivotTable (Pivot-taulukko).

Aukeavasta ikkunasta tarkastan, että Excel on tunnistanut datan oikein. Voin myös määrittää luotavan pivot-taulukon sijainnin, mutta yleensä oletus (New Worksheet) kelpaa minulle.

OK:n jälkeen raahaan ’tyytyväisyys työympäristöön’ -muuttujan riviotsikoihin (Row Lables) ja arvoihin (Values). Tämän jälkeen on tärkeää tarkastaa laskentaperuste ja vaihtaa se tarvittaessa. Jos Excel ehdottaa summaa niin vaihdan sen määräksi (Count). Vaihtaminen tapahtuu napsauttamalla Arvot (Values) -ruudun kenttää ja valitsemalla esiin tulevasta valikosta Value Field Settings (Arvokentän asetukset).

Seuraavaksi lisään ryhmittelyn miehiin ja naisiin raahaamalla ’sukupuoli’-muuttujan sarakeotsikohin (Column Labels). Tuloksena on jotain seuraavan kaltaista:

Taulukon sisältö selvenee, kun korvaan sarakeotsikoiden arvot 1 ja 2 sanoilla mies ja nainen sekä korvaan riviotsikoiden arvot 1, 2, 3, 4 ja 5 mielipiteiden nimillä.

Viimeistelyn jälkeen sain taulukon näyttämään seuraavalta:

Miesten ja naisten lukumäärien vertailu eri mielipiteiden kohdalla on ongelmallista, koska miesten ja naisten yhteismäärät poikkeavat toisistaan. Prosenttien vertailu on valaisevampaa. Jos lisään alkuperäiseen taulukkoon prosentit lukumäärien lisäksi, niin taulukosta tulee vaikeasti luettava, varsinkin henkilöille, jotka eivät pidä numeroista. En siis lisää uutta kenttää prosentteja varten, vaan vaihdan arvokentän tiedon näyttötavaksi prosenttia sarakkeen summasta (Percent of Column Total). Vaihtaminen tapahtuu napsauttamalla Values (Arvot) -ruudun kenttää, valitsemalla esiin tulevasta valikosta Value Field Settings (Arvokentän asetukset) ja siirtymällä edelleen Show Values As (Näytä arvot muodossa) -välilehdelle.

Julkaistavaan prosenttitaulukkoon täytyy aina liittää n-arvot, joista prosentit on laskettu. Prosenttitaulukko voisi viimeistelyn jälkeen näyttää seuraavalta:

Raportointi

Jos selität ristiintaulukoinnin sisältöä tutkimusraportissa, niin liitä taulukko näkyville selityksen yhteyteen. Lukija voi taulukosta varmistaa selityksesi oikeellisuuden ja saada tarkennusta yksityiskohtiin.

Kun selitän ristiintaulukoinnin sisältöä tutkimusraportissa, niin aloitan kuvailemalla mielipiteiden jakaumaa koko otoksessa (Kaikki-sarake). Tämän jälkeen voin kertoa miesten ja naisten mielipiteiden eroista. Kaikkia taulukon prosentteja ei ole tarkoituksenmukaista luetella tekstissä. Esimerkki-taulukkoa voin selittää esimerkiksi seuraavasti:

Suurin osa vastaajista on tyytyväisiä työympäristöön. Tyytymättömiä tai erittäin tyytymättömiä on noin viidesosa (22 %) vastaajista. Naiset ovat miehiä tyytyväisempiä. Naisista 74 % on tyytyväisiä tai erittäin tyytyväisiä. Vastaava luku miehillä on 32 %. Naisista yksikään ei ollut erittäin tyytymätön työympäristöön. Kannattaa panna merkille miesten suuri osuus (43 %) vastausasteikon keskimmäisen mielipiteen kohdalla (ei tyytymätön eikä tyytyväinen).

Graafinen esittäminen

Siisti ristiintaulukointi on havainnollinen ja selkeä tapa esittää riippuvuus/ryhmien ero, joten graafista esittämistä ei välttämättä tarvita. Jos kuitenkin haluat havainnollistaa tilannetta graafisesti, niin mahdollisuuksia on monia. Kaaviolajiksi voit valita pylväät, pinotut pylväät tai 100 % pinotut pylväät. Kaavion voit tehdä suoraan pivot-taulukon pohjalta pivot-taulukkotyökalujen Analyze (Analysoi) -välilehden PivotChart (Pivot-kaavio) -toiminnolla. Seuraavassa muutamia mahdollisa tapoja graafiseen esittämiseen. Jos haluat kerrata kaavioiden muotoiluun liittyviä asioita, niin voit käyttää itseopiskelupakettia kaavio.xlsx.

Yllä olevassa kaaviossa havainnollistuu miesten ja naisten ero pylväiden pituuksien eroina. Pystyakselin täsmällinen otsikointi on tärkeää, jotta vastaaja ei kuvittele pylväiden esittävän lukumääriä.

Yllä olevassa kaaviossa havainnollistuu koko otoksen mielipiteiden jakauma pylväiden kokonaispituuksina. Samalla havainnollistuu myös ero naisten ja miesten välillä. Kaavio on tehty pivot-taulukosta, jossa on lukumääriä.

Yllä olevassa kaaviossa havainnollistuu mielipiteiden jakauma naisten joukossa ja miesten joukossa. Samalla on helppo tehdä vertailua naisten ja miesten mielipidejakaumien välillä.  Tätä kaaviota varten sukupuolen täytyy olla pivot-taulukon riviotsikoissa (Row Labels) ja tyytyväisyyden sarakeotsikoissa (Column Labels). Tällöin pivot-taulukon prosentit täytyy laskea rivin summasta (Percent of Row Total).

Useampitasoinen ryhmittely

Voit porautua aineistoosi syvemminkin ryhmittelemällä useamman muuttujan mukaan. Riviotsikoihin (Row Labels) ja sarakeotsikoihin (Column Labels) voit raahata useampiakin muuttujia. Monitasoisten taulukoiden ymmärtäminen vaatii huolellista perehtymistä.

Voit myös hyödyntää raporttisuodatinta (Report Filter). Muuttujan lisääminen raporttisuodattimeen lisää pivot-taulukon yläpuolelle alasvetovalikon, josta pääset valitsemaan ne raporttisuodatinmuuttujan arvot, joita haluat tarkastella. Pivot-taulukko päivittyy raporttisuodattimen valintojen perusteella.

Seuraavaksi

Lue myös artikkeli Pivot-kaaviot, jossa lähestyn pivot-taulukoita pivot-kaavioiden näkökulmasta.

Jos data on otos (kiinnostuksen kohteena olevaa perusjoukkoa ei ole kokonaisuudessaan tutkittu), niin tulokset koskevat otosta. Otoksen tuloksia ei muitta mutkitta voi yleistää otoksesta perusjoukkoon. Jos havaitsen ristiintaulukoinnissa ryhmien välisiä eroja, niin eroja ei välttämättä ole otosta laajemmassa perusjoukossa. Tämä on seurausta niin kutsutusta otantavirheestä. Mitä pienempää otosta käytän sitä enemmän otos voi otantavirheen takia poiketa perusjoukosta.

Otoksessa havaitun eron/riippuvuuden voin kuitenkin yleistää perusjoukkoon, jos ero/riippuvuus on riittävän suuri. Riittävän suurta eroa/riippuvuutta kutsutaan tilastollisesti merkitseväksi. Artikkelissa Ristiintaulukointi ja khiin neliö -testi kirjoitan tilastollisesta merkitsevyydestä ristiintaulukoinnin tapauksessa.