Vuoden 2022 ylioppilaiden arvosanajakaumia – tytöt ovat erilaisia kuin pojat

Yhdistin Ylioppilastutkintolautakunnan julkaisemat kevään ja syksyn 2022 ylioppilastulostiedostot. Näin sain tietoa kaikista vuoden 2022 ylioppilaista. Piirtelin jakaumakuvaajia aika monesta suositusta (N > 1000) aineesta, jakaumissa näkyy poikien ja tyttöjen tulokset erikseen.

Suurimman osan laskennasta ja kuvaajien piirrosta tein Google Sheetsin Pivot-toiminnalla, osan tilastomatikasta ja joitakin tarkistuksia GeoGebran Yhden muuttujan analyysillä ja Todennäköisyyslaskurilla. Tein myös tarkistuksen vuoksi taulukon eri aineiden keskiarvoista yms. Pythonilla.

pientä pohdiskelua

Minusta näistä kuvaajista ja taulukoista näkyy selvästi, että ylioppilaskokeessa tytöt menestyvät merkittävästi paremmin kuin pojat. Hyvin monessa  aineessa tyttöjen yo-arvosanakeskiarvo on parempi kuin poikien. Esimerkiksi äidinkielessä keskiarvojen erotus on noin 0.7 arvosanaa, terveystiedossa 0,8, psykologiassa 0.6 arvosanaa parempi kuin pojilla. Sellaisia paljon kirjoitettuja aineita (N > 5000) joissa poikien tulos on tilastollisesti merkitsevästi (P arvo < 0.001)  suurempi kuin tytöillä ovat:  pitkä englanti sekä pitkä ja lyhyt matematiikka.

Joku voisi miettiä, onko tämä ongelma vai vaan hyvä juttu. Pitääkö nuorten muuttua tai koulun? Vai pitääkö sen muuttua mitä arvioidaan ja miten?

vuoden 2022 ylioppilaat

Yhteensä vuonna 2022 saimme 29378 ylioppilasta. Puoltoäänien keskiarvo oli 23.51, mediaani 22, keskihajonta 8.26. Kirjoitettujen aineiden lukumäärän keskiarvo oli 5.4.

Keväällä valmistuneita oli 24911 ja syksyllä 4467, yhteensä 29378.

Poikia (sininen) oli 11990 (40.8 %), puoltoäänien keskiarvo 22.4 ja keskihajonta 7.83. Kirjoitettujen aineiden lukumäärän keskiarvo oli pojilla 5.3. 

Tyttöjä (punainen) oli 17388 (59,2%), puoltoäänien keskiarvo 24.3, keskihajonta 8,45. Kirjoitettujen aineiden lukumäärän keskiarvo oli tytöillä 5.5. 

Seuraavassa taulukossa näkyy eri aineiden kirjoittajien lukumäärät suuruusjärjestyksessä. Enpä ollut ennen tajunnut, että pitkää englantia kirjoitetaan enemmän kuin äidinkieltä. Kaikkea sitä oppii, kun laskee. Taulukon koodien tulkinta  löytyy tämän artikkelin lopusta.

ainekirjoittajiaainekirjoittajiaainekirjoittajia
EA27212FF1675PA63
A26047SC1219UO26
N13276A51204L121
M13085CA1162O515
BB9378EC1134Z12
BI8897BA878GC9
PS7801PC641L73
FY7572CB617DC2
YH7225FC566I1
HI6523VA428W0
TE6325SA405Q0
KE6178VC335IC0
GE3627ET296QC0
UE2823FA247
O2061TC77

Poikien ja tyttöjen lukumäärät, keskiarvot ja keskihajonnat aineittain

Rivi yht on puoltoäänien määrä ja lkm kirjoitettujen aineiden lukumäärä. NaN tarkoittaa, että keskiarvoa tai keskihajontaa ei voi laskea, koska kirjoittajia on liian vähän. 

Alla edellisen taulukon tyttöjen keskiarvon ja poikien keskiarvon erotus.

äidinkieli

Kaikissa kuvaajissa tästä eteenpäin sininen viittaa poikiin/miehiin ja punainen tyttöihin/naisiin. Arvosanoissa 0 vastaa arvosanaa improbatur, 2 arvosanaa approbatur, … ja 7 arvosanaa laudatur.

