Frage
Die Testergebnisse von drei Personengruppen werden als separate Vektoren in R gespeichert.
set.seed(1)
group1 <- rnorm(100, mean = 75, sd = 10)
group2 <- rnorm(100, mean = 85, sd = 10)
group3 <- rnorm(100, mean = 95, sd = 10)
Ich möchte wissen, ob es einen signifikanten Unterschied in den Medianwerten zwischen diesen Gruppen gibt. Ich weiß, dass ich mit dem Wilcoxon-Test Gruppe 1 gegen Gruppe 2 testen kann.
wilcox.test(group1, group2)
Dabei werden jedoch nur zwei Gruppen gleichzeitig verglichen, und ich möchte alle drei gleichzeitig vergleichen. Ich hätte gerne einen statistischen Test, der einen p-Wert bei einem Signifikanzniveau von 0,05 ergibt. Könnte jemand bitte helfen?
Edit # 1 - Mood's Median Test
Nach der von Benutzer Hibernating vorgeschlagenen Antwort habe ich den Mood-Median-Test durchgeführt.
median.test <- function(x, y){
z <- c(x, y)
g <- rep(1:2, c(length(x), length(y)))
m <- median(z)
fisher.test(z < m, g)$p.value
}
median.test(group1, group2)
Mit diesem Ansatz kann ich jedoch auf einen signifikanten Unterschied zwischen den Medianwerten von jeweils nur zwei Gruppen testen. Ich bin mir nicht sicher, wie ich damit die Mediane aller drei gleichzeitig vergleichen soll.
Edit # 2 - Kruskal-Wallis-Test
Die von Benutzer dmartin vorgeschlagene Antwort scheint mehr oder weniger das zu sein, was ich brauche, und ermöglicht es mir, alle drei Gruppen gleichzeitig zu testen.
kruskal.test(list(group1, group2, group3))
Bearbeiten Sie # 3
Der Benutzer Greg Snow merkt in seiner Antwort hilfreich an, dass der Kruskal-Wallis-Test angemessen ist, solange strenge Annahmen getroffen werden, die ihn auch zu einem Mittelwerttest machen.
quelle
median test
. Meine eigenen Antworten / Kommentare sind hier .Antworten:
Der Kruskal-Wallis-Test kann ebenfalls verwendet werden, da es sich um eine nicht parametrische ANOVA handelt. Darüber hinaus wird es oft als leistungsstärker angesehen als der Mood-Median-Test . Es kann in R implementiert werden, indem die Funktion kruskal.test im Statistikpaket in R verwendet wird.
Um auf Ihre Bearbeitung zu reagieren, ähnelt das Interpretieren von KW einer Einweg-ANOVA. Ein signifikanter p-Wert entspricht der abgelehnten Null, dass alle drei Mittelwerte gleich sind. Sie müssen einen Folgetest verwenden (wie bei einer ANOVA), um Fragen zu bestimmten Gruppen zu beantworten. Dies ergibt sich normalerweise aus spezifischen Forschungsfragen, die Sie möglicherweise haben. Wenn Sie nur die Parameter der Simulation betrachten, sollten sich alle drei Gruppen erheblich voneinander unterscheiden, wenn Sie einen Folgetest durchführen (da alle 1 SD mit N = 100 auseinanderliegen).
quelle
Erstens ist der Wilcoxon-Test (oder der Mann-Whitney-Test) kein Median-Test (es sei denn, Sie treffen sehr strenge Annahmen, die ihn auch zu einem Mittelwerttest machen). Beim Vergleich von mehr als zwei Gruppen kann der Wilcoxon-Test zu paradoxen Ergebnissen führen (siehe Efrons Würfel ).
Da der Wilcoxon-Test nur ein Sonderfall eines Permutationstests ist und Sie sich speziell für die Mediane interessieren, würde ich einen Permutationstest für die Mediane vorschlagen .
Wählen Sie zunächst ein Maß für die Differenz, etwa den größten der 3 Mediane minus den kleinsten der 3 (oder die Varianz der 3 Mediane oder die MAD usw.).
Berechnen Sie nun Ihre Statistik für die Originaldaten.
bündeln Sie alle Daten in einem Satz und unterteilen Sie die Werte nach dem Zufallsprinzip in 3 Gruppen
Dieselbe Größe wie das Original und dieselbe Statistik berechnen.
mehrmals wiederholen (wie 9998)
Vergleichen Sie, wie die Statistik aus den realen Daten mit der Verteilung aller Statistiken für Ihren Test verglichen wird.
quelle
t.test
undaov
würde wahrscheinlich gut als gut.Wilcoxon sum-rank test
würde es Ihnen nichts ausmachen, "Wilcox" in diesen Namen umzuwandeln?wilcox.test
). Könnten Sie bearbeiten?Der Mood-Median-Test ist ein nichtparametrischer Test, mit dem die Gleichheit von Medianen aus zwei oder mehr Populationen getestet wird. Siehe hier für den R-Teil Ihrer Frage. Siehe auch eine verwandte Frage hier . Auch von hier aus :
Bearbeiten: Für drei Gruppen können Sie diese einfache Verallgemeinerung des R-Codes in Betracht ziehen, mit dem ich verknüpft bin:
quelle
mood.medtest
im RVAideMemoire-Paket, die der übliche Test zu sein scheinen, mit der Ausnahme, dass standardmäßig der Fisher-Test für kleinere Stichprobengrößen verwendet wird. Diemedian_test
Funktion in der Münzpackung kann einen asymptotischen Test liefern oder Monte Carlo verwenden.Ich weiß, dass dies viel zu spät ist, aber ich konnte auch kein gutes Paket für Moods Median-Test finden, also habe ich es auf mich genommen, eine Funktion in R zu erstellen, die den Trick zu tun scheint.
Für die Frage des OP würden Sie dies zuerst ausführen, um einen neuen Datenrahmen zu erstellen, der die Werte Ihrer drei Gruppenvektoren mit einer übereinstimmenden "Gruppen" -Variablen enthält.
und führen Sie die Funktion für den Mood-Median-Test mit aus
moods.median(df$value, df$group)
quelle