Come eseguire il test di dunn in r
Un test di Kruskal-Wallis viene utilizzato per determinare se esiste o meno una differenza statisticamente significativa tra le mediane di tre o più gruppi indipendenti. È considerato l’equivalente non parametrico dell’ANOVA unidirezionale .
Se i risultati di un test di Kruskal-Wallis sono statisticamente significativi, allora è opportuno eseguire il test di Dunn per determinare esattamente quali gruppi sono diversi.
Questo tutorial spiega come eseguire il test di Dunn in R.
Esempio: test di Dunn in R
Un ricercatore vuole sapere se tre farmaci hanno effetti diversi sul mal di schiena. Quindi recluta 30 persone che soffrono tutte di mal di schiena simile e le divide casualmente in tre gruppi per ricevere il farmaco A, il farmaco B o il farmaco C. Un mese dopo aver assunto il farmaco, il ricercatore chiede a ciascun individuo di valutare il proprio mal di schiena in base a una scala da 1 a 100, dove 100 indica il dolore più grave.
Il ricercatore esegue un test Kruskal-Wallis utilizzando un livello di significatività di 0,05 per determinare se esiste una differenza statisticamente significativa tra le valutazioni mediane del mal di schiena in questi tre gruppi.
Il codice seguente mostra come creare il frame di dati in R ed eseguire un test Kruskal-Wallis:
#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
Poiché il valore p complessivo ( 0,003879 ) è inferiore a 0,05, ciò significa che esiste una differenza statisticamente significativa nei livelli di dolore riportati tra i tre farmaci. Quindi possiamo eseguire il test di Dunn per determinare esattamente quali farmaci sono diversi.
Il codice seguente mostra come eseguire il test Dunn in R utilizzando la funzione dunnTest() dalla libreria FSA() :
#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
Si noti che abbiamo scelto di utilizzare una correzione Bonferroni per i valori p di confronti multipli, ma altre opzioni possibili includono:
- “sidak” (aggiustamento Sidak)
- “holm” (regolazione dell’holm)
- “hs” (aggiustamento Holm-Sidak)
- “bs” (aggiustamento Bonferroni-Sidak)
- “da” (aggiustamento Benjamin-Ekuteili)
- “bh” ( procedura Benjamini-Hochberg )
Con α = 0,05, i farmaci A e C sono gli unici due farmaci che differiscono in modo statisticamente significativo l’uno dall’altro (valore p aggiustato = 0,003768 ).