Вопрос
Результаты тестов трех групп людей сохраняются в виде отдельных векторов в 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)
Я хочу знать, есть ли значительная разница в медиане между этими группами. Я знаю, что могу тестировать группу 1 против группы 2, используя тест Уилкоксона, вот так.
wilcox.test(group1, group2)
Тем не менее, это сравнивает только две группы одновременно, и я хотел бы сравнить все три одновременно. Я хотел бы статистический тест, который дает значение р на уровне значимости 0,05. Может ли кто-нибудь помочь, пожалуйста?
Редактировать # 1 - Медиана тест настроения
Следуя предложенному пользователю ответу Hibernating, я попробовал медианный тест 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)
Тем не менее, этот подход позволяет мне проверить значительную разницу между медианами только двух групп одновременно. Я не уверен, как использовать это, чтобы сравнить медианы всех трех одновременно.
Правка № 2 - тест Крускала-Уоллиса
Предложенный пользователем dmartin ответ выглядит более или менее тем, что мне нужно, и позволяет мне тестировать все три группы одновременно.
kruskal.test(list(group1, group2, group3))
Редактировать № 3
Пользователь Грег Сноу услужливо отмечает в своем ответе, что тест Крускала-Уоллиса уместен, если он делает строгие предположения, которые делают его также проверкой средств.
источник
median test
. Мой собственный ответ / комментарии здесь .Ответы:
Можно также использовать критерий Крускала-Уоллиса, так как это непараметрический ANOVA. Кроме того, его часто считают более мощным, чем средний тест Муда . Это может быть реализовано в R с помощью функции kruskal.test в пакете stats в R.
Чтобы ответить на ваши изменения, интерпретация KW похожа на одностороннюю ANOVA. Значительное значение p соответствует отклоненному нулю, что все три средства равны. Вы должны использовать дополнительный тест (опять же, как ANOVA), чтобы ответить на вопросы о конкретных группах. Это обычно следует за конкретными вопросами исследования, которые могут у вас возникнуть. Просто взглянув на параметры симуляции, все три группы должны значительно отличаться друг от друга, если вы выполните дополнительный тест (так как они все 1 SD друг от друга с N = 100).
источник
Во-первых, тест Уилкоксона (или тест Манна-Уитни) не является тестом медианы (если вы не сделаете очень строгие предположения, которые также делают его тестом средств). А для сравнения более чем двух групп критерий Уилкоксона может привести к некоторым парадоксальным результатам (см . Кости Эфрона ).
Поскольку тест Уилкоксона - это особый случай теста на перестановку, и вы особенно интересуетесь медианами, я бы предложил тест на перестановку медиан.
Сначала выберите меру разницы, например, наибольшую из 3 медиан минус наименьшую из 3 (или дисперсию 3 медиан, или MAD и т. Д.).
Теперь вычислите вашу статистику для исходных данных.
объединить все данные в один набор, а затем случайным образом разделить значения на 3 группы
те же размеры, что и оригинал, и рассчитывают ту же статистику.
повторить много раз (например, 9998)
Сравните, как статистика из реальных данных сравнивается с распределением всей статистики для вашего теста.
источник
t.test
иaov
, вероятно, будет хорошо.Wilcoxon sum-rank test
, не могли бы вы преобразовать «Уилкокс» в это имя?wilcox.test
). Не могли бы вы отредактировать?Медианный тест Mood - это непараметрический тест, который используется для проверки равенства медиан из двух или более групп населения. Смотрите здесь для R части вашего вопроса. Смотрите также связанный вопрос здесь . Также отсюда :
Изменить: Для трех групп, вы можете рассмотреть это простое обобщение кода R, с которым я связан:
источник
mood.medtest
в пакете RVAideMemoire является обычным тестом, за исключением того, что он использует точный тест Фишера по умолчанию для меньших размеров выборки.median_test
Функция в пакете монет может обеспечить асимптотический тест или использовать Монт - Карло.Я знаю, что это слишком поздно, но я не смог найти хороший пакет для медианного теста Mood, поэтому я взял на себя задачу создать функцию в R, которая, кажется, справляется с задачей.
Что касается вопроса OP, вы сначала запустите его, чтобы создать новый фрейм данных, в котором будут храниться значения из трех векторов групп с соответствующей переменной «group».
и запустить функцию для медианного теста Mood с
moods.median(df$value, df$group)
источник