web-dev-qa-db-ja.com

Pythonのカイ二乗検定

Pythonでカイ二乗テストを実行したいのですが。これを行うためのコードを作成しましたが、scipyのドキュメントは非常にまばらなので、自分のやっていることが正しいかどうかわかりません。

最初に背景:2つのユーザーグループがあります。私の帰無仮説は、どちらのグループの人々もデスクトップ、モバイル、またはタブレットを使用する可能性が高いかどうかに有意差がないということです。

これらは、2つのグループで観測された周波数です。

[[u'desktop', 14452], [u'mobile', 4073], [u'tablet', 4287]]
[[u'desktop', 30864], [u'mobile', 11439], [u'tablet', 9887]]

これが scipy.stats.chi2_contingency を使用した私のコードです。

obs = np.array([[14452, 4073, 4287], [30864, 11439, 9887]])
chi2, p, dof, expected = stats.chi2_contingency(obs)
print p

これにより2.02258737401e-38というp値が得られますが、これは明らかに重要です。

私の質問は、このコードは有効に見えますか?特に、 scipy.stats.chi2_contingencyscipy.stats.chisquare のどちらを使用する必要があるのか​​がわからないのです。

14
Richard

chi2_contingencyを正しく使用しています。カイ二乗検定の適切な使用またはその結果の解釈方法について疑問がある場合(つまり、質問がコーディングではなく統計検定に関するものである場合)、「CrossValidated」サイトで質問することを検討してください: https: //stats.stackexchange.com/

5

関数の使い方についてはあまりコメントできません。ただし、当面の問題は本質的に統計的なものである可能性があります。表示されている非常に小さいp値は、データに大きな頻度(1万桁程度)が含まれていることが原因である可能性があります。サンプルサイズが大きすぎると、差異が大きくなるため、p値が小さくなります。使用しているテストは、サンプルサイズに非常に敏感です。詳細は こちら を参照してください。