Hoe voer je een paired samples t-test uit in r
Een paired samples t-test is een statistische test die de gemiddelden van twee monsters vergelijkt wanneer elke waarneming uit het ene monster kan worden gematcht met een waarneming uit het andere monster.
Laten we bijvoorbeeld zeggen dat we willen weten of een bepaald studieprogramma een significante invloed heeft op de prestaties van studenten op een bepaald examen. Om dit te testen, vragen we 20 leerlingen in een klas een voortoets te maken. Vervolgens neemt elke student twee weken lang elke dag deel aan het studieprogramma. Vervolgens maken de leerlingen opnieuw een toets met dezelfde moeilijkheidsgraad.
Om het verschil tussen de gemiddelde scores op de eerste en tweede toets te vergelijken, gebruiken we een gepaarde t-toets, omdat voor elke leerling de score op de eerste toets kan worden gekoppeld aan de score op de tweede toets.
Hoe u een gepaarde t-test uitvoert
Om een gepaarde t-test uit te voeren, kunnen we de volgende aanpak gebruiken:
Stap 1: Formuleer de nul- en alternatieve hypothesen.
H 0 : μd = 0
H a : μ d ≠ 0 (tweezijdig)
H a : μ d > 0 (eenzijdig)
H a : μ d < 0 (eenzijdig)
waarbij μd het gemiddelde verschil is.
Stap 2: Zoek de teststatistiek en de bijbehorende p-waarde.
Stel dat a = de score van de student op de eerste toets en b = de score van de student op de tweede toets. Om de nulhypothese te testen dat het werkelijke gemiddelde verschil tussen testscores nul is:
- Bereken het verschil tussen elk paar scores (d i = b i – a i )
- Bereken het gemiddelde verschil (d)
- Bereken de standaarddeviatie van verschillen s d
- Bereken de t-statistiek, namelijk T = d / (s d / √n)
- Zoek de overeenkomstige p-waarde voor de t-statistiek met n-1 vrijheidsgraden.
Stap 3: Verwerp de nulhypothese of verwerp deze niet, op basis van het significantieniveau.
Als de p-waarde kleiner is dan het gekozen significantieniveau, verwerpen we de nulhypothese en concluderen we dat er een statistisch significant verschil bestaat tussen de gemiddelden van de twee groepen. Anders zullen we er niet in slagen de nulhypothese te verwerpen.
Een gepaarde t-test uitvoeren in R
Om een gepaarde t-test in R uit te voeren, kunnen we de ingebouwde functie t.test() gebruiken met de volgende syntaxis:
t.test (x, y, gepaard = WAAR, alternatief = “twee kanten”)
- x,y: de twee digitale vectoren die we willen vergelijken
- gepaard: een logische waarde die specificeert dat we een gepaarde t-toets willen berekenen
- alternatief: de alternatieve hypothese. Dit kan worden ingesteld op “dubbelzijdig” (standaard), “boven” of “onder”.
Het volgende voorbeeld illustreert hoe u een gepaarde t-test kunt uitvoeren om te bepalen of er een significant verschil is in de gemiddelde scores tussen een pre-test en een post-test voor 20 studenten.
Maak de gegevens
Eerst zullen we de dataset maken:
#create the dataset data <- data.frame(score = c(85,85, 78, 78, 92, 94, 91, 85, 72, 97, 84, 95, 99, 80, 90, 88, 95, 90, 96, 89, 84, 88, 88, 90, 92, 93, 91, 85, 80, 93, 97, 100, 93, 91, 90, 87, 94, 83, 92, 95), group = c(rep('pre', 20), rep('post', 20))) #view the dataset data #scoregroup #1 85 pre #2 85 pre #3 78 pre #4 78 pre #5 92 pre #6 94 pre #7 91 pre #8 85 pre #9 72 pre #10 97 pre #11 84 pre #12 95 pre #13 99 pre #14 80 pre #15 90 pre #16 88 pre #17 95 pre #18 90 pre #19 96 pre #20 89 pre #21 84 post #22 88 post #23 88 post #24 90 post #25 92 post #26 93 post #27 91 post #28 85 post #29 80 post #30 93 post #31 97 post #32 100 posts #33 93 post #34 91 post #35 90 post #36 87 post #37 94 post #38 83 post #39 92 post #40 95 post
Visualiseer de verschillen
Vervolgens zullen we kijken naar de samenvattende statistieken van de twee groepen met behulp van de functies group_by() en summary () uit de dplyr- bibliotheek:
#load dplyr library
library(dplyr)
#find sample size, mean, and standard deviation for each group
data %>%
group_by (group) %>%
summarize (
count = n(),
mean = mean(score),
sd = sd(score)
)
# A tibble: 2 x 4
# group count mean sd
#
#1 post 20 90.3 4.88
#2 pre 20 88.2 7.24
We kunnen ook boxplots maken met behulp van de boxplot() functie in R om de verdeling van scores voor de pre- en post-groepen weer te geven:
boxplot (score~group,
data=data,
main="Test Scores by Group",
xlab="Group",
ylab="Score",
col="steelblue",
border="black"
)
Uit de samenvattende statistieken en boxplots kunnen we zien dat de gemiddelde score in de postgroep iets hoger is dan de gemiddelde score in de pregroep . We kunnen ook zien dat de postgroepscores minder variabel zijn dan de pregroepscores .
Om erachter te komen of het verschil tussen de gemiddelden van deze twee groepen statistisch significant is, kunnen we een gepaarde t-test uitvoeren.
Voer een gepaarde t-test uit
Voordat we de gepaarde t-toets uitvoeren, moeten we verifiëren dat de verdeling van de verschillen normaal (of bij benadering normaal) verdeeld is. Om dit te doen, kunnen we een nieuwe vector maken die wordt gedefinieerd als het verschil tussen de pre- en postscores, en een Shapiro-Wilk-test uitvoeren voor normaliteit op deze vector van waarden:
#define new vector for difference between post and pre scores differences <- with(data, score[group == "post"] - score[group == "pre"]) #perform shapiro-wilk test for normality on this vector of values shapiro.test(differences) # Shapiro-Wilk normality test # #data: differences #W = 0.92307, p-value = 0.1135 #
De p-waarde van de test is 0,1135, wat groter is dan alpha = 0,05. We slagen er dus niet in de nulhypothese te verwerpen dat onze gegevens normaal verdeeld zijn. Dit betekent dat we nu verder kunnen gaan met de gepaarde t-test.
We kunnen de volgende code gebruiken om een gepaarde t-test uit te voeren:
t.test (score~group, data = data, paired = TRUE)
# Paired t-test
#
#data: score by group
#t = 1.588, df = 19, p-value = 0.1288
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -0.6837307 4.9837307
#sample estimates:
#mean of the differences
#2.15
Uit het resultaat kunnen we zien dat:
- De t- teststatistiek is 1,588 .
- De p-waarde voor deze teststatistiek met 19 vrijheidsgraden (df) is 0,1288 .
- Het 95% betrouwbaarheidsinterval voor het gemiddelde verschil is (-0,6837; 4,9837) .
- Het gemiddelde verschil tussen de scores van de pre- en postgroep bedraagt 2,15 .
Omdat onze p-waarde dus onder ons significantieniveau van 0,05 ligt, zullen we er niet in slagen de nulhypothese te verwerpen dat de twee groepen statistisch significante gemiddelden hebben.
Met andere woorden: we hebben niet voldoende bewijs om te zeggen dat de gemiddelde scores tussen de pre- en post-groepen statistisch verschillend zijn. Dit betekent dat het curriculum geen significant effect had op de toetsscores.
Bovendien geeft ons betrouwbaarheidsinterval van 95% aan dat we „95% zeker“ zijn dat het werkelijke gemiddelde verschil tussen de twee groepen tussen -0,6837 en 4,9837 ligt.
Omdat de waarde nul binnen dit betrouwbaarheidsinterval valt, betekent dit dat nul feitelijk het werkelijke verschil tussen de gemiddelde scores zou kunnen zijn. Daarom hebben we de nulhypothese in dit geval niet kunnen verwerpen.