我有一个数据框,我想计算一个卡方和p值。但是,当我打印出期望值时,它们并不是我所期望的。我期望代码测试的无效假设是,Q7不依赖于“ConcernImprovement”,因此我期望每个Q7条目的“预期频率”(expected frequencies)减少、增加和没有变化是相同的
这是我观察到的数据帧,叫做LikelihoodConcern
:
ConcernImprovement Decrease Increase No change
Q7
Likely 2.0 18.0 21.0
Not likely at all 0.0 2.0 1.0
Not very likely 3.0 11.0 5.0
Somewhat likely 4.0 24.0 14.0
Very likely 1.0 16.0 8.0
我试过这个代码:
from scipy.stats import chi2_contingency
chi2, p, dof, expected = chi2_contingency(LikelihoodConcern, correction=False)
expected
它返回预期频率:
array([[ 3.15384615, 22.39230769, 15.45384615],
[ 0.23076923, 1.63846154, 1.13076923],
[ 1.46153846, 10.37692308, 7.16153846],
[ 3.23076923, 22.93846154, 15.83076923],
[ 1.92307692, 13.65384615, 9.42307692]])
我以为它会回来:
array([[ 13.67777777, 13.67777777, 13.67777777],
[ 1.00000000, 1.00000000, 1.00000000],
[ 6.33333333, 6.33333333, 6.33333333],
[ 14.00000000, 14.00000000, 14.00000000],
[ 8.33333333, 8.33333333, 8.33333333]])
我已经查看了expected_freq
函数的源代码,因为文档中没有太多细节-但是我仍然不明白为什么我没有看到我所期望的
我在那里做了一个测试,输入的数据和你的一样:
得到了和预期频率相同的结果。如果我们看第一个单元格(行'可能',列'减少')。“可能”的边际和为42,“减少”的边际和为10。表格的边际和为130。因此,对于第一个单元格,我们的预期值为:
对于右下角单元格(行“很可能”,列“无更改”),我们有:
这些结果与
stats.scipy
的结果相匹配相关问题 更多 >
编程相关推荐