statsmodels.stats.multitest.multipletests¶
-
statsmodels.stats.multitest.multipletests(pvals, alpha=
0.05, method='hs', maxiter=1, is_sorted=False, returnsorted=False)[source]¶ 多重检验的测试结果和p值校正
- Parameters:¶
- pvalsarray_like, 1-d
未校正的 p 值。必须是 1 维的。
- alpha
float FWER,族错误率,例如 0.1
- method
str 用于测试和调整p值的方法。可以是全名或首字母。可用方法有:
邦费罗尼 : 一步校正
sidak : 一步校正
holm-sidak : 使用Sidak调整的逐步下降方法
holm : 使用Bonferroni调整的逐步下降法
simes-hochberg : 逐步上升法 (独立)
hommel : 基于Simes检验的封闭方法(非负)
fdr_bh : Benjamini/Hochberg (非负)
fdr_by : Benjamini/Yekutieli(负)
fdr_tsbh : 两阶段fdr校正(非负)
fdr_tsbky : 两阶段FDR校正(非负)
- maxiter
intor bool 两阶段fdr的最大迭代次数,fdr_tsbh和fdr_tsbky。它被所有其他方法忽略。 maxiter=1(默认)对应于两阶段方法。 maxiter=-1对应于完全迭代,即maxiter=len(pvals)。 maxiter=0仅使用单阶段fdr校正,使用‘bh’或‘bky’的先验假设真实假设的比例。
- is_sortedbool
如果为 False(默认),p_values 将被排序,但校正后的 pvalues 将保持原始顺序。如果为 True,则假设 pvalues 已经按升序排序。
- returnsortedbool
未测试,返回排序后的p值而不是原始序列
- Returns:¶
注释
未来可能会有对该函数的API更改。
除了‘fdr_twostage’之外,p值校正与作为参数指定的alpha无关。在这些情况下,校正后的p值也可以与不同的alpha进行比较。在‘fdr_twostage’的情况下,校正后的p值是特定于给定的alpha的,参见
fdrcorrection_twostage。‘fdr_gbs’ 程序未与其他包进行验证,p 值是从头开始计算的,并非源自参考文献。在蒙特卡罗实验中,该方法工作正确并保持了错误发现率。
所有包含的过程在独立情况下控制FWER或FDR,并且在正相关情况下大多数是稳健的。
fdr_gbs: 高功效,独立情况下的fdr控制,仅在正相关情况下有轻微违反
时间:
大多数情况下,处理大型数组时的时间消耗主要在argsort。当我们需要为几种方法计算p值时,预先对p值进行排序,然后在函数外部将结果恢复到原始顺序会更有效率。
Method=’hommel’ 对于大型数组来说非常慢,因为它需要评估 n 个分区,其中 n 是 p 值的数量。