Question
Les résultats des tests de trois groupes de personnes sont enregistrés en tant que vecteurs distincts dans R.
set.seed(1)
group1 <- rnorm(100, mean = 75, sd = 10)
group2 <- rnorm(100, mean = 85, sd = 10)
group3 <- rnorm(100, mean = 95, sd = 10)
Je veux savoir s'il y a une différence significative dans les médianes entre ces groupes. Je sais que je pourrais tester le groupe 1 contre le groupe 2 en utilisant le test de Wilcoxon, comme ça.
wilcox.test(group1, group2)
Cependant, cela ne compare que deux groupes à la fois, et je voudrais comparer les trois simultanément. Je voudrais un test statistique qui donne une valeur ap au niveau de signification 0,05. Quelqu'un pourrait-il m'aider?
Edit # 1 - Test médian de Mood
Après la réponse suggérée de l'utilisateur Hibernating, j'ai essayé le test médian de Mood.
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)
Cependant, cette approche me permet de tester une différence significative entre les médianes de seulement deux groupes à la fois. Je ne sais pas comment l'utiliser pour comparer les médianes des trois simultanément.
Edit # 2 - Test de Kruskal-Wallis
La réponse suggérée par l'utilisateur dmartin semble être plus ou moins ce dont j'ai besoin et me permet de tester les trois groupes simultanément.
kruskal.test(list(group1, group2, group3))
Éditer # 3
L'utilisateur Greg Snow note utilement dans sa réponse que le test de Kruskal-Wallis est approprié tant qu'il fait des hypothèses strictes qui en font également un test de moyens.
la source
median test
. Ma propre réponse / commentaires est ici .Réponses:
Le test de Kruskal-Wallis pourrait également être utilisé, car il s'agit d'une ANOVA non paramétrique. De plus, il est souvent considéré comme plus puissant que le test médian de Mood . Il peut être implémenté dans R en utilisant la fonction kruskal.test dans le package de statistiques dans R.
Pour répondre à votre modification, l'interprétation de KW est similaire à une ANOVA unidirectionnelle. Une valeur de p significative correspond au rejet de la valeur nulle que les trois moyennes sont égales. Vous devez utiliser un test de suivi (à nouveau, tout comme une ANOVA), pour répondre aux questions sur des groupes spécifiques. Cela suit généralement les questions de recherche spécifiques que vous pourriez avoir. En regardant simplement les paramètres de la simulation, les trois groupes devraient être significativement différents les uns des autres si vous effectuez un test de suivi (car ils sont tous à 1 écart de SD avec N = 100).
la source
Premièrement, le test de Wilcoxon (ou test de Mann-Whitney) n'est pas un test des médianes (sauf si vous faites des hypothèses très strictes qui en font également un test des moyens). Et pour comparer plus de 2 groupes, le test de Wilcoxon peut conduire à des résultats paradoxaux (voir Efron's Dice ).
Étant donné que le test de Wilcoxon n'est qu'un cas particulier d'un test de permutation et que vous êtes spécifiquement intéressé par les médianes, je suggère un test de permutation sur les médianes.
Choisissez d'abord une mesure de la différence, quelque chose comme la plus grande des 3 médianes moins la plus petite des 3 (ou la variance des 3 médianes, ou le MAD, etc.).
Calculez maintenant votre statistique pour les données d'origine.
regrouper toutes les données dans un ensemble, puis partitionner aléatoirement les valeurs en 3 groupes de
mêmes tailles que l'original et calculer la même statistique.
répéter plusieurs fois (comme 9998)
Comparez la comparaison des statistiques des données réelles avec la distribution de toutes les statistiques de votre test.
la source
t.test
, ceaov
serait probablement bien aussi.Wilcoxon sum-rank test
cela ne vous dérangerait pas de convertir "Wilcox" en ce nom?wilcox.test
). Pourriez-vous modifier?Le test médian de l'humeur est un test non paramétrique utilisé pour tester l'égalité des médianes de deux populations ou plus. Voir ici pour la partie R de votre question. Voir également une question connexe ici . Aussi d' ici :
Edit: Pour trois groupes, vous pouvez considérer cette généralisation simple du code R auquel je suis lié:
la source
mood.medtest
dans le package RVAideMemoire qui semble être le test habituel, sauf qu'il utilise le test exact de Fisher par défaut pour les plus petits échantillons. Lamedian_test
fonction du paquet de pièces peut fournir un test asymptotique ou utiliser Monte Carlo.Je sais que c'est bien tard, mais je n'ai pas non plus trouvé de bon package pour le test médian de Mood, alors j'ai décidé de créer une fonction dans R qui semble faire l'affaire.
Pour la question de l'OP, vous devez d'abord l'exécuter pour créer une nouvelle trame de données pour contenir les valeurs de vos trois vecteurs de groupe avec une variable "groupe" correspondante.
et exécutez la fonction pour le test médian de Mood avec
moods.median(df$value, df$group)
la source