scipy.stats.chi2_contingency 生成的用于独立性测试的 p 值

p value generated by scipy.stats.chi2_contingency for independence testing

为了测试两个特征是否独立, H0:A和B是独立的 H1:A 和 B 是相关的

p < 0.05,则 A 和 B 是相关的

尝试以下代码后,很明显这两个数组是相关的(它们是相同的数组)

obs = np.array([[10, 10, 10], [10, 10, 10]])
scipy.stats.chi2_contingency(obs)

我得到以下结果:

(0.0, 1.0, 2, array([[10., 10., 10.],
        [10., 10., 10.]]))

即p值是1.0 > 0.05,所以我们接受两个数组相互独立的原假设。

我的假设是错误的还是它生成了 1-p 值?

你得到的计算是正确的。这仅意味着您拥有的变量是独立的,并且彼此之间没有关联或连接。事件的独立性是指不会影响或影响另一事件的发生。

在您的示例中,所有概率值都相同,因此就概率而言,获得事件 A 的事件不依赖于另一个事件 B。

  P(A|B) = P(A)  or P(B|A) = P(B)

在给定事件 B 的情况下读取事件 A 的概率与 A 的概率相同,因为 A 和 B 是独立的。因此,P(A)、P(B)、P(A|B) 和 P(B|A) 是相同的,因为 A 和 B 基于 chisq 统计是独立的。

我的意见...

"indenpedence test" 得到了一个 "wrong name"。实际上测试应该命名为 "dependence test",其中:

H0:无依赖性 --> 如果 p_value < 阈值

成立

H1:依赖性 --> 如果 p_value > 阈值

成立

其中阈值为 "level of significance",通常 alpha = 0.05

因此 [[1, 50], [50, 50]] 给出接近 1 的 p 值,而随机矩阵给出接近 0 的 p 值。