微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 pandas 列的数据的卡方

如何解决来自 pandas 列的数据的卡方

我需要计算

的卡方
 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')

结果是

Significance=0.050,p=0.000
Variables are associated. 

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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。