前提・実現したいこと
カイ二乗検定の値が常に1.0になるのが理解できない。
x・y・zの値のなかに確率的に起こりにくい値が含まれていないか調べたい。
発生している問題・エラーメッセージ
エラーは発生していない。
該当のソースコード
for dct in dictionary: x = tuple(dictionary[dct][0]) y = tuple(dictionary[dct][1]) z = tuple(dictionary[dct][2]) crossed = pd.crosstab({'A':x, 'B':y,'C':y},columns=[0,1,2]) print(crossed) chi2, p, dof, ex = sp.stats.chi2_contingency(crossed, correction=False) print(p)
とコードを書いた。このコードを実行すると、
print(crossed)では
col_0 0 col_1 1 col_2 2 row_0 (10.0, 17.0) 1 (40.0, 45.0) 1 (63.0, 25.0) 1
と出力された。
理想のアウトプットは、
A B C 0 (10.0, 17.0) 1 (40.0, 45.0) 2 (40.0, 45.0)
のようになることである。
crossedの形が間違っているからp値もおかしな値になるのか?
試したこと
上記のコードの実行
theory = np.median(dictionary[dct], axis=0)
と中央値と比較する方法も考えたが、方法を思いつかなかった。
あなたの回答
tips
プレビュー