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 维的。

alphafloat

FWER,族错误率,例如 0.1

methodstr

用于测试和调整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校正(非负)

maxiterint or bool

两阶段fdr的最大迭代次数,fdr_tsbhfdr_tsbky。它被所有其他方法忽略。 maxiter=1(默认)对应于两阶段方法。 maxiter=-1对应于完全迭代,即maxiter=len(pvals)。 maxiter=0仅使用单阶段fdr校正,使用‘bh’或‘bky’的先验假设真实假设的比例。

is_sortedbool

如果为 False(默认),p_values 将被排序,但校正后的 pvalues 将保持原始顺序。如果为 True,则假设 pvalues 已经按升序排序。

returnsortedbool

未测试,返回排序后的p值而不是原始序列

Returns:
rejectndarray, bool

对于给定的alpha,可以拒绝的假设为真

pvals_correctedndarray

多重检验校正后的p值

alphacSidakfloat

Sidak方法的校正alpha值

alphacBonffloat

Bonferroni 方法的校正 alpha

注释

未来可能会有对该函数的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 值的数量。


Last update: Oct 16, 2024