本文第一大部分将介绍用R软件的meta分析数据包实现相关系数的Meta分析,第二大部分如何用R语言进行多变量的meta分析。
想获取R语言相关系数meta分析的程序模板的同学请在公众号(全哥的学习生涯)内回复“相关系数”即可。
meta数据包提供实现相关系数的Meta分析命令是:metacor(),这个命令通过加权的倒方差法运用相关系数和纳入的样本数来实现相关系数的随机效用模型和固定效用模型的合并,得到合并的相关系数及95%可信区间。具体的命令如下:
metacor(cor, n,studlab, data= NULL, subset=NULL, sm=settings$smcor)
cor为每一个纳入研究的相关系数, n为样本量, studlab纳入研究的标签向量, data为相应的的数据集,sm选项为合并的方法,包括ZCOR和COR,其中ZCOR是合并之前先做Fisher Z变换,COR是直接合并。具体的步骤如下:
library(meta)
data<-readcsv(“C:/Users/86187/Desktop/datacsv”)
录入的数据见图1。
data<-metacor(r,n,data=m1,sm="ZCOR")
在这里合并的方法用的是Fisher Z变换。对样本的相关系数做Fisher Z变换是因为Fisher Z变换可以使样本的相关系数的分布正态分布,尤其是在样本量较小的时候,这样便于进一步估计。一般来说,不管是随机还是固定效应都会先对相关系数做Fisher Z变换。只有很少的情况下才直接用相关系数直接来做分析,比如样本量很大的时候,如果直接合并相关系数,当相关系数值接近1的时候,小样本量研究得到的权重会非常大。因此在这里推荐合并的方法都用(ZCOR)Fisher Z变换。Meta分析的结果见图2。
结果显示,异质性检验Q=616, P=00461, I2=675,可以认为有统计学意义上的异质性。选用随机效用模型,COR=08427, 95%CI: 06264-09385, z=48724, P<00001, 有统计学差异。
具体的命令如下:
forest(a)
从森林图中,非常简单和直观地看到Meta分析的统计结果,见图3
关于这两个方法的介绍请看我之前公众号(全哥的学习生涯)的推送文章(如何用R语言进行meta分析,详细教程一)的内容。敏感性分析和剪补法的结果图分别见图4和图5。
通常Meta分析假定效应量来自于独立的研究,因此统计结果也是独立的。然而,许多研究不能满足独立性的假设,比如多个治疗组与一个共同的对照组比较的研究和多个结局变量的研究就可能产生效应量之间的相关。多变量meta 分析(multivariate meta⁃analysis)作为单变量meta分析的一个拓展,可合并估计多个研究的多个相关参数,这些参数可以是多个结局或多组间的比较。当同一总体中的测量结局相关时,分别对每个结局进行Meta 分析,测量结局之间的相关结构就可能被忽略。多变量Meta分析在随机对照研究中有多种应用,最简单的是在临床试验中把每个组的结局分别处理,其他的应用还有同时探索两个临床结局的治疗效应,或同时探索成本效益的治疗效应,比较多个治疗的联合试验,以及在观察性研究中评估暴露量与疾病之间的相关性,还有在诊断试验和网络干预中的应用。
本次数据来源请见文末的参考文献,主要研究肝硬化的非手术治疗方式预防其出血的危险性,以初次出血的例数为指标,其中三个组分别是:β⁃受体阻滞剂(A),硬化疗法(B),对照组(C),目的是评价这三种非手术治疗方式预防肝硬化出血的效果。,Bled表示初次出血的例数,Total表示干预组的总例数。YAC和YBC分别表示A、B两组相对于C组估计的ln(OR),即干预组的肝硬化初次出血的危险性是对照组的倍数的自然对数;SAA、SBB和SAB则表示其对应方差及两者之间的协方差。对于包含0的研究(研究10和研究20),在每个组增加05个初次出血的例数。整理后见表1。
随后安装调用程序包,并进行加载:
installpackages(‘mvmeta’)
library(mvmeta)。
随后将肝硬化初次出血整理后的数据集data(至少包含YAC、YBC、SAA、SAB、SBB变量)保存为csv格式,然后利用下面命令将其导入R语言。
mvmeta 的语句:mvmeta(formula,S,data,subset,method=“reml”,bscov=“unstr”,model=TRUE,contrasts=NULL,offset,naaction,control=list())
其中formula 表示结局变量名称(即YAC、YBC);S 表示研究内(协)方差(即SAA、SAB、SBB);data 表示数据集名称;method 表示所用的估计方法:固定效应模型时选择FIXED;随机效应模型时则选择
限制性最大似然估计(REML)、最大似然估计(ML)、矩估计(MM)、方差成分法(VC)的其中之一,默认为REML。由输出结果中Q 检验的P 值和I2 统计量来判断异质性以及选择何种效应模型。
mvmeta包中主要提供了多变量Meta分析与多变量的Meta 回归,另外也提供了单变量的Meta 分析和Meta 回归。但对于后两者,在R 语言中的metafor、meta、rmeta 及metalik 等包提供了更多、更详尽和有效的功能。多变量Meta 程序为library(mvmeta),调用mvmeta软件包。
model<-mvmeta(cbind(Ya,Yb),S=S,data=cirrhosis)
model <- mvmeta(cbind(Ya,Yb)~X,S=S,data=cirrhosis),此处X代表协变量。
model<-mvmeta(Y,S=S,data=cirrhosis),此处Y为单变量的效应量,S为效应量方差。
model<-mvmeta(Y~X,S=S,data=cirrhosis),此处X代表协变量。
运行以上程序后,最后将结果输出。
单变量和多变量Meta分析都是采用ln(OR)值做分析。单变量Meta分析时YAC和YBC的Q检验P 值均小于005,I2统计量分别为577%和778%。多变量Meta分析Q检验P<005,I2统计量为739%。可知两种Meta 分析均存在异质性,都用随机效应模型。估计方法选择默认的REML法。
表2 是单变量Meta 分析结果,可得:AC 与BC的OR 值及95%可信区间分别为05281(02802,09955)、05406(03095,09443),表明初次出血的危险性由于干预而降低,即β⁃受体阻滞剂、硬化疗法可以预防肝硬化出血,两者为保护因素。
多变量Meta 分析的结果:YAC 为-06755(-13073,-00438),YBC 为-05938(-11444,-0043 2),研究间相关系数为0436 5(见表3),A组与B组的治疗效果呈正相关。OR 值及95%可信区间分别为0508 9(02705,09571)、05522(0318 4,0957 7),多变量Meta 分析的结果说明β⁃受体阻滞剂预防肝硬化出血的效果是最好,其次是硬化疗法。OR 值的95%可信区间不包含1,上下限均小于1,说明两种疗法与对照组比较的初次出血危险性均小于1,差异有统计学意义。
最后,如果屏幕前的你对R语言学习还有什么问题或者看法,可以在我的公众号(全哥的学习生涯)给我留言,公众号里也有我的个人****,我也希望可以结合更多志同道合的伙伴。
感谢你的阅读。
采编自 DataMiningWithR
21 观察各个变量数据的规范性
几乎每个变量都有异常值存在,多是异常大值
22 观察变量间的相关性
23 双变量间的相关性
由上可知,"oPO4"和"PO4"高度相关,达到091
24 观察单个变量的数据分布情况
左图可明显判断异常值的存在,右图可展现数据在不同范围内的分布集中度
31 了解缺失值的基本分布情况
32 直接删除缺失值,在缺失值占比很少的情况采用
33 基于一定的规则填充缺失值
41 数据准备和聚类预览
初步判断,可分为4组
42 层次聚类
43 kmeans均值聚类 (1)
43 kmeans均值聚类 (2)
41 盖帽法处理异常值
即分别设定数据的上下限,高于上限的用上限替换,低于下限的用下限替换
42 盖帽法处理异常值后重现考察数据的分布情况
《R语言404软件》百度网盘资源免费下载:
3ts7
R语言404是一款专业的统计建模软件,与其它建模软件不同的是这款软件完全免费、开源,所以深受大家的青睐。R软件拥有数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图等多种功能,主要用于统计分析、绘图、数据挖掘。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。
R语言作业是指在学习R语言编程过程中,教师布置给学生完成的任务或项目。这些作业旨在帮助学生更好地理解和掌握R语言的编程技能,以及在数据科学、统计分析、数据可视化等领域中应用R语言的能力。
如果你不知道如何完成R语言作业,可以采取以下措施:
1 学习资料:找到一些针对R语言的学习资料,例如教程、书籍、网课等,系统地学习R语言的基础知识和应用技能。
2 寻求帮助:和同学一起讨论、交流,或者寻求老师的帮助。也可以在网上寻找相关的解决方案和资料。
3 找辅导老师:如果你仍然感到困难重重,你可以寻找一位专业的辅导老师,他们可以提供一对一的指导和支持,帮助你解决R语言作业中的问题,并帮助你提高编程技能。
如果以上渠道不能很好解决你在课业上的困难,那么咨询专业的留学生辅导机构也是不错的选择,选择口碑良好的平台可以帮助我们避免踩坑,比如英国翰思教育这家就很不错。
最后,学习R语言编程不是一件容易的事情,需要进行长时间的练习和实践,并且需要锻炼编程思维和逻辑能力。持之以恒,勇于尝试,相信你一定能掌握R语言编程技能,顺利完成R语言作业。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)