Äidinkieli, suomi – A

Katsotaan kolmea ylintä arvosanaa M, E ja L. Voisi ajatella, että noilla arvosanoilla on suhteellisen helppo tuottaa yliopistoissa vaadittavia kirjoituksia. Tytöillä näitä arvosanoja on 7080 ja pojilla 2755 eli tyttöjen määrä on yli kaksi ja puoli kertainen verrattuna poikien lukumäärään. Saman tyyppinen ero näkyy myös S2:n ja Äidinkieli ruotsin arvosanoissa.

Suomi toisena kielenä, S2 – A5

Äidinkieli, ruotsi – O


matematiikka

Matikoissa poikien keskiarvot ovat pikkaisen parempia kuin tytöillä.

Pitkä matematiikka – M

Lyhyt matematiikka – N


reaaliaineet

Fysiikka – FY

Kemia – KE

Biologia – BI

Maantiede – GE

Psykologia – PS

Historia – HI

Yhteiskuntaoppi – YH

Evankelis-luterilainen uskonto – UE

Terveystieto – TE

Tyttöjen keskiarvo on 0.83 suurempi kuin poikien. Tämä on suurin näissä kuvaajissa.

Filosofia – FF


Kielet

Ruotsi pitkä – BA

Ruotsi keskipitkä – BB

Englanti pitkä – EA

Pitkässä englannissa poikien keskiarvo on 0.4 suurempi kuin tyttöjen, tämä on ainoa aine, jossa poikien keskiarvo on reilusti suurempi kuin tyttöjen.

Englanti lyhyt – EC

Saksa lyhyt oppimäärä – SC

Suomi pitkä oppimäärä – CA


YO-koekoodit selkokielisenä

Tämä taulukko löytyy sivulta https://www.ylioppilastutkinto.fi/ext/data/FT2016KD0010.csv

koeniminamn
AÄidinkieli, suomiModersmålet, finska
A5Suomi toisena kielenäFinska som andraspråk
BARuotsi, pitkä oppimääräSvenska, lång lärokurs
BBRuotsi, keskipitkä oppimääräSvenska, medellång lärokurs
BIBiologiaBiologi
CASuomi, pitkä oppimääräFinska, lång lärokurs
CBSuomi, keskipitkä oppimääräFinska, medellång lärokurs
DCPohjoissaame, lyhyt oppimääräNordsamiska, kort lärokurs
EAEnglanti, pitkä oppimääräEngelska, lång lärokurs
ECEnglanti, lyhyt oppimääräEngelska, kort lärokurs
ETElämänkatsomustietoLivsåskådningskunskap
FARanska, pitkä oppimääräFranska, lång lärokurs
FCRanska, lyhyt oppimääräFranska, kort lärokurs
FFFilosofiaFilosofi
FYFysiikkaFysik
GCPortugali, lyhyt oppimääräPortugisiska, kort lärokurs
GEMaantiedeGeografi
HIHistoriaHistoria
IÄidinkieli, inarinsaameModersmålet, enaresamiska
ICInarinsaame, lyhyt oppimääräEnaresamiska, kort lärokurs
KEKemiaKemi
L1Latina, lyhyt oppimääräLatin, kort lärokurs
L7Latina, pidempi oppimääräLatin, längre lärokurs
MMatematiikka, pitkä oppimääräMatematik, lång lärokurs
NMatematiikka, lyhyt oppimääräMatematik, kort lärokurs
OÄidinkieli, ruotsiModersmålet, svenska
O5Ruotsi toisena kielenäSvenska som andraspråk
PAEspanja, pitkä oppimääräSpanska, lång lärokurs
PCEspanja, lyhyt oppimääräSpanska, kort lärokurs
PSPsykologiaPsykologi
Q– ei käytössä –– ej i bruk –
QCKoltansaame, lyhyt oppimääräSkoltsamiska, kort lärokurs
SASaksa, pitkä oppimääräTyska, lång lärokurs
SCSaksa, lyhyt oppimääräTyska, kort lärokurs
TCItalia, lyhyt oppimääräItalienska, kort lärokurs
TETerveystietoHälsokunskap
UEEvankelis-luterilainen uskontoEvangelisk-luthersk religion
UOOrtodoksi uskontoOrtodox religion
VAVenäjä, pitkä oppimääräRyska, lång lärokurs
VCVenäjä, lyhyt oppimääräRyska, kort lärokurs
WÄidinkieli, koltansaameModersmålet, skoltsamiska
YHYhteiskuntaoppiSamhällslära
ZÄidinkieli, pohjoissaameModersmålet, nordsamiska

