Tekentoets
Contents
18. Tekentoets#
18.1. Toepassing#
Gebruik de tekentoets om te toetsen of de medianen van twee gepaarde groepen van elkaar verschillen.1 Deze toets is een alternatief voor de gepaarde t-toets als de verschilscores van de gepaarde groepen niet normaal verdeeld zijn. De Wilcoxon signed rank toets kan ook gebruikt worden om het verschil tussen medianen van gepaarde groepen te toetsen. Deze toets heeft een hoger onderscheidend vermogen2, maar vereist dat de verdeling van de verschilscores symmetrisch is.3 De tekentoets kan ook gebruikt worden als de verdeling niet symmetrisch is.
18.2. Onderwijscasus#
Dit onderzoek vertaalt zich in de volgende combinatie van hypothesen, waarbij de nulhypothese zo geformuleerd is dat er geen effect of verschil is en de alternatieve hypothese zo geformuleerd is dat er wel een effect of verschil is.
H0: Er is geen verschil in de medianen van het bruto jaarinkomen van de alumni van de Academie Mens & Maatschappij één jaar na afstuderen en vijf jaar na afstuderen.
HA: Er is een verschil in de medianen van het bruto jaarinkomen van de alumni van de Academie Mens & Maatschappij één jaar na afstuderen en vijf jaar na afstuderen.
18.3. Assumpties#
Het meetniveau van de variabelen is continu.1
18.4. Uitvoering#
Er is data ingeladen met het bruto jaarinkomen van alumni van de Academie Mens & Maatschappij genaamd dfAlumni_jaarinkomens. De directeur wil een vergelijking maken tussen het inkomen één jaar na afstuderen (meetmoment T1) en vijf jaar na afstuderen (meetmoment T2).
18.4.1. De data bekijken#
Gebruik <dataframe>.head() en <dataframe>.tail() om de structuur van de data te bekijken.
# Pandas library importeren
import pandas as pd
# Eerste 5 observaties
print(dfAlumni_jaarinkomens.head())
Studentnummer Meetmoment Inkomen
0 3343469 T1 25127
1 3836434 T1 27217
2 3634330 T1 29363
3 3010816 T1 44690
4 3570949 T1 25839
# Laatste 5 observaties
print(dfAlumni_jaarinkomens.tail())
Studentnummer Meetmoment Inkomen
53 3705137 T2 24621
54 3434481 T2 30241
55 3120294 T2 21424
56 3865043 T2 29047
57 3862839 T2 31131
Bekijk de grootte en de mediaan van de data met len() en np.median() van het package numpy. Maak hiervoor twee vectoren met daarin de jaarinkomens op T1 en T2.
Alumni_jaarinkomens_T1 = dfAlumni_jaarinkomens[dfAlumni_jaarinkomens["Meetmoment"] == "T1"]["Inkomen"]
Alumni_jaarinkomens_T2 = dfAlumni_jaarinkomens[dfAlumni_jaarinkomens["Meetmoment"] == "T2"]["Inkomen"]
import numpy as np
print(len(Alumni_jaarinkomens_T1))
print(np.median(Alumni_jaarinkomens_T1))
29
29212.0
import numpy as np
print(len(Alumni_jaarinkomens_T2))
print(np.median(Alumni_jaarinkomens_T2))
29
29453.0
Mediaan bruto jaarinkomen op T1:
r paste0("€",format(py$vMed_T1, scientific = FALSE))Mediaan bruto jaarinkomen op T2:
r paste0("€",format(py$vMed_T2, scientific = FALSE))Aangezien de gegevens gepaard zijn, zijn de groepsgroottes op beide meetmomenten gelijk: nT1 =
r py$vN_T1en nT2 =r py$vN_T2
18.4.2. De data visualiseren#
Maak een histogram18 om de verdeling van de bruto jaarinkomens van de alumni één jaar en vijf jaar na afstuderen visueel weer te geven.
## Histogram met matplotlib
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (15, 10))
sub1 = fig.add_subplot(1, 2, 1)
title1 = plt.title("Een jaar na afstudereren")
hist1 = plt.hist(Alumni_jaarinkomens_T1, density = True, edgecolor = "black", bins = 29)
sub2 = fig.add_subplot(1, 2, 2)
title2 = plt.title("Vijf jaar na afstudereren")
hist2 = plt.hist(Alumni_jaarinkomens_T2, density = True, edgecolor = "black", bins = 31)
main = fig.suptitle('Bruto jaarinkomen alumni Mens & Maatschappij')
plt.show()
Op beide meetmomenten is te zien dat de meeste alumni tussen de 0 en €35.000 euro per jaar verdienen en dat een paar alumni hierboven zit. Beide verdelingen hebben één top, maar zijn niet symmetrisch. Bij de inkomens 1 jaar na afstuderen ligt de meerderheid van de observaties links van de top. Bij de inkomens 5 jaar na afstuderen ligt de meerderheid van de observaties juist rechts van de top. Beide verdeling lijken niet echt op elkaar qua vorm en spreiding.
Maak vervolgens een histogram18 van de verschilscores.
# Maak een variabele met de verschilscores
Alumni_verschilscores = np.array(Alumni_jaarinkomens_T2) - np.array(Alumni_jaarinkomens_T1)
## Histogram met matplotlib
import matplotlib.pyplot as plt
hist = plt.hist(Alumni_verschilscores, density = True, edgecolor = "black", bins = 9)
title = plt.title("Verschilscores bruto jaarinkomen alumni Mens & Maatschappij")
xlab = plt.xlabel("Verschilscores")
ylab = plt.ylabel("Frequentiedichtheid")
plt.show()
De verdeling van de verschilscores bevat voornamelijk positieve waarden en een paar negatieve waarden; de meeste alumni zijn er dus in bruto jaarinkomen op vooruitgegaan. De verdeling lijkt niet geheel symmetrisch te zijn
18.4.3. Tekentoets#
Voer een tweezijdige tekentoets uit om de vraag te beantwoorden of de mediaan van de bruto jaarinkomens van alumni verschillend is voor de inkomens één jaar en vijf jaar na afstuderen. Gebruik van het scipy.stats package de functie binom_test() met de argumenten x = Hoger dat het aantal alumni aangeeft dat na vijf jaar meer verdient dan na één jaar na afstuderen, n = Aantal_observaties dat het totaal aantal alumni aangeeft, p = 0.5 om de nulhypothese aan te geven en alternative = 'two-sided' om een tweezijdige alternatieve hypothese te toetsen. De nulhypothese stelt dat er geen verschil is tussen de medianen van het bruto jaarinkomen één jaar en vijf jaar na afstuderen wat betekent dat (ongeveer) de helft van de verschilscores groter dan nul is en de helft van de verschilscores kleiner dan nul is. Vandaar dat de nulhypothese aangegeven kan worden door de verwachte proportie p gelijk te stellen aan 0.5.
import scipy.stats as sps
# Maak een variabele met de verschilscores
Alumni_verschilscores = np.array(Alumni_jaarinkomens_T2) - np.array(Alumni_jaarinkomens_T1)
# Bereken het aantal alumni dat na 5 jaar meer verdient dan na een jaar
Hoger = sum(Alumni_verschilscores > 0)
# Bereken het totaal aantal observaties
Aantal_observaties = len(Alumni_verschilscores)
# Voer de binomiaaltoets uit
Binomiaaltoets = sps.binom_test(x = Hoger, n = Aantal_observaties, p = 0.5, alternative = 'two-sided')
print(Binomiaaltoets)
# Bereken de proportie alumni dat na 5 jaar meer verdient dan na een jaar
Proportie_boven_mediaan = Hoger / Aantal_observaties
print(Proportie_boven_mediaan)
1.5236437320709229e-05
0.896551724137931
Er is een significant verschil tussen het mediane inkomen vijf jaar en één jaar na afstuderen, S =
r py$Hoger, N =r py$Aantal_observaties, p < 0.0001 4De toetsstatistiek S is het aantal positieve verschillen (inkomen vijf jaar na afstuderen hoger dan één jaar na afstuderen), N is het totaal aantal observatie-eenheden (alumni)
Van de
r py$Aantal_observatiesalumni verdienenr py$Hogeralumni meer vijf jaar na afstuderen dan één jaar na afstuderen
18.5. Rapportage#
De tekentoets is uitgevoerd om te onderzoeken of er een verschil is tussen het mediane bruto jaarinkomen van de alumni van de Academie Mens & Maatschappij één jaar en vijf jaar na afstuderen. De resultaten van de toets laten zien dat er een significant verschil is tussen beide medianen, S = r py$Hoger, N = r py$Aantal_observaties, p < 0.0001. Van de r py$Aantal_observaties alumni verdienen r py$Hoger alumni meer vijf jaar na afstuderen. Deze resultaten duiden op een verschil in het mediane bruto jaarinkomen van de alumni van de Academie Mens & Maatschappij waarbij de inkomens vijf jaar na afstuderen hoger lijken te liggen.
- 1(1,2)
Laerd Statistics (2018). Sign Test using SPSS Statistics. https://statistics.laerd.com/spss-tutorials/sign-test-using-spss-statistics.php
- 2
Onderscheidend vermogen, in het Engels power genoemd, is de kans dat de nulhypothese verworpen wordt wanneer de alternatieve hypothese waar is.
- 3
Statistics How To (27 mei 2018). One Sample Median Test. Statistics How to.
- 18(1,2)
De breedte van de staven van het histogram wordt vaak automatisch bepaald, maar kan handmatig aangepast worden. Aangezien de breedte van de staven bepalend zijn voor de indruk die de visualisatie geeft, is het verstandig om hier goed op te letten.
- 4
In dit voorbeeld wordt uitgegaan van een waarschijnlijkheid van 95% c.q. een p-waardegrens van 0,05. De grens is naar eigen inzicht aan te passen; houd hierbij rekening met type I en type II fouten.