• R语言中固定与随机效应Meta分析


    原文链接:http://tecdat.cn/?p=6330

    Meta分析是综合现有证据的重要工具。它通常用于医学和临床环境中,以评估关于治疗或暴露对感兴趣结果的影响的现有证据。基本思想是将先前研究中感兴趣的影响的估计汇总在一起。在进行Meta分析 时必须做出的选择是固定效应和随机效应之间的选择。在这篇文章中,我们将看看这种选择的一些后果,实际上研究正在测量不同的效果。

    设置


    我们假设我们对n个研究对我们感兴趣的影响进行了估计。

    固定效应Meta分析 


    在固定效应荟萃分析中,我们假设所包含的每项研究都在估计相同的基础参数。

    随机效应Meta分析 


    相比之下,在随机效应荟萃分析中,我们假设每项研究都在估计研究特定的真实效果。观察到的估计异质性归因于两个来源:1)研究之间的真实效应异质性,以及2)研究内抽样误差。

    固定与随机效应Meta分析 


    我们使用哪种方法会影响我们获得的估计总体效果及其相应的95%置信区间,因此决定哪种方法适合在任何给定情况下使用是很重要的。我个人认为,这个决定应该基于对成分研究的了解,而不是基于实际查看点估计。

    两种方法之间的另一个明显差异是,固定效应荟萃分析的计算标准误差小于随机效应荟萃分析的计算标准误差。这可能会使研究人员相信固定效应估计更精确。

    R中的模拟研究


    为了进行模拟研究,我们将模拟30项研究的重复荟萃分析。

    然后,我们执行固定效应和随机效应荟萃分析。代码如下所示:

    fixedEffectEsts < -  array(0,dim = c(nSims))
    fixedCI < -  array(0,dim = c(nSims,2))
    randomEffectEsts < -  array(0,dim = c(nSims))
    randomCI < -  array(0,dim = c(nSims,2))
    
    for(i in 1:nSims){
    	打印(I)
    	trueEffects < -  rnorm(nStudies,mean = 1,sd = 0.1)
    
    	#sample在研究标准偏差范围内
    	withinStudySD < -  rgamma(nStudies,shape = 2.5,scale = 0.04)
    
    	studyEstimate < -  rnorm(nStudies,mean = trueEffects,sd = withinStudySD)
    
    	#fixed effects meta-analysis
    	maFixed < -  (studyEstimate~1,S = withinStudySD ^ 2,method =“fixed”)
    	fixedEffectEsts [i] < -  coef(maFixed)
    	fixedCI [i,] < -  c(coef(maFixed)-1.96 * maFixed $ vcov ^ 0.5,coef(maFixed)+ 1.96 * maFixed $ vcov ^ 0.5)
    
    	#random-effects元分析
    	maRandom < -  (studyEstimate~1,S = withinStudySD ^ 2,method =“mm”)
    	randomEffectEsts [i] < -  coef(maRandom)
    	randomCI [i,] < -  c(coef(maRandom)-1.96 * maRandom $ vcov ^ 0.5,coef(maRandom)+ 1.96 * maRandom $ vcov ^ 0.5)
    }
    

     

     

    #ci覆盖范围

    mean((fixedCI [,1] <1)&(fixedCI [,2]> 1))
    mean((randomCI [,1] <1)&(randomCI [,2]> 1))

    R代码的最后几行计算1000次模拟中固定和随机效应估计的平均值和SD,然后计算95%置信区间的覆盖范围。当我运行我获得的代码时:

    > mean(fixedEffectEsts)
    [1] 0.9990649
    > sd(fixedEffectEsts)
    [1] 0.04939415
    > 
    > mean(randomEffectEsts)
    [1] 1.000967
    > sd(randomEffectEsts)
    [1] 0.0242558
    > 
    > #ci
    > mean((fixedCI [,1] <1)&(fixedCI [,2]> 1))
    [1] 0.322
    > mean((randomCI [,1] <1)&(randomCI [,2]> 1))
    [1] 0.926

    首先要注意的是,固定效应方法仍然是无偏的,即使数据是基于随机效应模型进行模拟的。然而,我们发现固定效应方法的SD要大得多(随机效应为0.049对0.024)。或者换句话说,随机效应估计器是一种更精确的估计。

    对这种明显矛盾的解释是,当实际存在研究异质性之间时,由固定效应方法计算的标准误差是无效的。

    结论


    我从这个小型模拟研究中得出的结论是,应该警惕使用固定效应分析,除非人们相信meta分析中的研究正在估计相同的共同效应。

    如果您有任何疑问,请在下面发表评论。 

  • 相关阅读:
    TCP和UDP的区别
    DATAX 实现python调用cmd 系统控制台,实现在开发工具中内嵌datax (python 多行执行cmd命令)
    DATAX 实现java调用cmd 系统控制台,实现在开发工具中内嵌datax
    六大质量属性——可测试性代码层面描述(以“信息领域热词分析系统”为例)
    信息领域热词分析——质量属性
    DATAX 从scv到csv 从csv到mysql
    DATAX避坑点——MySQL到MYSQL,某个垃圾教程(简书)中,误导新手
    DATAX 按照官方实例 python datax.py ./stream2stream.json 乱码
    Python中plot使用方法小白的福音
    Python 最简实现逻辑回归,针对二维数据进行机器学习
  • 原文地址:https://www.cnblogs.com/tecdat/p/11465455.html
Copyright © 2020-2023  润新知