Pythonkoodi Colabissa …

…löytyy täältä https://colab.research.google.com/drive/1X4f9JzbctA6a-32jhJZFqHb2AIYIFTFS?usp=sharing

Muita aiheeseen liittyviä artikkeleita https://mikkorahikka.blog/tag/ylioppilaskoe/

Advertisement

Syksyn 2022 ylioppilastutkinnon tuloksien korrelaatiomatriisi 

Julkaisin kesäkuussa tarinan aiheesta ”Kevään 22 yo-kirjoitusten tuloksien korrelaatiomatriisi Pythonilla”. Tuotin syksyn yo-tuloksista samat matriisit. Edelleenkin vaikuttaa siltä, että ei-matemaattiset reaaliaineet ovat kovasti esillä, kun pohditaan, minkä aineen tulos korreloi parhaiten ylioppilaskokeen kokonaismenestymisen kanssa.

Linkit tässä tarinassa käytettyihin tiedostoihin ja koodiin löytyvät tarinan lopusta.

Korrelaatiomatriisi

Syksyllä 22 ylioppilaita valmistui 4466 kappaletta, onnittelut heille. Käytin matriisin tuotossa samaa koodia, kuin kesäkuun tarinassani. Loin taulukon, jossa oli vain oppilaiden puoltoäänien summa (yht) ja eri kirjoituksista saadut arvosanat (”a” = 2, ”b” = 3, …, ”l” = 7) . Poistin taulukosta sellaiset aineet, joita oli kirjoitettu alle 100 kertaa. Loin korrelaatiomatriisin siten, että mukaan laskettiin vain ne aineparit, joissa vähintään 20 oppilasta oli kirjoittanut kyseiset aineet. Lisäsin oikeaan reunaan kaksi saraketta. Sarakkeelle ”∑r2” laskin korrelaatiokertoimien neliöiden eli selitysasteiden summan ja sarakkeelle ”yli .6” laskin niiden korrelaatioden lukumäärän, jotka olivat suurempia kuin 0.6.

Mikäli haluat tuottaa itsellesi erilaisia tuotoksia, niin valmis koodini kommentoituna löytyy Colabista, linkki on Lähteet-luvussa.

pari kommenttia

Parhaiten ylioppilaan puoltoäänien määrää (yht) ennustaa tulkintani mukaan menestyminen evankelis-luterilaisen uskonnon yo-kokeessa (UE, r = 0.80). Biologialla (BI), filosofialla (FF) ja psykologialla (PS) korrelaatiokerroin on lähes sama 0,79. Kevään 22 ylioppilailla korkeimmat korrelaatiot puoltoäänien summan kanssa olivat: historia, evankelis-luterilainen uskonto, maantiede (GE) ja keskipitkä ruotsi (BB); r = 0.75.

Korkeimmat selitysasteiden summat syksyllä: biologia ∑r= 8.5, fysiikka (FY), historia, psykologia ja keskipitkä ruotsi ∑r= 7.1. Kevään ylioppilailla suurimat selitysasteiden summat olivat: biologia (Σr2 = 9), psykologia (Σr2 = 8.9) sekä historia ja keskipitkä ruotsi (Σr2 = 8.5).

Suurimmat aineiden väliset korrelaatiot olivat: yhteiskuntaoppi/biologia r = 0.82, keskipitkä ruotsi/lyhyt englanti (EC) r = 0.81 ja fysiikka/pitkä matikka (M) r = 0.78. Keväällä 22 suurimmat aineiden väliset korrelaatiot: elämänkatsomustieto/historia r = 0.82, elämänkatsomustieto/filosofia ja filosofia/uskonto r = 0.80.

