在scipy中查找卡方检验的自由度?
我有一个麦克斯韦分布的观察数据,我把它和预期的麦克斯韦分布进行比较。然后我用卡方检验来检查这个比较的好坏。结果非常不错,不过我还想知道卡方检验用的自由度是多少。根据文档的说法,
:p值是通过一个卡方分布计算出来的,自由度是 k - 1 - ddof,其中 k 是观察到的频率的数量。默认的 ddof 值是 0。
这里的 k 到底是什么呢?是我总共有的数据点数量(41000)吗?还是每个区间的频率?
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
k
是 f_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。