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ä.