это мой первый вопрос о 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-значения сильно различаются, я предполагаю, что с точным распределением что-то идет не так, но я просто не могу понять проблему.
Может кто поможет решить проблему или понять причину предупреждения.
gender
иdisease
не одинаковой длины? ЕстьNAs
? Или что-то подобное? Также попробуйте свой код с примером набора данных. Таким образом, вы можете быть уверены, что ваш код правильный и проблема связана с данными. - person mischva11   schedule 12.12.2020NAs
, аgender
иdisease
имеют одинаковую длину. С этой дополнительной информацией: нужно ли еще пробовать какие-то другие данные? - person mandel_broetchen   schedule 12.12.2020chisq_test(table(dt$disease, dt$gender), distribution = 'exact')
, и метод формулы не правильно отлавливает ошибку - person rawr   schedule 12.12.2020chisq_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 или проблема). - person mandel_broetchen   schedule 12.12.2020