Kesällä jotkut henkilöt olivat sitä mieltä, että kirjoitettujen aineiden lukumäärää olisi mielenkiintoista tutkia. Tein myös sitä varten oman taulukon, johon aineiden oikealle puolelle lisäsin sarakkeen lkm, johon laskin kirjoitettujen aineiden lukumäärän. Havaitaan, että lkm-muuttujan ja kokonaispistemäärän välinen korrelaatio on suuri 0.73, mutta lkm ei juurikaan korreloi minkään yksittäisen aineen kanssa.

Lähteet

Tähän tarinaan liittyvä koodi Google Colabissa

Aiemmat aiheeseen liittyvät artikkelit blogissani

Ylioppilaslautakunnan tiedostot

Tähän käytetty tiedosto löytyy ytl:n sivulta  https://www.ylioppilastutkinto.fi/tietopalvelut/tilastot/koulukohtaisia-tunnuslukuja
sieltä löytyy linkki myös oppiainekoodeihin ja miten tiedostojen nimet on koodattu. Itse tiedosto on osoitteessa https://www.ylioppilastutkinto.fi/ext/data/FT2022SD3001.csv

Ylioppilaskoekorrelaatiomatriisi koodi Pythonilla

Julkaisin muutama päivä sitten tarinan ”Kevään 22 yo-kirjoitusten tuloksien korrelaatiomatriisi Pythonilla”. Tässä artikkelissa kerron, millaisen koodin avulla tuotin sen. Käytän ohjelmointiympäristönä Googlen Colabia. Colabin etuna verrattuna muihin Python ympäristöihin (IDLE, Spyder yms.) on se, että voin muokata koodia pilven kautta ja Colabissa on lähes kaikki Big Datan käsittelyyn käytettävät kirjastot ovat helposti kätettävissä. Samalla saan helpon pääsyn omiin tiedostoihini Google Drivessä ja voin jakaa koodin helposti.

Esitän koodin kuvankaappauksina Colabista ja kommentoin niitä tarinan edetessä. Linkki lopulliseen tiedostoon löytyy tarinan  lopusta.

Tähän käytetty tiedosto löytyy ytl:n sivulta https://www.ylioppilastutkinto.fi/tietopalvelut/tilastot/koulukohtaisia-tunnuslukuja
sieltä löytyy linkki myös oppiainekoodeihin ja miten tiedostojen nimet on koodattu.

Itse tiedosto on osoitteessa https://www.ylioppilastutkinto.fi/ext/data/FT2022KD3001.csv

kirjastoista

Python on siitä kiva, että lähes mihin tahansa koodausongelmiin löytyy apua kirjastoista. Tässä tarinassa käytän Pandas, Seaborn ja Matplotlib -kirjastoja. 

Pandas on luotu taulukoidun datan käsittelyyn, se ikään kuin tuo taulukkolaskennan rivit ja sarakkeet koodiin. Taulukon tietotyyppi Pandasissa on Dataframe, yleensä kirjallisuudessa käytetylle taulukolle annetaan nimi df. Kun käyttää Pandasia, niin kannattaa ajatella taulukot siten, että rivit ovat tilastoyksikköjä ja sarakkeet muuttujia, kuten ytl:n datassa.

Matplotlib-kirjaston avulla piirretetään kuvaajia. Seaborn on Matplotlibin laajennus. Sen avulla saan taulukon dataan värikoodauksen heatmap-funktion avulla. 

koodi kommentoituna, pandas taulukko

Rivit 8-10: ladataan kirjastot

Rivi 13: on Ytl:n datan osoite

Rivi 15: luetaan data Pandasin taulukkoon. Tätä koodatessa havaitsin, että Ytl:n taulukossa erotin on puolipiste, niinkuin usein meillä skandinaaveilla. 

Tässä vaiheessa taulukko näyttää tältä. Jos rivin 16 olisi korvannut rivillä

display(talukko)

niin siitä olisi tullut nätimmmän näköisen, taas opin uutta. En jaksa muuttaa tarinaan liitettyjä kuvankaappauksia.

Kuvasta nähdään, että 24911 ylioppilasta valmistui tänä keväänä. Aakkosissa (tai jollain muulla logiikalla) ensimmäinen Vieremän lukion oppilas oli tyttö ja sai yhteensä 18 puoltoääntä jne.

