Python中的卡方检验

发布于 2021-01-29 17:54:10

我使用以下代码R来确定观测值(例如20、20、0和0)与期望值/比率(例如,在四种情况下分别为25%)的拟合程度如何:

> chisq.test(c(20,20,0,0), p=c(0.25, 0.25, 0.25, 0.25))

    Chi-squared test for given probabilities

data:  c(20, 20, 0, 0)

X-squared = 40, df = 3, p-value = 1.066e-08

如何在Python中复制此代码?我试过使用chisquarefrom中的函数,scipy但是获得的结果却大不相同。我不确定这是否是正确的功能。我在scipy文档中进行了搜索,但是由于运行到1000多个页面,这非常令人生畏。该numpy文件比增加近50%。

关注者
0
被浏览
43
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    scipy.stats.chisquare期望观察到的和期望的绝对频率,而不是比率。您可以获得所需的东西

    >>> observed = np.array([20., 20., 0., 0.])
    >>> expected = np.array([.25, .25, .25, .25]) * np.sum(observed)
    >>> chisquare(observed, expected)
    (40.0, 1.065509033425585e-08)
    

    尽管在期望值均匀地分布在类上的情况下,您可以省略期望值的计算:

    >>> chisquare(observed)
    (40.0, 1.065509033425585e-08)
    

    返回的第一个值是χ²统计量,第二个返回的是测试的 p 值。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看