Тест хи-квадрат, когда две ячейки равны нулю в функции chisq.test () - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть следующий смоделированный тест для chisq.test () в R

> dd <- data.frame(a=sample(1,size=100,replace=T),
+                  group=sample(1:2,size=100,replace=T,prob = c(0.3,0.7)))
> dl <- data.frame(a=sample(1:2,size=100,replace=T),
+                  group=sample(1:2,size =100,replace=T,prob = c(0.3,0.7)))
> table(dd)
   group
a    1  2
  1 32 68
> chisq.test(table(dd))

    Chi-squared test for given probabilities

data:  table(dd)
X-squared = 12.96, df = 1, p-value = 0.0003182

> table(dl)
   group
a    1  2
  1 21 33
  2  9 37
> chisq.test(table(dl))

    Pearson's Chi-squared test with Yates' continuity correction

data:  table(dl)
X-squared = 3.5446, df = 1, p-value = 0.05974

Я намерен сравнить разницу между группой = 1 и группой = 2; расчет был правильно сделан в дл. Тем не менее, в дд, потому что все люди в обеих группах содержат 100% событий (все люди имеют один и тот же класс); не должно быть никакой разницы между двумя группами (p = 1), но chisq.test () дает значение ap 0,0003, которое должно сравнивать разницу в пропорции (32% против 68%). Но что я действительно хочу сравнить, так это соотношение внутри групп (100% против 100%). в этом случае, как я могу правильно использовать chisq.test?

1 Ответ

1 голос
/ 24 февраля 2020

Преобразуйте ваши столбцы в факторы и укажите уровни, которые они могут принять. Таким образом, можно знать, что есть пустые ячейки.

dd[,1] <- factor(dd[,1], levels = 1:2)
dd[,2] <- factor(dd[,2], levels = 1:2)

, что дает

> chisq.test(table(dd))

        Pearson's Chi-squared test

data:  table(dd)
X-squared = NaN, df = 1, p-value = NA

Warning message:
In chisq.test(table(dd)) : Chi-squared approximation may be incorrect

, что может быть не совсем тем, что вы хотите, но является более правильным, чем выполнение теста, который каждый группа имеет такую ​​же вероятность.

...