0

我实际上正在为 Benford Law 创建一个包(用于学术目的)。而且我正在尝试使用“chisq.test”进行拟合优度。

我有这个向量:

道具= [1377 803 477 381 325 261 253 224 184]

我想与这个概率向量(本福德定律的第一个数字)进行比较:

th = [0.301 0.176 0.125 0.097 0.079 0.067 0.058 0.051 0.046]

因此,我进行了测试:

chisq.test(prop,p=th)

然后,如果我正确理解了测试的目的,它应该返回一个很大的 p 值(接近 1 而不是 0),因为数据 (prop) 的比例与理论比例 (th) 非常相似,但是输出给我吗 :

“给定概率数据的卡方检验:道具 X 方 = 22.044,df = 8,p 值 = 0.004835”

因此,如果有人可以帮助我理解它给出了这么低的 p 值?

非常感谢

PS

我用相同的数据执行了“chisq.benftest”(本福德定律的皮尔逊卡方拟合优度检验),它给了我一个更连贯的 p 值(0.7542),因此我应该在某个地方犯了一个错误,但我不知道在哪里。

4

1 回答 1

1

我认为低 p 值是因为您有大量的测量值,而数据与理论预期不太吻合。

如果您的测量值较少,则会有更多的不确定性,您将获得更高的 p 值。

chisq.test(prop/2, p=th)   # p-value = 0.1916
chisq.test(prop/3, p=th)   # p-value = 0.4884
chisq.test(prop/4, p=th)   # p-value = 0.6929
chisq.test(prop/5, p=th)   # p-value = 0.8121

要查看算法发现最大差异的位置,您可以像这样绘制 chi-gram:

barplot(prop - (sum(prop) * th)) / sqrt(sum(prop) * th) 在此处输入图像描述

这是一个普通的 R 示例,检查对等分布的拟合优度:

a <- c(11, 9)
t <- c(0.5, 0.5)
chisq.test(a,p=t)

这给出了 p 值 0.6547,因为它的测量数量相当少,而且只有 1 个自由度。

但是,如果您以相同的比例、越来越多的观察值运行相同的测试,则 p 值会不断下降:

chisq.test(a*3,p=t)      # p-value = 0.4386
chisq.test(a*10,p=t)     # p-value = 0.1573
chisq.test(a*20,p=t)     # p-value = 0.0455

当您绘制它时,您的原始数据确实看起来非常接近理论。但是有很多自由度,你有很多观察。

同样的原则也适用于其他推论统计。更多的观察意味着算法更加确定样本代表总体的程度。

于 2021-08-04T18:04:44.527 回答