#r #chi-squared
#r #хи-квадрат
Вопрос:
это мой первый вопрос по stackoverflow, поэтому, надеюсь, я дам вам всю необходимую информацию.
Я пытаюсь провести тест хи-квадрат на основе точного распределения, используя chisq_test
функцию в coin
пакете. Я хотел бы сравнить две группы относительно одной переменной, но я запускаю предупреждающее сообщение. Вот минимальный воспроизводимый пример (по крайней мере, я надеюсь, что это один):
library(coin)
dt <- as.data.frame(alzheimer)
xtabs(~ disease gender, data = dt)
chisq_test(disease ~ gender, data = dt, distribution = "exact")
Я проверяю таблицу непредвиденных обстоятельств, чтобы убедиться, что в каждой ячейке достаточно случаев. Когда я провожу тест, я получаю этот результат:
> chisq_test(disease ~ gender, data = dt, distribution = "exact")
Exact Pearson Chi-Squared Test
data: disease by gender (Female, Male)
chi-squared = 9.7121, p-value = 0.3895
Warning messages:
1: In T - expectation(object) :
longer object length is not a multiple of shorter object length
2: In (T - expectation(object))^2/variance(object) :
longer object length is not a multiple of shorter object length
Я вычислил значение p, используя приблизительное распределение, чтобы убедиться, что предупреждение действительно является проблемой:
> chisq_test(disease ~ gender, data = dt, distribution = approximate(nresample = 1e 05))
Approximative Pearson Chi-Squared Test
data: disease by gender (Female, Male)
chi-squared = 9.7121, p-value = 0.00756
Поскольку оба значения p сильно отличаются, я предполагаю, что что-то идет не так при использовании точного распределения, но я просто не могу понять проблему.
Может быть, кто-нибудь может помочь мне решить проблему или понять причину предупреждения.
Комментарии:
1. Не могли бы вы, пожалуйста, дать представление о вашем фрейме данных? Ошибка указывает, что ваши входные данные отличаются. Может быть, это
gender
иdisease
не имеет одинаковой длины? ПонялNAs
? Или что-то подобное? Также попробуйте свой код с примером набора данных. Таким образом, вы можете быть уверены, что ваш код правильный, и ваша проблема связана с данными.2. Спасибо за быстрый ответ! Фрейм данных — это некоторые данные, поступающие с пакетом coin, поэтому я посчитал его примерным набором данных. Я использовал эти данные, чтобы получить воспроизводимый пример. В данных нет
NAs
, и обаgender
иdisease
имеют одинаковую длину. С этой дополнительной информацией: все еще необходимо попробовать с некоторыми другими данными?3. похоже, точный тест 2×3 не поддерживается
chisq_test(table(dt$disease, dt$gender), distribution = 'exact')
, и метод formula неправильно улавливает ошибку4. Если вы просто измените входные данные
chisq_test(table(dt$gender, dt$disease), distribution = 'exact')
, вы получите тот же результат, который я опубликовал. Таким образом, количество строк в таблице должно быть два. В?chisq_test
нем читаетсяthe distribution can be ... computed exactly for univariate two-sample problems by setting distribution to ... "exact"
, поэтому не должно быть ограничения на количество столбцов (если это таблица размером 2xk или проблема).
Ответ №1:
Я написал Торстену Хотхорну, одному из авторов пакета. Он сказал мне, что точное распределение для теста хи-квадрат работает только в случае проблем 2×2. Таким образом, предупреждение или тот факт, что вы не получаете сообщение об ошибке, является ошибкой в текущей версии 1.3-1 coin
пакета. В версии пакета R-forge эта ошибка уже исправлена.