在scipy中查找卡方检验的自由度?

1 投票
2 回答
3129 浏览
提问于 2025-04-20 01:35

我有一个麦克斯韦分布的观察数据,我把它和预期的麦克斯韦分布进行比较。然后我用卡方检验来检查这个比较的好坏。结果非常不错,不过我还想知道卡方检验用的自由度是多少。根据文档的说法,

:p值是通过一个卡方分布计算出来的,自由度是 k - 1 - ddof,其中 k 是观察到的频率的数量。默认的 ddof 值是 0。

这里的 k 到底是什么呢?是我总共有的数据点数量(41000)吗?还是每个区间的频率?enter image description here

2 个回答

-1

这些文档使用了常见的统计变量名称。K-1代表自由度。K表示每组样本的数量,样本的大小是n。简单来说,就是每个区间的频率。

http://statistics.about.com/od/Inferential-Statistics/a/What-Is-A-Degree-Of-Freedom.htm的最后一段提到:

另一个计算自由度的例子是F检验。在进行F检验时,我们有k个样本,每个样本的大小是n。分子中的自由度是k - 1,分母中的自由度是k(n - 1)。

4

kf_obs 的大小,也就是 chisquare 函数的第一个参数。它代表的是分箱的数量。

比如,在下面这个文档示例中,

>>> chisquare([16, 18, 16, 14, 12, 12])
(2.0, 0.84914503608460956)

f_obs 的值是 [16, 18, 16, 14, 12, 12],所以 k 的值就是 len(f_obs),也就是 6。

撰写回答