我们应该担心多重性吗?
事实证明(或许不足为奇)在多臂试验的设定中,某种多样性调整是否合适的问题一直备受争议 。一种观点认为,如果不同的假设代表不同的研究问题,那么不允许进行多重比较是合理的。
模拟研究
为了进行实证研究,我根据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 < - 0trueCov < - 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])) }