Проблемы с chisq_test в пакете R coin

#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 эта ошибка уже исправлена.