Hoe de dunn-test uit te voeren in r
Een Kruskal-Wallis-test wordt gebruikt om te bepalen of er al dan niet een statistisch significant verschil bestaat tussen de medianen van drie of meer onafhankelijke groepen. Het wordt beschouwd als het niet-parametrische equivalent van eenrichtings-ANOVA .
Als de resultaten van een Kruskal-Wallis-test statistisch significant zijn, is het passend om de Dunn-test uit te voeren om precies te bepalen welke groepen verschillend zijn.
In deze tutorial wordt uitgelegd hoe u de Dunn-test uitvoert in R.
Voorbeeld: Dunn-test in R
Een onderzoeker wil weten of drie medicijnen verschillende effecten hebben op rugpijn. Daarom recruteert hij 30 mensen die allemaal aan soortgelijke rugpijn lijden en verdeelt ze willekeurig in drie groepen die medicijn A, medicijn B of medicijn C krijgen. Een maand na inname van het medicijn vraagt de onderzoeker elk individu om hun rugpijn te beoordelen. een schaal van 1 tot 100, waarbij 100 de meest ernstige pijn aangeeft.
De onderzoeker voert een Kruskal-Wallis-test uit met een significantieniveau van 0,05 om te bepalen of er een statistisch significant verschil bestaat tussen de gemiddelde rugpijnbeoordelingen in deze drie groepen.
De volgende code laat zien hoe u het dataframe in R maakt en een Kruskal-Wallis-test uitvoert:
#make this example reproducible
set.seed(0)
#create data frame
data <- data.frame(drug = rep(c("A", "B", "C"), each = 10),
bread = c(runif(10, 40, 60),
runif(10, 45, 65),
runif(10, 55, 70)))
#view first six rows of data frame
head(data)
# drug pain
#1 A 57.93394
#2 A 45.31017
#3 A 47.44248
#4 A 51.45707
#5 A 58.16416
#6 A 44.03364
#perform Kruskal-Wallis Test
kruskal.test(pain ~ drug, data = data)
Kruskal-Wallis rank sum test
data: pain by drug
Kruskal-Wallis chi-squared = 11.105, df = 2, p-value = 0.003879
Aangezien de totale p-waarde ( 0,003879 ) kleiner is dan 0,05, betekent dit dat er een statistisch significant verschil is in de gerapporteerde pijnniveaus tussen de drie medicijnen. We kunnen dus de Dunn-test uitvoeren om precies te bepalen welke medicijnen verschillend zijn.
De volgende code laat zien hoe u de Dunn-test in R uitvoert met behulp van de dunnTest()- functie uit de FSA()- bibliotheek:
#loadlibrary
library(FSA)
#perform Dunn's Test with Bonferroni correction for p-values
dunnTest(pain ~ drug,
data=data,
method=" bonferroni ")
Dunn (1964) Kruskal-Wallis multiple comparison
p-values adjusted with the Bonferroni method.
Comparison Z P.unadj P.adj
1 A - B -0.8890009 0.374002602 1.000000000
2 A - C -3.2258032 0.001256197 0.003768591
3 B - C -2.3368023 0.019449464 0.058348393
Merk op dat we ervoor hebben gekozen om een Bonferroni-correctie te gebruiken voor de p-waarden van meerdere vergelijkingen, maar andere mogelijke opties zijn onder meer:
- “sidak” (Sidak-aanpassing)
- “holm” (holm-aanpassing)
- “hs” (Holm-Sidak-aanpassing)
- “bs” (Bonferroni-Sidak-aanpassing)
- “door” (Benjamin-Yekuteili-aanpassing)
- “bh” ( Benjanini-Hochberg-procedure )
Bij α = 0,05 zijn geneesmiddelen A en C de enige twee geneesmiddelen die statistisch significant van elkaar verschillen (gecorrigeerde p-waarde = 0,003768 ).