在卡方检验中获取 X 平方的 NaN 值和 p 值的 N/A

机器算法验证 r 卡方检验
2022-04-07 17:49:30

我必须对这个给定的数据集执行卡方检验:

http://img27.imageshack.us/img27/2600/dataset.jpg

使用以下代码执行此操作后:
http://img199.imageshack.us/img199/4837/chisqcode.jpg

我得到以下结果:

        Pearson's Chi-squared test

data:  data.table 
X-squared = NaN, df = 44, p-value = NA

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

为什么 X 平方值是“NaN”而 p 值是“N/A”?我在这里做错了什么?

1个回答

正如 Glen_B 指出的那样,您的问题是您不能期望频率为零,因为这会影响卡方统计量的计算(分母中有零)。例如,看到

x1 <- matrix(c(0, 1, 0, 1), 2, 2)
x1
     [,1] [,2]
[1,]    0    0
[2,]    1    1

x2 <- matrix(c(0, 0, 1, 1), 2, 2)
x2
     [,1] [,2]
[1,]    0    1
[2,]    0    1

都将无法产生卡方检验(因为它们应该),而

x3 <- matrix(c(0, 1, 0, 1), 2, 2)
x3
     [,1] [,2]
[1,]    0    1
[2,]    1    0

不会给你任何问题。

顺便说一句,这里这里也解决了这个问题