15

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

背景第一:我有两组用户。我的零假设是,两组中的人是否更有可能使用台式机、移动设备或平板电脑没有显着差异。

这些是在两组中观察到的频率:

[[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_contingencyor scipy.stats.chisquare

4

2 回答 2

6

我不能对函数的使用做太多评论。然而,手头的问题可能是统计性质的。您看到的非常小的 p 值很可能是您的数据包含大频率(大约一万)的结果。当样本量太大时,任何差异都会变得显着 - 因此 p 值很小。您使用的测试对样本量非常敏感。有关更多详细信息,请参见此处

于 2015-11-09T19:52:09.207 回答
5

您使用chi2_contingency正确。如果您不确定卡方检验的适当使用或如何解释其结果(即您的问题是关于统计测试而不是编码),请考虑在“CrossValidated”网站上询问它:https://stats。 stackexchange.com/

于 2014-08-05T14:44:37.840 回答