我们应该担心多重性吗?
事实证明(或许不足为奇)在多臂试验的设定中,某种多样性调整是否合适的问题一直备受争议 。一种观点认为,如果不同的假设代表不同的研究问题,那么不允许进行多重比较是合理的。
模拟研究
为了进行实证研究,我根据Parmar 等人的假设进行了一项非常小的模拟研究(在R中)。
运行模拟
mu < - c(0,0)
tausq < - 0
在顶部,这将所有真正的治疗效果设置为零。这使我们能够检查类型1错误。
贝叶斯方法
遵循安德鲁·格尔曼与之前相关的论文,似乎处理前面问题的方法是贝叶斯分析。在这种情况下,每个治疗效果的后验平均值将朝着估计的总体平均治疗效果缩小,取决于真实治疗效果的估计方差和每个估计效果的精确度。
用于仿真
如果有人发现错误,请在评论中告诉我。
nSims < - 1000
#specify真实效果的均值和方差
mu < - c(-1,-1)
tausq < - 2
#mu < - c(0,0)
#tausq < - 0
#specify真正治疗之间的相关性rho
rho < - 0
trueCov < - c(tausq,rho * tausq,rho * tausq,tausq),nrow = 2)
#由于共同的控制臂,误差相关性为0.5
errorRho < - 0.5
errorVariance < - 1
errorCov < matrix(c(errorVariance,errorRho * errorVariance,errorRho * errorVariance,errorVariance),nrow = 2)
sigResult < - array(0,dim = c(nSims,2))
trueEffects < array(0,dim = c(nSims,2))
estEffects < - array(0,dim = c(nSims,2))
for(i in 1:nSims){
#generate真正的治疗效果
trueEffects [i,] < mvrnorm(n = 1,mu = mu,Sigma = trueCov)
estEffects [i,] < - trueEffects [i,] + mvrnorm(n = 1,mu = c(0,0),Sigma = errorCov)
testStat < - estEffects [i,] /(errorVariance ^ 0.5)
p_value < - 2 * pnorm(abs(testStat),lower.tail = FALSE)
sigResult [i,] < 1 *(p_value <0.05)
}
#proportions of trials中找到每个治疗组
colMeans(sigResult)
#beneficial effect与对照相比
#is假设两个治疗组相同(对照组)
bestTrt < - array(0,dim = c(nSims,1))
bestEstEff < - array(0,dim = c(nSims,1))
bestEstMinusTrue < - array(0,dim = c(nSims,1))
for(i in 1:nSims){
bestTrt [i] < - which.min(estEffects [i,])
#find对应的真实效果
bestTrtTrueEff [i] < - trueEffects [i,bestTrt [i]]
bestEstEff [i] < - estEffects [i,bestTrt [i]]
ciCov [i] < - 1 *(((bestEstEff [i] -1.96 * errorVariance ^ 0.5)<bestTrtTrueEff [i])&((bestEstEff [i] + 1.96 * errorVariance ^ 0.5)> bestTrtTrueEff [i]))
}
非常感谢您阅读本文,有任何问题请在下面留言!
1
1
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。