Een bonferroni-correctie uitvoeren in r
Een eenrichtings-ANOVA wordt gebruikt om te bepalen of er al dan niet een statistisch significant verschil bestaat tussen de gemiddelden van drie of meer onafhankelijke groepen.
Als de totale p-waarde van de ANOVA-tabel onder een bepaald significantieniveau ligt, hebben we voldoende bewijs om te zeggen dat ten minste één van de groepsgemiddelden verschilt van de andere.
Dit vertelt ons echter niet welke groepen van elkaar verschillen. Dit vertelt ons eenvoudigweg dat niet alle groepsgemiddelden gelijk zijn.
Om precies te weten welke groepen van elkaar verschillen, moeten we paarsgewijze t-tests uitvoeren tussen elke groep, terwijl we controleren voor het familiefoutenpercentage .
Een van de meest gebruikelijke manieren om dit te bereiken is door de Bonferroni-correctie te gebruiken bij het berekenen van p-waarden voor elk van de paarsgewijze t-toetsen.
In deze tutorial wordt uitgelegd hoe u de Bonferroni-correctie uitvoert in R.
Voorbeeld: Bonferroni-correctie in R
Stel dat een docent wil weten of drie verschillende studietechnieken al dan niet tot verschillende toetsscores bij studenten leiden.
Om dit te testen wijst ze willekeurig 10 studenten toe om elke studietechniek te gebruiken. Na een week gebruik te hebben gemaakt van de toegewezen studietechniek, legt elke student hetzelfde examen af.
We kunnen de volgende stappen in R gebruiken om een eenrichtings-ANOVA toe te passen en de Bonferroni-correctie gebruiken om de paarsgewijze verschillen tussen de examenresultaten van elke groep te berekenen.
Stap 1: Maak de gegevensset.
De volgende code laat zien hoe u een dataset maakt met de examenresultaten van alle 30 studenten:
#create data frame data <- data.frame(technique = rep (c("tech1", "tech2", "tech3"), each = 10 ), score = c(76, 77, 77, 81, 82, 82, 83, 84, 85, 89, 81, 82, 83, 83, 83, 84, 87, 90, 92, 93, 77, 78, 79, 88, 89, 90, 91, 95, 95, 98)) #view first six rows of data frame head(data) technical score 1 tech1 76 2 tech1 77 3 tech1 77 4 tech1 81 5 tech1 82 6 tech1 82
Stap 2: Bekijk de examenresultaten voor elke groep.
De volgende code laat zien hoe u boxplots kunt maken om de verdeling van de examenresultaten voor elke groep te visualiseren:
boxplot(score ~ technique, data = data, main = "Exam Scores by Studying Technique", xlab = "Studying Technique", ylab = "Exam Scores", col = "steelblue", border = "black")
Stap 3: Voer een eenrichtings-ANOVA uit.
De volgende code laat zien hoe u een eenrichtings-ANOVA uitvoert om te testen op verschillen tussen de gemiddelde examenscores in elke groep:
#fit the one-way ANOVA model model <- aov(score ~ technique, data = data) #view model output summary(model) Df Sum Sq Mean Sq F value Pr(>F) technical 2 211.5 105.73 3.415 0.0476 * Residuals 27 836.0 30.96 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Aangezien de totale p-waarde ( 0,0476 ) kleiner is dan 0,05, geeft dit aan dat niet elke groep dezelfde gemiddelde examenscore heeft.
Vervolgens zullen we paarsgewijze t-tests uitvoeren met behulp van de Bonferroni-correctie voor p-waarden om paarsgewijze verschillen tussen de examenresultaten van elke groep te berekenen.
Stap 4: Voer paarsgewijze t-tests uit.
Om paarsgewijze t-tests uit te voeren met Bonferroni-correctie in R, kunnen we de functie pairwise.t.test() gebruiken, die de volgende syntaxis gebruikt:
pairwise.t.test(x, g, p.adjust.method=”bonferroni”)
Goud:
- x: een numerieke vector van responswaarden
- g: Een vector die de namen van groepen specificeert (bijvoorbeeld studietechniek)
De volgende code laat zien hoe u deze functie voor ons voorbeeld kunt gebruiken:
#perform pairwise t-tests with Bonferroni's correction pairwise.t.test(data$score, data$technique, p.adjust.method=" bonferroni ") Pairwise comparisons using t tests with pooled SD data: data$score and data$technique tech1 tech2 tech2 0.309 - tech3 0.048 1.000 P value adjustment method: bonferroni
De manier om het resultaat te interpreteren is als volgt:
- De aangepaste p-waarde voor het gemiddelde verschil in examenscores tussen Techniek 1 en Techniek 2 is 0,309 .
- De aangepaste p-waarde voor het gemiddelde verschil in examenscores tussen Techniek 1 en Techniek 3 is 0,048 .
- De aangepaste p-waarde voor het gemiddelde verschil in examenscores tussen Techniek 2 en Techniek 3 is 1000 .
Op basis van de resultaten kunnen we zien dat het enige significante verschil tussen techniek 1 en techniek 3 ligt.
Aanvullende bronnen
Een inleiding tot One-Way ANOVA
Eenrichtings-ANOVA uitvoeren in R
Hoe de Tukey-test uit te voeren in R
Hoe de Dunnett-test uit te voeren in R