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

时间:2018-04-26 14:30:15

标签: python machine-learning statistics chi-squared

如果测试两个功能是否独立, 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值?

2 个答案:

答案 0 :(得分:1)

你得到的计算是正确的。它只表示您拥有的变量是独立的,没有关联或相互连接。事件的独立性意味着它不会影响或影响另一事件的发生。

在您的示例中,所有概率值都相同,因此在获取事件A的事件不依赖于另一事件B的概率方面。

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

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

答案 1 :(得分:0)

我的想法...

“独立性测试”的名称“错误”。实际上,该测试应命名为“依赖性测试”,其中:

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

成立

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

成立

其中阈值是“显着性水平”,通常为alpha = 0.05

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