本文简要介绍 python 语言中 scipy.stats.false_discovery_control
的用法。
用法:
scipy.stats.false_discovery_control(ps, *, axis=0, method='bh')#
调整 p 值以控制错误发现率。
错误发现率 (FDR) 是被拒绝的原假设实际上为真的预期比例。如果当调整后的 p 值低于指定水平时拒绝原假设,则错误发现率将控制在该水平。
- ps: 一维数组
要调整的 p 值。元素必须是 0 到 1 之间的实数。
- axis: int
执行调整所沿的轴。调整是沿着每个axis-slice独立执行的。如果axis为None,则在执行调整之前先清除ps。
- method: {‘bh’, ‘by’}
要应用的错误发现速率控制过程:
'bh'
用于Benjamini-Hochberg[1](等式1),'by'
用于Benjaminini-Yekutieli[2](定理1.3)。后者更为保守,但即使 p 值不是来自独立测试,也能保证控制 FDR。
- ps_adusted: array_like
调整后的 p 值。如果零假设在低于指定水平的情况下被拒绝,则错误发现率将被控制在该水平。
参数 ::
返回 ::
注意:
在多重假设检验中,错误发现控制程序往往比系列错误率控制程序(例如 Bonferroni 校正 [1])提供更高的功效。
如果 p 值与独立测试相对应(或使用 “positive regression dependencies” [2] 进行测试),则拒绝与低于 的 Benjamini-Hochberg-adjusted p 值相对应的零假设可控制错误发现率,其水平小于或等于 ,其中 是真零假设的数量, 是测试的零假设的总数。当根据更保守的 Benjaminini-Yekutieli 过程调整 p 值时,即使对于相关检验也是如此。
该函数生成的调整后的 p 值与 R 函数生成的 p 值相当
p.adjust
和 statsmodels 函数statsmodels.stats.multitest.multipletests。请考虑后者以获得更高级的多重比较校正方法。参考:
[1] (1,2,3,4,5)本杰明尼、约阿夫和约瑟夫·霍赫伯格。 “控制错误发现率:一种实用而强大的多重测试方法。” 《皇家统计学会杂志》:B 系列(方法论)57.1 (1995):289-300。
[2] (1,2)本杰明尼、约夫和丹尼尔·耶库蒂利。 “依赖关系下多重测试中错误发现率的控制。”统计年鉴(2001):1165-1188。
[3]瓷砖统计。罗斯福 - Benjamini-Hochberg 解释 - YouTube。 https://www.youtube.com/watch?v=rZKa4tW2NKs。
[4]诺伊豪斯,Karl-Ludwig,等人。 “front-loaded 给予阿替普酶可改善急性心肌梗塞的溶栓:rt-PA-APSAC 通畅研究 (TAPS) 的结果。”美国心脏病学会杂志 19.5 (1992):885-891。
例子:
我们遵循[1]中的示例。
Thrombolysis with recombinant tissue-type plasminogen activator (rt-PA) and anisoylated plasminogen streptokinase activator (APSAC) in myocardial infarction has been proved to reduce mortality. [4] investigated the effects of a new front-loaded administration of rt-PA versus those obtained with a standard regimen of APSAC, in a randomized multicentre trial in 421 patients with acute myocardial infarction.
该研究测试了四个假设系列,最后一个是“血栓治疗开始后的心脏和其他事件”。在这一系列假设中可能需要 FDR 控制,因为如果 front-loaded 治疗仅相当于先前的治疗,则不适合得出 front-loaded 治疗更好的结论。
与该族中 15 个假设相对应的 p 值为
>>> ps = [0.0001, 0.0004, 0.0019, 0.0095, 0.0201, 0.0278, 0.0298, 0.0344, ... 0.0459, 0.3240, 0.4262, 0.5719, 0.6528, 0.7590, 1.000]
如果所选的显著性水平为 0.05,我们可能会倾向于拒绝与前 9 个 p 值对应的检验的原假设,因为前 9 个 p 值低于所选的显著性水平。然而,这会忽略“multiplicity”的问题:如果我们未能纠正正在执行多重比较的事实,我们更有可能错误地拒绝真零假设。
解决多重性问题的一种方法是控制 family-wise 错误率 (FWER),即原假设在实际为真时被拒绝的比率。这种常见的过程是 Bonferroni 校正 [1]。我们首先将 p 值乘以测试假设的数量。
>>> import numpy as np >>> np.array(ps) * len(ps) array([1.5000e-03, 6.0000e-03, 2.8500e-02, 1.4250e-01, 3.0150e-01, 4.1700e-01, 4.4700e-01, 5.1600e-01, 6.8850e-01, 4.8600e+00, 6.3930e+00, 8.5785e+00, 9.7920e+00, 1.1385e+01, 1.5000e+01])
为了将 FWER 控制在 5%,我们仅拒绝与调整后的 p 值小于 0.05 相对应的假设。在这种情况下,只能拒绝与前三个 p 值相对应的假设。根据[1],这三个假设涉及“allergic reaction”和“出血的两个不同方面”。
另一种方法是控制错误发现率:被拒绝的原假设实际上为真的预期比例。这种方法的优点在于,它通常提供更大的功效:当原假设确实为假时,拒绝原假设的概率更高。为了将错误发现率控制在 5%,我们应用了 Benjamini-Hochberg p 值调整。
>>> from scipy import stats >>> stats.false_discovery_control(ps) array([0.0015 , 0.003 , 0.0095 , 0.035625 , 0.0603 , 0.06385714, 0.06385714, 0.0645 , 0.0765 , 0.486 , 0.58118182, 0.714875 , 0.75323077, 0.81321429, 1. ])
现在,前四个调整后的 p 值低于 0.05,因此我们将拒绝与这四个 p 值相对应的原假设。拒绝第四个零假设对于最初的研究尤其重要,因为它得出的结论是新疗法“大大降低了 in-hospital 死亡率”。
相关用法
- Python SciPy stats.fatiguelife用法及代码示例
- Python SciPy stats.friedmanchisquare用法及代码示例
- Python SciPy stats.find_repeats用法及代码示例
- Python SciPy stats.f_oneway用法及代码示例
- Python SciPy stats.f用法及代码示例
- Python SciPy stats.fisk用法及代码示例
- Python SciPy stats.fisher_exact用法及代码示例
- Python SciPy stats.fligner用法及代码示例
- Python SciPy stats.foldnorm用法及代码示例
- Python SciPy stats.fit用法及代码示例
- Python SciPy stats.foldcauchy用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.levy_stable用法及代码示例
- Python SciPy stats.page_trend_test用法及代码示例
- Python SciPy stats.itemfreq用法及代码示例
- Python SciPy stats.exponpow用法及代码示例
- Python SciPy stats.gumbel_l用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.false_discovery_control。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。