scipy.stats.

boschloo_exact#

scipy.stats.boschloo_exact(table, alternative='two-sided', n=32)[source]#

对 2x2 列联表执行 Boschloo 精确检验。

参数:
table整型数组类似物

一个 2x2 列联表。元素应为非负整数。

alternative{‘two-sided’,‘less’,‘greater’},可选

定义零假设和备择假设。默认值为“two-sided”。请见下文“备注”部分中的解释。

n整数,可选

在构建抽样方法时使用的抽样点数。注意,此参数将自动转换为 2 的更高次幂,因为 scipy.stats.qmc.Sobol 用于选择样本点。默认值为 32。必须为正数。在大多数情况下,32 个点足以达到良好的精度。更多的点会有性能代价。

返回:
berBoschlooExactResult

一个带有以下属性的结果对象。

statistic浮点

Boschloo 检验中使用的统计量;即 Fisher 精确检验中的 p 值。

pvalue浮点数

P 值,以空假设为真为前提条件,获得至少与实际观察值一样极端的分布的概率。

另见

chi2_contingency

列联表中变量独立性的卡方检验。

fisher_exact

对 2x2 列联表进行的 Fisher 精确检验。

barnard_exact

Barnad 精确检验,是对 2x2 列联表的 Fisher 精确检验的一种更强大的替代检验法。

注释

Boschloo 检验是一种用于列联表分析的精确检验。它检验两个分类变量之间的关联,是对 2x2 列联表的 Fisher 精确检验的一种全面更强大的替代检验法。

Boschloo 精确检验使用 Fisher 精确检验的 p 值作为统计数据,Boschloo 的 p 值是空假设条件下观察到如此极端的统计值概率。

将表示观察样本的 2x2 矩阵定义为 \(X_0\),其中每列存储二项式实验,如下图所示。我们还要定义 \(x_{11}\)\(x_{12}\) 的二项式理论概率 \(p_1, p_2\)。在使用 Boschloo 精确检验时,我们可以断言三个不同的备择假设

  • \(H_0 : p_1=p_2\) vs \(H_1 : p_1 < p_2\),其中 alternative = “less”(较小)

  • \(H_0 : p_1=p_2\) vs \(H_1 : p_1 > p_2\),其中 alternative = “greater”(较大)

  • \(H_0 : p_1=p_2\) vs \(H_1 : p_1 \neq p_2\),其中 alternative = “two-sided”(双向)(默认)

当原分布不对称时,计算双向 p 值有几种约定。在此,我们应用这样的约定:双向检验的 p 值是一侧检验 p 值中的较小值的两倍(上限为 1.0)。请注意 fisher_exact遵循不同的约定,因此对于给定的 tableboschloo_exact 报告的统计数据可能不同于 fisher_exact 报告的 p 值,当 alternative='two-sided'

1.7.0 版中新增。

参考资料

[1]

R.D. Boschloo。“测试两个概率值相同时提升 2 x 2 表的条件显著性水平”,Statistica Neerlandica,24(1),1970

[2]

“Boschloo 的检验”,维基百科,https://en.wikipedia.org/wiki/Boschloo%27s_test

[3]

Lise M. Saari 等。“员工心态和职业满意度”,人力资源管理,43(4),395-407,2004,DOI:10.1002/hrm.20032

示例

在以下示例中,我们以文章“员工心态和职业满意度”[3]为例,该文章报告了一项针对 63 位科学家和 117 位大学教授的调查结果。在 63 位科学家当中,有 31 位表示他们对自己 的工作感到非常满意,而在大学教授中,有 74 位对自己的工作感到非常满意。这是否能够有力证明大学教授对自己的工作感到比科学家更高兴?下表总结了上述数据

                 college professors   scientists
Very Satisfied   74                     31
Dissatisfied     43                     32

当使用统计假设检验时,我们通常使用某个阈值概率或显著性水平来决定是否拒绝原假设 \(H_0\)。假设我们选择了 5% 的常见显著性水平。

我们的备择假设是大学教授对自己的工作实际上比科学家更满意。因此,我们期望非常满意的大学教授的比例 \(p_1\) 高于非常满意的科学家比例 \(p_2\)。因此,我们调用 boschloo_exact 并使用 alternative="greater" 选项

>>> import scipy.stats as stats
>>> res = stats.boschloo_exact([[74, 31], [43, 32]], alternative="greater")
>>> res.statistic
0.0483
>>> res.pvalue
0.0355

在原假设(即科学家比大学教授对其工作更满意)下,获得至少与观察到的数据一样极端的检验结果的概率约为 3.55%。由于这个 p 值小于我们选择的显著性水平,我们有证据可以拒绝 \(H_0\),支持备择假设。