昨天和大家分享了使用‘gemtc’这个R包去读取和汇总网状meta分析数据的方法。今天主要想和大家介绍一下如何在这个包里使用固定效应模型(fixed effect model, FEM)去计算网状meta分析的结果。在这之前,我们需要简单认识并区分固定效应模型和随机效应模型。
在meta分析合并效应量(effect size)时,通常有两种模型可供选择,一种是固定效应模型(FEM),另一种是随机效应模型(random effect model,REM)。固定效应模型多用于各个研究之间误差和异质性相对较小的,其前提是只考虑不同研究之间存在有抽样误差(sampling error)而无其他误差,其估计值比较精确;随机效应模型则在异质性较大的时候使用,它的前提是各个试验之间存在有除抽样误差以外的其它误差(人群的年龄、升高的差异等),其估计值没有随机效应模型的准确,但适用范围更广。
一般来说,在异质性较小的情况下,尽量使用固定效应模型,对于异质性较大的情况,则应先试着去除异质性,然后使用固定效应模型;对于存在较大异质性且这种异质性难以去除时,可以考虑使用随机效应模型。
第一步,利用昨天生成的mtc.network结果并建立mtc.model,昨天的内容参见网状Meta分析之R语言‘gemtc’包实战(1)
model_b_bin_fe <- mtc.model(network_b_bin, linearModel='fixed', n.chain=4)
这里第一个参数就是mtc.network,第二个参数是选择的模型,第三个参数是使用Markov Chain Monte Carlo (MCMC)算法是设置的链数。
第二步,进行MCMC模拟
mcmc_b_bin_fe <- mtc.run(model_b_bin_fe, n.adapt=5000, n.iter=10000, thin=20)
这里第二个参数‘n.adapt’是指去除的初始的迭代数,5000表示将前5000次迭代的结果去除,这样是为了有效避免初值对最终结果的影响,第三个参数’n.iter’表示的是迭代次数,最后一个参数‘thin’是指每次提取第20个数值(如5020,5040,5060等等)。
第三步,绘图并总结MCMC的模拟结果
plot(mcmc_b_bin_fe)
gelman.diag(mcmc_b_bin_fe) gelman.plot(mcmc_b_bin_fe) summary(mcmc_b_bin_fe)
这里的trace plot和density plot都是用来评估模拟结果的收敛性的,如果trace plot的图像整体比较平坦且density plot图像曲线较为平滑,则说明MCMC模拟结果的收敛性较好。
第四步,修改MCMC模拟的参数重新运行并观察结果
mcmc_b_bin_fe <- mtc.run(model_b_bin_fe, n.adapt=5000, n.iter=10000, thin=10) plot(mcmc_b_bin_fe) gelman.diag(mcmc_b_bin_fe) gelman.plot(mcmc_b_bin_fe) summary(mcmc_b_bin_fe)
第五步,比较不同参属下MCMC模拟的结果,选择最佳参数作为最终的结果
summary(mcmc_b_bin_fe) forest(relative.effect(mcmc_b_bin_fe, t1="A"), digits=3)
上图显示的是和A相比不同疗法的效果,森林图的解读和一般的meta没有什么区别。(最后我们选择n.adapt=5000, n.iter=10000, thin=10这个参数最为最终的结果,因为其收敛性较好。)
这期的内容中可能涉及到的数学概念比较多,比如数据模拟、收敛性、迭代等,有兴趣的朋友可以自行查阅相关资料,在后期的内容中会为大家介绍一点简单的统计知识。