本文简要介绍 python 语言中 scipy.stats.barnard_exact
的用法。
用法:
scipy.stats.barnard_exact(table, alternative='two-sided', pooled=True, n=32)#
在 2x2 列联表上执行 Barnard 精确检验。
- table: 数组 整数
一个 2x2 列联表。元素应该是非负整数。
- alternative: {‘双面’,‘less’, ‘greater’},可选
定义原假设和备择假设。默认为“双面”。请参阅下面注释部分中的说明。
- pooled: 布尔型,可选
是否使用合并方差(例如 Student 的 t-test)或非合并方差(例如 Welch 的 t-test)计算得分统计。默认为
True
。- n: 整数,可选
构建采样方法时使用的采样点数。请注意,由于
scipy.stats.qmc.Sobol
用于选择样本点,因此该参数将自动转换为 2 的下一个更高的幂。默认值为 32。必须为正数。在大多数情况下,32 个点足以达到良好的精度。更多的积分是以性能为代价的。
- ber: BarnardExactResult
具有以下属性的结果对象。
- 统计 浮点数
具有合并或非合并方差的 Wald 统计量,具体取决于用户对合并的选择。
- p值 浮点数
P 值,假设零假设为真,获得至少与实际观察到的分布一样极端的分布的概率。
参数 ::
返回 ::
注意:
Barnard 检验是用于分析列联表的精确检验。它检查两个分类变量的关联,是比 Fisher 对 2x2 列联表的精确检验更有效的替代方法。
让我们定义 一个代表观察样本的 2x2 矩阵,其中每一列存储二项式实验,如下例所示。我们还定义 和 和 的理论二项式概率。当使用巴纳德精确检验时,我们可以断言三个不同的零假设:
相对 , 和选择= “less”
相对 , 和选择= “greater”
相对 , 和选择= “two-sided”(默认一个)
为了计算 Barnard 的精确检验,我们使用带有合并或未合并方差的 Wald 统计量 [3]。在两个方差相等(
pooled = True
)的默认假设下,统计量计算为:和 是 和 的估计量,后者是组合概率,假设 。
如果此假设无效(
pooled = False
),则统计数据为:然后 p 值计算如下:
总和超过所有 2x2 列联表
这样:* 当选择= “less”, * 当选择= “greater”,或 * 当选择= “two-sided”。更多, 是第 1 列和第 2 列的总和,并且 总数(4 个样本元素的总和)。返回的 p 值是对有害参数 采取的最大 p 值,其中 。
这个函数的复杂度是
,其中n是样本点的数量。参考:
[1]Barnard, G. A. “2x2 表的显著性检验”。生物计量学. 34.1/2(1947):123-138。DOI:dpgkg3
[2] (1,2)梅塔、赛勒斯 R. 和 Pralay Senchaudhuri。 “比较两个二项式的条件与无条件精确检验。” Cytel 软件公司 675(2003 年):1-5。
[3]“Wald Test”。维基百科.https://en.wikipedia.org/wiki/Wald_test
例子:
[2] 中介绍了 Barnard 检验的一个示例使用。
Consider the following example of a vaccine efficacy study (Chan, 1998). In a randomized clinical trial of 30 subjects, 15 were inoculated with a recombinant DNA influenza vaccine and the 15 were inoculated with a placebo. Twelve of the 15 subjects in the placebo group (80%) eventually became infected with influenza whereas for the vaccine group, only 7 of the 15 subjects (47%) became infected. The data are tabulated as a 2 x 2 table:
Vaccine Placebo Yes 7 12 No 8 3
在使用统计假设检验时,我们通常使用阈值概率或显著性水平,我们决定根据该阈值拒绝原假设 。假设我们选择 5% 的共同显著性水平。
我们的替代假设是疫苗会降低感染病毒的机会;也就是概率
用疫苗感染病毒将是少于概率 在没有疫苗的情况下感染病毒。因此,我们称barnard_exact
与alternative="less"
选项:>>> import scipy.stats as stats >>> res = stats.barnard_exact([[7, 12], [8, 3]], alternative="less") >>> res.statistic -1.894... >>> res.pvalue 0.03407...
在疫苗不会降低感染机会的零假设下,获得至少与观察数据一样极端的测试结果的概率约为 3.4%。由于该 p 值小于我们选择的显著性水平,因此我们有证据拒绝 而支持替代方案。
假设我们使用了 Fisher 精确检验:
>>> _, pvalue = stats.fisher_exact([[7, 12], [8, 3]], alternative="less") >>> pvalue 0.0640...
在 5% 的阈值显著性相同的情况下,我们将无法拒绝零假设以支持替代方案。如 [2] 中所述,Barnard 检验比 Fisher 精确检验更强大,因为 Barnard 检验不以任何边际为条件。仅当两组边际均固定时,才应使用 Fisher 检验。
相关用法
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.bayes_mvs用法及代码示例
- Python SciPy stats.boltzmann用法及代码示例
- Python SciPy stats.brunnermunzel用法及代码示例
- Python SciPy stats.betaprime用法及代码示例
- Python SciPy stats.betabinom用法及代码示例
- Python SciPy stats.boxcox_normplot用法及代码示例
- Python SciPy stats.boxcox用法及代码示例
- Python SciPy stats.binned_statistic_2d用法及代码示例
- Python SciPy stats.binned_statistic用法及代码示例
- Python SciPy stats.boxcox_normmax用法及代码示例
- Python SciPy stats.burr12用法及代码示例
- Python SciPy stats.boschloo_exact用法及代码示例
- Python SciPy stats.bootstrap用法及代码示例
- Python SciPy stats.binom用法及代码示例
- Python SciPy stats.burr用法及代码示例
- Python SciPy stats.bws_test用法及代码示例
- Python SciPy stats.beta用法及代码示例
- Python SciPy stats.bradford用法及代码示例
- Python SciPy stats.binomtest用法及代码示例
- Python SciPy stats.binned_statistic_dd用法及代码示例
- Python SciPy stats.boxcox_llf用法及代码示例
- Python SciPy stats.binom_test用法及代码示例
- Python SciPy stats.bernoulli用法及代码示例
- Python SciPy stats.anderson用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.barnard_exact。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。