Gebruik de gepaarde t-toets om te toetsen of de gemiddelden van twee (herhaalde) metingen van een groep verschillen en om te toetsen of de gemiddelden van twee gepaarde groepen van elkaar verschillen.1
Voor het verminderen van de studielast van studenten biedt het Centrum voor Studentbegeleiding van een universiteit een cursus Plannen aan. De cursus is bedoeld om studenten beter inzicht te geven in de gevolgen van de planning van hun studielast. De cursus wordt tussen twee onderwijsperiodes in gegeven. Voor en na de cursus moeten de studenten gedurende een onderwijsperiode een logboek bijhouden over hun studiegedrag. De cursuscoördinator vraagt zich af of er een verandering in het aantal studieuren is na deelname aan de cursus.
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: Het gemiddeld aantal uren studeren per onderwijsperiode verandert niet na de cursus, µT0 = µT1
HA: Het gemiddeld aantal uren studeren per onderwijsperiode verandert na de cursus, µT0 ≠ µT1
Om een valide resultaat te bereiken moet er, voordat de toets kan worden uitgevoerd, aan een aantal voorwaarden voldaan worden.
De gepaarde t-toets gaat ervan uit dat de verschillen tussen de gepaarde observaties (verschilscores) normaal verdeeld zijn. Ga er bij een aantal deelnemers2 n groter dan 100 vanuit dat de gepaarde t-toets robuust genoeg is om uit te voeren zonder dat er voldaan is aan de assumptie van normaliteit.
Controleer de assumptie van normaliteit met de volgende stappen:
1. Controleer de verschilscores visueel met een histogram, een Q-Q plot en een boxplot.
2. Toets of de verschilscores normaal verdeeld is met de Kolmogorov-Smirnov test of bij een kleinere steekproef (n < 50) met de Shapiro-Wilk test.3, 4
De eerste stap heeft als doel een goede indruk te krijgen van de verdeling van de steekproef. In de tweede stap wordt de assumptie van normaliteit getoetst. De statistische toets laat zien of de verdeling van de steekproef voldoet aan de assumptie van normaliteit.
Als blijkt dat de verschilscores niet normaal verdeeld is, transformeer dan de afhankelijke variabele eventueel en bepaal daarna of de verschilscores wel normaal verdeeld is 5 of gebruik de Wilcoxon signed rank toets.6, 7
Er is een dataset ingeladen met het gemiddeld aantal uren studeren voor (T0) en na (T1) de cursus. De gemiddeldes per onderwijsperiode zijn afgerond op 1 decimaal in de dataset Studielogboek.
Gebruik head() en tail() om de structuur van de data te bekijken.
## Eerste 6 observaties
head(Studielogboek)
## Studentnummer Uren_studeren Meetmoment
## 1 302282 18.6 T0
## 2 322224 14.4 T0
## 3 352914 18.6 T0
## 4 346243 19.0 T0
## 5 304732 18.2 T0
## 6 327686 11.5 T0
## Laatste 6 observaties
tail(Studielogboek)
## Studentnummer Uren_studeren Meetmoment
## 263 384548 9.5 T1
## 264 391173 17.4 T1
## 265 392386 16.0 T1
## 266 302040 21.5 T1
## 267 330079 21.1 T1
## 268 340162 13.3 T1
Selecteer beide groepen, sla deze op in een vector en bereken het verschil in de afhankelijke variabelen (het aantal studieuren) voor alle deelnemers (de studenten).
Uren_studeren_T0 <- Studielogboek[Studielogboek$Meetmoment == "T0", 2]
Uren_studeren_T1 <- Studielogboek[Studielogboek$Meetmoment == "T1", 2]
Uren_studeren_verschil <- Uren_studeren_T1 - Uren_studeren_T0
Inspecteer de data met length(), mean()en sd() om meer inzicht te krijgen in de data.
## aantallen, gemiddelde en standaarddeviatie voor cursus
length(Uren_studeren_T0)
## [1] 134
mean(Uren_studeren_T0)
## [1] 13.64328
sd(Uren_studeren_T0)
## [1] 3.609187
## aantallen, gemiddelde en standaarddeviatie na cursus
length(Uren_studeren_T1)
## [1] 134
mean(Uren_studeren_T1)
## [1] 17.1903
sd(Uren_studeren_T1)
## [1] 4.807292
Geef de verdeling van de verschilscores van het aantal uur studeren voor en na het volgen van de cursus visueel weer met een histogram, Q-Q plot en boxplot.
Focus bij het analyseren van een histogram8 op de symmetrie van de verdeling, de hoeveelheid toppen (modaliteit) en mogelijke uitbijters. Een normale verdeling is symmetrisch, heeft één top en geen uitbijters.9, 10
## Histogram met ggplot2
library(ggplot2)
# Zet de variable om in een dataframe zodat het met ggplot gevisualiseerd kan worden
Uren_studeren_verschil_dataframe <- as.data.frame(Uren_studeren_verschil)
ggplot(Uren_studeren_verschil_dataframe,
aes(x = Uren_studeren_verschil)) +
geom_histogram(aes(y = ..density..),
binwidth = 1,
color = "grey30",
fill = "#0089CF") +
geom_density(alpha = .2, adjust = 1) +
xlab("Verschilscores uren studeren") +
ylab("Frequentiedichtheid") +
scale_x_continuous(
labels = as.character(seq(-12, 16, 4)),
breaks = seq(-12, 16, 4)) +
labs(title = "Verschilscores uren studeren voor en na cursus")
De histogram lijkt niet geheel symmetrisch, maar heeft één top en geen outliers. Er lijken geen grote afwijkingen van de normaalverdeling te zijn.
Gebruik qqnorm() en qqline() met pch = 1om een Q-Q plot te maken, met als datapunten kleine cirkels.
Als over het algemeen de meeste datapunten op de lijn liggen, kan aangenomen worden dat de data bij benadering normaal verdeeld is.
qqnorm(Uren_studeren_verschil,
pch = 1,
main = "Normaal Q-Q plot verschilscores uren studeren voor en na cursus",
ylab = "kwantielen in data",
xlab = "Theoretische kwantielen")
qqline(Uren_studeren_verschil)
In deze casus liggen de meeste datapunten op of vlakbij de lijn. Hoewel er bij de uiteinden van de verdeling wat afwijkingen zijn, duidt deze grafiek op een goede benadering van de normaalverdeling.
De doos van de boxplot geeft de middelste 50% van de verschilscores in studieuren uit het studielogboek weer. De zwarte lijn binnen de box is de mediaan. In de staarten of snorreharen zitten de eerste 25% en de laatste 25%. Cirkels visualiseren mogelijke uitbijters.11, 12
## Boxplot
boxplot(Uren_studeren_verschil,
main = "Boxplot van verschilscore uren studeren voor en na cursus")
De boxplotten geven de spreiding weer in de verschilscores van het aantal uur studeren voor en na het volgen van de cursus voor deelnemers aan de cursus. De boxplot is niet helemaal symmetrisch, maar beide snorreharen zijn ongeveer even lang en de mediaan ligt ongeveer in het midden. Daarom zijn de verschilscores bij benadering normaal verdeeld.
Op basis van de grafieken lijken er geen grote afwijkingen van de normaalverdeling voor de verschillen in studieuren te zijn, maar normaliteit kan ook getoetst worden met statistische toetsen.
Om te controleren of de verschilscores normaal verdeeld zijn, kan de normaliteit getoetst worden. Twee veelgebruikte toetsen zijn: de Kolmogorov-Smirnov test en de Shapiro-Wilk test.
De Kolmogorov-Smirnov test toetst het verschil tussen twee verdelingen. Standaard toetst deze test het verschil tussen een normale verdeling en de verdeling van de steekproef. De Lilliefors correctie is vereist als het gemiddelde en de standaardafwijking niet van tevoren bekend of bepaald zijn, wat meestal het geval is bij een steekproef. Als de p-waarde kleiner dan 0,05 is, is de verdeling van de steekproef significant verschillend van de normale verdeling.
library(nortest)
lillie.test(Uren_studeren_verschil)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: Uren_studeren_verschil
## D = 0.053068, p-value = 0.4696
De test heeft een p-waarde van 0,47, dus er is geen significant verschil gevonden tussen de verdeling van de steekproef en de normale verdeling. De gepaarde t-toets kan uitgevoerd worden.
De Shapiro-Wilk test is een soortgelijke test als de Kolmogorov-Smirnov test en vooral geschikt bij kleine steekproeven (n < 50). Als de p-waarde kleiner dan 0,05 is, is de verdeling van de steekproef significant verschillend van de normale verdeling.
Er is een subset van de verschillen tussen het aantal studieuren op T0 en T1 ingeladen, Uren_studeren_verschil_n30, met daarin 30 observaties. Voor een relatief kleine steekproef als deze is de Shapiro-Wilk Test geschikt.
shapiro.test(Uren_studeren_verschil_n30)
##
## Shapiro-Wilk normality test
##
## data: Uren_studeren_verschil_n30
## W = 0.96903, p-value = 0.5129
Voor deze subset is de p-waarde 0,51, dus er is geen significant verschil gevonden tussen de verdeling van de steekproef en de normale verdeling. De gepaarde t-toets kan uitgevoerd worden.
Gebruik de functie t.test() met het argument paired = TRUE om een gepaarde t-toets uit te voeren. Gebruik hier weer het hele dataframe Studielogboek. Het eerste argument bestaat uit de afhankelijke variabele Uren_studeren en de groepvariabele Meetmoment. Het argument alternative = two.sided" geeft aan dat er tweezijdig getoetst wordt.
t.test(Uren_studeren ~ Meetmoment, Studielogboek,
paired = TRUE,
alternative = "two.sided")
##
## Paired t-test
##
## data: Uren_studeren by Meetmoment
## t = -14.502, df = 133, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -4.030792 -3.063238
## sample estimates:
## mean of the differences
## -3.547015
De p-waarde geeft aan of het verschil tussen twee groepen significant is. De grootte van het verschil of effect is echter ook relevant. Een effectmaat is een gestandaardiseerde maat die de grootte van een effect weergeeft, zodat effecten van verschillende onderzoeken met elkaar vergeleken kunnen worden.14 Een veel gebruikte effectmaat is Cohen’s d. Cohen’s d geeft een gestandaardiseerd verschil weer: het verschil in gemiddelden tussen twee groepen gecorrigeerd voor de standaardafwijking van de eerste meting (T0). Een indicatie om d te interpreteren is: rond 0,3 is een klein effect, rond 0,5 is een gemiddeld effect en rond 0,8 is een groot effect.15
Gebruik de functie cohensD() van het package lsr om de effectmaat te berekenen. Het eerste argument bestaat uit de afhankelijke variabele Uren_studeren en de groepvariabele Meetmoment en het tweede argument is de dataset Studielogboek. Gebruik het argument method = x.sd om de effectmaat te berekenen op basis van de standaardafwijking van de observaties voor de cursus (T0).
library(lsr)
cohensD(Uren_studeren ~ Meetmoment, Studielogboek, method = "x.sd")
## [1] 0.9827739
d = 0.9827739. De sterkte van het effect van de tutor op het cijfer is groot.
Een gepaarde t-toets is uitgevoerd om te toetsen of het gemiddeld aantal uur studeren van de studenten is veranderd na deelname aan de cursus Plannen. Het verschil tussen het gemiddelde van T0 (MT0 = 13,64, SDT0 = 3,61) en het gemiddelde van T1 (MT1 =17,19, SDT1 = 4,81) is significant, t 133 = -14,5, p < 0,0001. Gemiddeld studeren de studenten 3,55 uur meer na deelname aan de cursus, dit is een groot effect. Het 95%-betrouwbaarheidsinterval voor het verschil tussen het gemiddelde van beide groepen (T1 - T0) loopt van 4,03 tot 3,06. Aan de hand van de resultaten kan geconcludeerd worden dat de studenten, na deelname aan de cursus Plannen, meer tijd besteden aan hun studie dan daarvoor.
| Meting | N | M | SD |
|---|---|---|---|
| T0 | 134 | 13,64 | 3,61 |
| T1 | 134 | 17,19 | 4,81 |
Tabel 1. Groepsgrootte, gemiddeld tentamencijfer en standaarddeviatie van het aantal uren door studenten besteed aan hun studie per meetmoment
Met een deelnemer wordt het object bedoeld dat geobserveerd wordt, bijvoorbeeld een student, een inwoner van Nederland, een opleiding of een organisatie. Met een observatie wordt de waarde bedoeld die de deelnemer heeft voor een bepaalde variabele. Een deelnemer heeft dus meestal een observatie voor meerdere variabelen.↩
Van Geloven, N. (25 september2013). Wilcoxon signed rank toets. Wiki Statistiek Academisch Medisch Centrum.↩
Laerd statistics (2018). Testing for Normality using SPSS Statistics. Testing for Normality using SPSS Statistics.↩
Er zijn verschillende opties om variabelen te transformeren, zoals de logaritme, wortel of inverse (1 gedeeld door de variabele) nemen van de variabele. Zie Discovering statistics using IBM SPSS statistics van Field (2013) pagina 201-210 voor meer informatie over welke transformaties wanneer gebruikt kunnen worden.↩
Universiteit van Amsterdam (14 juli 2014). Normaliteit. UvA Wiki Methodologiewinkel.↩
De Wilcoxon signed rank toets maakt een rangschikking van de data. Hierdoor is de test verdelingsvrij en is normaliteit geen assumptie. Ook zijn uitbijters minder van invloed op het eindresultaat. Toch wordt er voor deze test minder vaak gekozen, doordat bij het maken van een rankschikking de data informatie verliest. Als de data wel normaal verdeeld is, heeft de Wilcoxon signed rank toets minder onderscheidend vermogen dan wanneer de gepaarde t-toets uitgevoerd zou worden.↩
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.↩
Outliers (13 augustus 2016). UvA Wiki Methodologiewinkel.↩
Uitbijters kunnen bepalend zijn voor de uitkomst van toetsen. Bekijk of de uitbijters valide uitbijters zijn en niet een meetfout of op een andere manier incorrect verkregen data. Het weghalen van uitbijters kan de uitkomst ook vertekenen, daarom is het belangrijk om verwijderde uitbijters te melden in een rapport.↩
Outliers (13 augustus 2016). UvA Wiki Methodologiewinkel.↩
Uitbijters kunnen bepalend zijn voor de uitkomst van toetsen. Bekijk of de uitbijters valide uitbijters zijn en niet een meetfout of op een andere manier incorrect verkregen data. Het weghalen van uitbijters kan de uitkomst ook vertekenen, daarom is het belangrijk om verwijderde uitbijters te melden in een rapport.↩
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.↩
Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. London: Sage publications.↩
Marshall, E., & Boggis, E. (2016). The statistics tutor’s quick guide to commonly used statistical tests. http://www.statstutor.ac.uk/resources/uploaded/tutorsquickguidetostatistics.pdf↩