摘要
中介分析在流行病学和临床试验中越来越受到关注。在现有的中介分析方法中,流行的联合显着性(JS)检验会产生过于保守的 I 类错误率,因此功效较低。但是,如果在使用 JS 测试高维中介假设时,可以准确控制族错误率 (FWER) 和错误发现率 (FDR)。分析的核心是基于估计三个分量零假设的比例并推导零 p 值的相应混合分布。
一言以蔽之:计算高维中介假设的校正后的p值
JS-混合方法
新提出的JS-混合方法(joint significance (JS) test) 通过估计三种类型组合零假设的比例来解决JS均匀方法在高维中介假设测试中的过度保守问题。这种方法衍生出控制家庭错误率(FWER)或假发现率(FDR)的显著性规则。通过理论证明、广泛的模拟实验和两个数据例子,JS-混合方法被证明是稳健的,适用于稀疏和密集替代假设,并且在FWER和FDR的控制上比JS-均匀方法提供了更令人满意的结果。特别是,当使用有限样本校正的JS-混合方法时,与基于渐近混合零分布的方法相比,其经验FWER更接近目标的0.05,从而改善了控制效果。
种类型组合零假设的比例
通过估计与三种类型(H00, H01, H10)相关的零假设在所有J个假设中的比例,得到关于这些零假设在数据集中的相对频率的信息。这些估计对于理解和控制假阳性率(FDR)以及在假设检验中区分真正和虚假发现至关重要。π01, π10, 和 π00 分别表示三种类型组合零假设(即,H01, H10, 和 H00)在J个假设中的比例。通过最大化似然函数分别得到αj 和 βj 的估计p1j 和 p2j,由于模型允许它们的似然性可以分解,所以这些估计是独立的,这有助于更准确地估计pmax,j 在零假设H0j中的分布。
实现方法
以DNA甲基化在癌症病因中的作用为例,介绍了两个前列腺癌研究案例。以供自学。
浏览关键函数
安装、导入包
# 安装hdmt包
install.packages("HDMT")
# 加载hdmt包
library(HDMT)
导入数据
数据格式:数据集是一个矩阵,其中包含候选中介变量的两列 p 值。第 1 列包含用于测试暴露是否与中介相关的 p 值 (alpha!=0)。第 2 列包含用于测试中介变量是否与暴露调整后的结果相关的 p 值 (beta!=0),需要先使用各类中介方法进行估计。
# 读取数据
data(snp_input)
# 查看数据
head(snp_input)
# [,1] [,2]
# [1,] 0.1056981 0.253803463
# [2,] 0.9986436 0.862830855
# [3,] 0.1006569 0.726600653
# [4,] 0.1731411 0.327851970
# [5,] 0.8900695 0.001496449
# [6,] 0.8156905 0.087064991
# 查看数据结构
str(snp_input)
# num [1:69602, 1:2] 0.106 0.999 0.101 0.173 0.89 ...
input_pvalues <- snp_input# 从输入数据中随机抽取10%的数据【节省时间】
input_pvalues <- input_pvalues[sample(1:nrow(input_pvalues),size=ceiling(nrow(input_pvalues)/10)),]
str(input_pvalues)
# num [1:6961, 1:2] 0.37146 0.00373 0.56406 0.4913 0.78594 ...
估计三个分量零值比例备用
nullprop <- null_estimation(input_pvalues)
# $alpha10
# [1] 0.06608246
#
# $alpha01
# [1] 0.4640138
#
# $alpha00
# [1] 0.4692812
#
# $alpha1
# [1] 0.933295
#
# $alpha2
# [1] 0.5353637
计算FDR校正后的p值
# 使用三个分量零值比例,基于所提出的联合显着性混合零方法(JS-mixture)计算估计的逐点 FDR
fdr <- fdr_est(nullprop$alpha00,nullprop$alpha01,nullprop$alpha10, nullprop$alpha1,nullprop$alpha2,input_pvalues,exact=0)
str(fdr)
# num [1:6961] 0.954 0.966 0.957 0.956 0.917 ...
结果解读:如果一个p值对应的FDR小于0.05,那么这个结果被认为是在FDR控制下的显著发现,表明存在关联
计算FWE校正后的p值的cutoff
# 使用估计的混合零分布计算 p-max 的 FWER 截止值cutoff
fwercut0 <- fwer_est(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00,nullprop$alpha1, nullprop$alpha2,input_pvalues,alpha=0.05,exact=0) # exact= 0:不估计CDF的近似值
fwercut0
# [1] 1.491624e-05fwercut1 <- fwer_est(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00,nullprop$alpha1, nullprop$alpha2,input_pvalues,alpha=0.05,exact=1) # exact = 1:非参数估计 CDF 的精确方法
fwercut1
# [1] 6.187122e-05
结果解读:
fwercut0
是使用估计的混合零分布计算的 p-max 的 FWER 截止值,其中exact=0
表示使用了不估计累积分布函数(CDF)的近似方法。 在显著性水平alpha=0.05
下,为了控制家庭错误率(FWER),当候选中介变量的p值小于或等于这个值(即1.354997e-05)时,我们将认为关联性检测达到统计显著性。同理解读fwercut1
作图
用途:观察经过JS 后,校正后的p值被“拉高”了,即更容易达到统计学显著,提高了功效
# 通过上面计算的三个分量零值比例,并使用近似或精确方法计算 pmax 的估计混合零分布分位数--------
pnull <- adjust_quantile(nullprop$alpha00,nullprop$alpha01,nullprop$alpha10,nullprop$alpha1, nullprop$alpha2,input_pvalues,exact=0) # exact=0,推导混合零分布时,不估计CDF的近似方法
str(pnull)
# num [1:6961] 0.000298 0.000596 0.000894 0.001192 0.001489 ...# 使用预期分位数绘制 p-max 的校正分位数-分位数图---------
pmax <- apply(input_pvalues,1,max) # 计算每行的最大值
pnull1 <- adjust_quantile(nullprop$alpha10,nullprop$alpha01,nullprop$alpha00, nullprop$alpha1,nullprop$alpha2,input_pvalues,exact=1) # exact=1,在推导混合零分布时,非参数估计 CDF 的精确方法correct_qqplot(pmax,pnull1) #如下图展示
参考文献
A Multiple-Testing Procedure for High-Dimensional Mediation Hypotheses: Journal of the American Statistical Association: Vol 117 , No 537 - Get Access (tandfonline.com)https://www.tandfonline.com/doi/full/10.1080/01621459.2020.1765785