卡方检验返回无穷大
Chi-Squared Test Returning Infinity
我将一些数据拟合成泊松分布,数据如下:
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 的估计概率。如果您得到该单元格的非零值,那么测试 将 拒绝,因为您的概率不可能得到结果。更改概率向量,使最后的概率为 .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 - 或者它实际上没有意义。如果您认为它应该有意义并且不理解您得到的结果,那么您应该重新考虑您的测试并咨询统计学家。稍微调整一下概率向量可以使结果在不受惩罚地拒绝 null 和完全不拒绝 null 之间发生变化。因此,如果这没有意义,我强烈建议您咨询统计学家。
我将一些数据拟合成泊松分布,数据如下:
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 的估计概率。如果您得到该单元格的非零值,那么测试 将 拒绝,因为您的概率不可能得到结果。更改概率向量,使最后的概率为 .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 - 或者它实际上没有意义。如果您认为它应该有意义并且不理解您得到的结果,那么您应该重新考虑您的测试并咨询统计学家。稍微调整一下概率向量可以使结果在不受惩罚地拒绝 null 和完全不拒绝 null 之间发生变化。因此,如果这没有意义,我强烈建议您咨询统计学家。