Pythonでのカイ二乗検定 質問する

Pythonでのカイ二乗検定 質問する

R観測値 (たとえば、20、20、0、0) が期待値/比率 (たとえば、4 つのケースのそれぞれで 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

chisquareこれを Python で再現するにはどうすればよいでしょうか。の関数を使用してみましたscipyが、得られた結果は非常に異なっていました。これが使用すべき正しい関数であるかどうかさえわかりません。scipyドキュメントを検索しましたが、1000 ページ以上に及ぶため、非常に困難です。numpyドキュメントはそれのほぼ 50% を超えています。

ベストアンサー1

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)

最初に返される値はχ²統計量であり、2番目はp-テストの値。

おすすめ記事