我想在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_contingency
或scipy.stats.chisquare
。
答案 0 :(得分:4)
您正在使用chi2_contingency
。如果您对卡方检验的恰当使用或如何解释其结果感到不确定(即您的问题是关于统计检验而不是编码),请考虑在#BrossValidated"网站:https://stats.stackexchange.com/
答案 1 :(得分:3)
我不能过多评论该功能的使用。但是,手头的问题可能是统计性的。您看到的非常小的p值很可能是因为您的数据包含大频率(大约一万个)。当样本量太大时,任何差异都将变得显着 - 因此p值较小。您使用的测试对样本量非常敏感。有关详细信息,请参阅here。