Python 熊猫列数据的卡方检验

Python 熊猫列数据的卡方检验,python,pandas,scikit-learn,chi-squared,Python,Pandas,Scikit Learn,Chi Squared,我需要计算 CAT Label 0 A 0.0 1 A 0.0 2 B 1.0 4 A 0.0 6 B 0.0 ... ... ... 3566 C 0.0 3567 A 0.0 3568 B 0.0 3571 C 1.0 我一直在使用交叉表: data = pd.crosstab(df['CAT'],df['Label'], margins = False) 我得到以下信息: Label 0.0 1

我需要计算

 CAT    Label
0   A   0.0
1   A   0.0
2   B   1.0
4   A   0.0
6   B   0.0
... ... ...
3566    C   0.0
3567    A   0.0
3568    B   0.0
3571    C   1.0
我一直在使用交叉表:

data = pd.crosstab(df['CAT'],df['Label'], margins = False)
我得到以下信息:

Label   0.0 1.0
CAT     
A   425 37
B   718 82
C   637 128
计算卡方,我得到以下结果:

contingency = pd.crosstab(df['CAT'], df['Label'])
stat, p, dof, expected = chi2_contingency(contingency)

alpha = 0.05

print('Significance=%.3f, p=%.3f' % (alpha, p))
if p <= alpha:
    print('-> Variables are associated')
else:
    print('-> Variables are not associated')

你认为这种方法正确吗?结果可靠吗?当我检查一个不同的变量时,我也得到一个p_值=0.000。我想知道,既然我有A、B和C,我是否不能在这种情况下应用卡方检验。

您将小数位数限制为3。很可能你的p值要小得多,四舍五入到0.000。例如,尝试将p的格式更改为“.5g”,这样可能会显示甚至很小的p值。

谢谢。所以在这种情况下使用卡方检验是正确的,不是吗?这取决于你的零假设是什么。仅根据p值做出决策可能很棘手。我发现这篇文章非常有用:
Significance=0.050, p=0.000
Variables are associated.