scipy.stats中的卡方值默认自由度为0,这意味着什么?
你好,我有一些数据集(麦克斯韦分布和高斯分布),我用这些数据画了一个直方图。我使用了scipy.stats.chisquare来拟合这些数据,但它默认的自由度是0。如果我理解得没错的话,这样做是不可能的,对吧?
1 个回答
5
直接回答你的问题,你说得对,自由度为0是无效的、没用的。scipy.stats.chisquare
中的参数不是自由度,而是对自由度的一个调整。当ddof
等于0时,自由度默认是k - 1
,而k
可以直接从你传给chisquare函数的数据中确定。
关于这个内容,可以参考Scipy的chisquare文档
ddof
: 整数,可选 “自由度的增量”:对p值的自由度进行调整。p值是使用自由度为k - 1 - ddof
的卡方分布计算的,其中k
是观察到的频数。ddof
的默认值是0。
ddof
是“增量”,而不是自由度的绝对值。所以自由度是k - 1
,而ddof
是从k - 1
中减去的调整值。因此,当ddof
等于0时,自由度就是k - 1 - 0
,也就是k - 1
。当ddof
等于1时,自由度就是k - 1 - 1
,也就是k - 2
。k
是观察到的频数,而chisquare
函数可以从你传入的数据中确定这个值。