r语言 - 卡方检验返回无穷大



我将一些数据拟合到泊松分布中,数据如下:

observed <- c(290, 630, 873, 853, 618, 310, 138, 54, 21, 9, 4)
estimated_prob_mass <- c(0.064, 0.176, 0.242, 0.222, 0.152, 0.084, 0.038, 0.015, 0.005, 0.002, 0.000)

从视觉上看,比例分布与数据非常吻合。我使用ChiSq拟合优度检验对数据进行检验,得到如下结果:

chisq.test(observed, p=estimated_prob_mass)
#Warning message in chisq.test(observed, p = estimated_prob_mass):
#"Chi-squared approximation may be incorrect"
#Chi-squared test for given probabilities
#data:  observed
#X-squared = Inf, df = 10, p-value < 2.2e-16

在这种情况下,为什么我得到一个无限的ChiSq值和一个接近零的p值?

您为其中一个单元格提供了一个0的估计概率。如果您得到该单元格的非零值,那么测试拒绝,因为您的概率得到了不可能的结果。改变概率向量,使最后一个概率为0.001,然后对向量的其余部分进行规范化,得到更合理的结果。

> observed <- c(290, 630, 873, 853, 618, 310, 138, 54, 21, 9, 4)
> estimated_prob_mass <- c(0.064, 0.176, 0.242, 0.222, 0.152, 0.084, 0.038, 0.015, 0.005, 0.002, 0.000)
> e <- estimated_prob_mass
> e[11] <- .001
> e <- e/sum(e) 
> 
> # Let's compare the probabilities provided versus the new ones
> estimated_prob_mass
[1] 0.064 0.176 0.242 0.222 0.152 0.084 0.038 0.015 0.005 0.002 0.000
> round(e, 3)
[1] 0.064 0.176 0.242 0.222 0.152 0.084 0.038 0.015 0.005 0.002 0.001
> 
> chisq.test(observed, p = e)
Chi-squared test for given probabilities
data:  observed
X-squared = 17.748, df = 10, p-value = 0.05936
Warning message:
In chisq.test(observed, p = e) : Chi-squared approximation may be incorrect

主要的收获是,你的概率向量要么是完全准确的,在这种情况下,你绝对100%应该拒绝null -或者它实际上没有意义。如果你认为它应该是有意义的,并且不理解你得到的结果,那么你应该重新考虑你的测试并咨询统计学家。稍微摆弄一下概率向量,结果就会在不受惩罚地拒绝零和完全不拒绝零之间发生变化。所以,如果你不明白,我建议你咨询统计学家。

最新更新