如何自学网络meta分析(以R软件的Gemtc安装包为例)

我从2014年开始自学网络meta,在一步一个脚印的艰辛历程中不断的尝试,最后终于把网络meta分析的整个过程弄懂了。而且在本专业的学术期刊上发表了SCI(影响因子4.04)。总结个人自学的经验,我认为:1、除了上丁香园淘淘宝,看看精华帖,问问大神之外,还要勤于上国外的网站看看;2、坚持阅读四大综合期刊上的网络meta,不一定要你的专业领域,只要是网络meta分析的文章都可以拿来阅读。
相信很多园友在自学网络meta分析之前都会想去逛一下丁香园查找一些相关资料,不过没有让你失望,园里真的有不少帖子,包括chao0803 版和yiyuexiong版的帖子,真心感谢二位的贡献。当时看完上面的帖子后,我也自己尝试用WinBUG软件和R软件按照楼主的步骤step by step地操作,结果总是遇到一些错误。自己又不懂程序,有时候连报错的信息都看不懂。当然,我不是质疑这些帖子,毕竟很多园友在这里已经取得了成功。我认为要么是有些细节错误没有发觉,要么就是程序已经更新的原因。不管是哪种原因,对于一个初学者来讲实在是很头痛的事情。
因此找到原始的代码并且能够自己利用之很重要。现在就以R软件的gemtc实现网络meta分析为例,讲解一下如何获取代码。
这是R软件安装包的官网https://cran.r-project.org/web/packages/available_packages_by_name.html
很多实现网络meta分析的安装包说明(所谓说明就像是手机的使用说明,它会提示你如何操作这个软件,调动安装包从而运行结果)都可以在上面下载,比如R2WinBUG、Gemtc和Pcnetmeta的安装包说明等等。
找到Gemtc这个选项,然后点击进去。就会出现如下界面。
上面那个箭头所示的就是gemtc安装包的使用说明书。下面的箭头所示的是这个说明书里示例用的数据,把这文件下载下来(存放在哪里都可以,启动R软件后按照说明书输入命令后,就能把数据召唤出来了,但注意要把压缩文件解压开)。
先不着急着启动R软件,先让我把这个说明书解读一下。
箭头所示的地方时这个说明书最近的更新时间(我上次查看时时更新到2015年9年,这次又更新到2016年3月了,更新很快)。基本上每个安装包被编程出来后不可能完成所有的分析,这就是为什么后来要不断的去更新的原因。更新要么是增加安装包的分析功能,要么就是稍微修改了一下命令。如果是后者而言,园友就要警惕了,当你更新安装包后,一旦输入旧的命令,系统就会报错。这也是我前面提到的。写此贴目的就在于给园友提供一个自我纠错的方向——查找更新的代码,然后根据使用说明书step by step的实现。
这是说明书的目录
估计园友还没有反应过来,因为看不懂 这些个命令究竟是做哪个步骤的,但是当我说mtc.network是制作网络图,mtc.nodesplit是做节点分析(也就是一致性分析),mtc.anohe是做异质性分析,rank.probability是做排序用的时候,园友是否心中开始激动了。因为使用一个安装包即可实现完整的网络meta分析!
接下来是对这个安装包的介绍,说明这个安装包的开发起源于Van Valkenhoef等人2012年发表的文章(绿色下划线所示)。为了方便查阅,我把这篇文献的索引贴在下面。并且它提醒我们使用这个安装包之前还需要安装另一个rjags安装包和JAGS软件。
G. van Valkenhoef, G. Lu, B. de Brock, H. Hillege, A.E. Ades, and N.J. Welton (2012), Automating
network meta-analysis, Research Synthesis Methods 3(4):285-299. [doi:10.1002/jrsm.1054]
接着我们翻到下面这一页,以制作网状图这个命令作为例子,详解如何充分的使用这个说明书。
其实这个说明书有些园友已经看过了,并不新鲜,但是不懂R软件的园友看到这张说明书就开始退缩了。英文虽然很多,但是稍微耐心一点,还是不难理解的。
不详扯了,继续讲解一下这上面的说明是什么意思。
1)说明书上黄色加亮标注的地方是说明这条命令的功能,create an mtc.network就是增加一个网络,也就是加载数据并制作网络图。
2)Usage是这条命令的基本框架。
mtc.network(data.ab=data, treatments=NULL, description="Network",data.re=NULL, studies=NULL, data=NULL)
## S3 method for class 'mtc.network'
plot(x, layout=igraph::layout.circle, dynamic.edge.width=TRUE, ...)
3)而下面的Argument则是对框架里的参数进行具体的说明。例如data.ab表示以arm-level data的形式录入的数据集(为了写作的连贯性,arm data是什么意思会在后面讲解),而data.re则表示以relative effect data的形式录入的数据集,treatments是指你要研究的干预措施集,description是指对网络的简单描述。plot后的x,layout, dynamic.edge.width等code则是对网状图的设计,比如可以根据研究的数量调整线条的宽度等)
4)Detail是一些补充,比如纳入的研究中如果有单臂的,系统会报错;要将WinBUG的数据装换为Gemtc的数据形式,可以使用mtc.data.studyrow这条命令。
5)Value是对上面的参数进行设置,比如description方面可以随便描述一下,比如写“Example”,也就是description=“Example“,treatments和data.re也是一样,即给你的干预措施集和数据集起个名字,比如就分别起个treatments和data吧,那就写treatments=treatments,data.re=data。
6)Exmple则是示例。我觉得这个才是重点,上面写得再多,不拿个来示例的话我也看不下去了。
其他的命令的使用同上。就这样,整个说明书已经讲解完毕,是不是有点晕菜了。不用担心,接下来用示例step by step讲解一下。
箭头里指示的地方就是上面谈到的干预措施集、数据集的命名及网络图的描述,如果你的命名有改变,下面的命令里也要有相应的改变,所以不知道这些指代意义的园友可能也会栽在这里。依样画葫芦,也要知其然啊!而黄色加亮的部分是数据集和干预措施集中需要的项目内容。比如前者需要id和description,这里要注意一下,id是干预措施的简单缩写,只能用字母的形式表示,而description则是干预措施的具体说明,想写什么就写什么。而对于二分类的数据,数据集需要study ,treatment,responders,sampleSize四个内容,responders是每个组的事件发生数,sampleSize则是每个组的人数。再看一下这个数据集的数据录入形式,是不是和STATA的数据集输入形式不一样,它把一个试验两个组的数据分成了两行书写,
01 A 2 100
01 B 5 100
相当于把一根火柴拆成了两半,这就是arm-lever的数据形式。如果是3臂就拆成3个,以此类推。然后园友还质疑怎么接下来的这条命令network <- mtc.network(data, description="Example", treatments=treatments)貌似少了一些项目。没错!说明书上对一些参数的描述太详细了,面面俱到,但是这里的示例为了方便说明所以比较简洁。至于更多的功能可以根据读者的需要自行设置。所以这有点考验园友的应用能力了,哈哈。就这样,当你启动R软件(注意还要安装JAGS软件),加载和安装gemtc和rjags安装包后,你只要将你的数据套入这条命令中,然后复制这条命令到R软件里就可以运行出结果了。
以上就是对gemtc安装包使用说明书的讲解。看到这里园友应该明白这个说明书该怎么使用了吧。很多园友在使用R软件的R2WinBUG和gemtc安装包实现网络meta分析的过程中经常报错,但是又不知道什么原因,所以在各大循证医学群和丁香园论坛跟贴询问,很多还是不了了之。但是若是能自己动手,将你的代码和这些更新的安装包使用说明书进行比较,可能会发现自己代码中的错误。若是找不出原因,亦可以直接使用说明书里的代码。毕竟老外是严谨的,代码很少会出错,反正我还没遇到过。只要复制粘贴代码就就能跑。 将这些使用说明书和张前辈等人发表的系列网络meta操作的文章结合起来,对初学者不失为一个好办法。
下面还会继续和园友一起探讨用Gemtc实现网络meta分析。之前张前辈等人发表了《R软件gemtc程序包在网状Meta分析中的应用》一文,但是该文中只简述了应用gemtc实现网络meta分析的部分操作。但是使用RR、HR作为效应值的网络meta分析以及一致性分析、异质性分析等因篇幅有限未能提及。因此,小生班门弄斧,将在这些方面继续展开。希望能和各位能相互交流,共成长!
最后编辑于 2017-01-10 · 浏览 13.8 万