Chi平方测试用Python

时间:2014-08-05 12:52:40

标签: python numpy scipy chi-squared

我想在Python中运行卡方检验。我已经创建了代码来执行此操作,但我不知道我所做的是否正确,因为scipy docs非常稀疏。

背景优先:我有两组用户。我的原假设是,两组中的人是否更有可能使用桌面设备,移动设备或平板电脑没有显着差异。

这两组中的观察频率:

[[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

这给了我一个p值2.02258737401e-38,这显然很重要。

我的问题是:此代码看起来有效吗?特别是,根据我的数据,我不确定是否应该使用scipy.stats.chi2_contingencyscipy.stats.chisquare

2 个答案:

答案 0 :(得分:4)

您正在使用chi2_contingency。如果您对卡方检验的恰当使用或如何解释其结果感到不确定(即您的问题是关于统计检验而不是编码),请考虑在#BrossValidated"网站:https://stats.stackexchange.com/

答案 1 :(得分:3)

我不能过多评论该功能的使用。但是,手头的问题可能是统计性的。您看到的非常小的p值很可能是因为您的数据包含大频率(大约一万个)。当样本量太大时,任何差异都将变得显着 - 因此p值较小。您使用的测试对样本量非常敏感。有关详细信息,请参阅here