Alla display-funktiolla tuotetun kuvan vasenta reunaa.

Rivillä 19 luodaan taulukosta df-niminen DataFrame-taulukko.

Rivillä 22 poistetaan kuusi vasemmanpuoleista saraketta ja oikeanpuolisin (tutkintotyyppi).

Taulukko df on nyt tämän näköinen.

Rivi 27: Lasketaan rivien summat (axis = 0 on rivit ja axis = 1 on sarakkeet). Funktio count laskee lukumäärät ja list tuottaa luvuista helposti käsiteltävän listan.

Rivit 30-33: Lasketaan sellaiset sarakkeet, joissa on alle 100 kirjoittajaa. 

Rivi 37: Poistetaan sellaiset sarakkeet, joissa on poistettava indeksi.

Edellisten rivien printtaus tuottaa tällaista.

Rivi 41: Lasketaan korrelaatiomatriisi, min_periods kertoo kuinka monta paria vähintään pitää olla ja round desimaalien lukumäärän. Oletuksena syntyy neliömatriisi, mikä on minulle parempi. LibreOffice ja Excel tuottavat työkaluillaan vain kolmiomatriiseja.

Tämä näyttää hyvältä.

Rivi 45 ja 47: Pitää poistaa vasemmasta reunasta tuo yht-sarake yhteenlaskuja varten.

Rivit 50-51: Lasketaan selitysasteiden summa ja niiden aineiden summa, joilla korrelaatio on yli 0.6. Tässä näkyy Pandasin käyttökelpoisuus taulukoidun datan käsittelyssä.

Nyt taulukon oikeassa reunassa on 

Jos tässä vaiheessa haluaisin tallentaa datan csv-tiedostona omaan Driveeni, niin se toimisi rivillä

df.to_csv(/content/drive/MyDrive/Artikkelit/matriisi/yo.csv", encoding="utf-8”)

seaborn

Tämän kirjaston avulla saan taulukkoon värikoodauksen käyttämällä heatmap-tyyppistä kuvaajaa. Erilaisia väripaletteja on aika paljon, valitsin tähän diskreetin (ei jatkuvan) paletin.  Tämän tuottaminen vaati aika paljon yritystä ja erehdystä.

Rivi 58: Valitaan diskreetti väripaletti keltaisesta punaiseen, päädyin kokeilujen jälkeen tuohon kuuteen eri väriin, ne kuvaavat MAOLin taulukoissa olevaa tulkintaa korrelaatiokertoimista. En välitä negatiivista korrelaatikertoimista, niitä kun on niin vähän.

Rivi 59: Tuotetaan heatmap, annot näyttää oikean reunan palkkin, vmax, vmin ja vcenter kertovat rajoista, annot_kws on fontin koko ja title otsikko.

Rivi 62: Tässä määritetään kuvan koko.

Viimein saatiin tämä kuva.

Oikean reunan kielien poistaminen toimii lisäämällä väliin rivit.

Nyt kuva on tällainen

koodaamisesta

Vaikka yllä oleva voi vaikuttaa aika suoraviivaiselta ja jopa ymmärrettävältäkin, niin tuon tuottaminen tällaiselta aloittelijalta vaati aika paljon Googlettamista sekä yritystä ja erehdystä. Koska Colabissa voi helposti kokeilla erilaisia versioita, niin pitää muistaa kirjoittaa paljon kommentteja. Muuten versioiden hallinta menee mahdottomaksi.

Colab-tiedosto https://colab.research.google.com/drive/106rjIDEJWdn2ImdVtjAKzg_3df9fWhPx?usp=sharing


Koodaamisen oppiminen on helppoa, sen opettaminen on vaikeaa.

lähteitä

Korrelaatiomatriisi Pandasilla https://datagy.io/python-correlation-matrix/

Pandas dataframe-ohje https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html

Seaborn väripaletit https://seaborn.pydata.org/tutorial/color_palettes.html

Seaborn Heatmap, aika hyvä ohje https://www.geeksforgeeks.org/seaborn-heatmap-a-comprehensive-guide/

Kalibur Rahman, Python Data Visualization, Essential Guide, 2021, BpB