网状Meta分析中对R软件nlme程序包的开发与应用

2017-03-22 12:52王凤岐
软件工程 2017年1期

摘 要:nlme程序包是以广义最小二乘法和线性混合效应模型的基础上研发的,能够对R软件进行广义线性和非线性混合的Meta分析。Nlme程序包能够对网状Meta进行分析,在此过程中要转换数据,这样才能够使其为对数值进行之后运算。本文主要介绍了R软件nlme程序包的网状Meta分析过程,并且详细介绍了数据转化的过程步骤。

关键词:网状Meta;R软件;nlme程序包;开发和应用

中图分类号:TP311 文献标识码:A

1 引言(Introduction)

目前,网状Meta分析在不断的发展,基于此,越来越多的软件被陆续研究及开发出来,运算模型也逐渐进入到人们的视野中,受到人们的密切关注,其中包括广义线性模型。广义线性模型的主要特点就是不强制性的改变数据的自然度量,并且GLM模型中的Y分布能够以各种形式指数分布(要想详细了解网状Meta分析及广义线性模型的读者建议阅读参考文献[5])。

nlme程序是基于S语言通过S-PLUS软件实现混合效应模型分析的一款软件。所以,它不仅能够进行线性模型,还能够进行非线性混合效应模型分析,nlme程序还能够实现Meta分析。本文就以《R软件nlme程序包在网状Meta分析中的应用》文中的实例进行分析。

2 软件和程序包的安装和加载(The installation and loading of the software and package)

要想研究网状Meta分析对R软件nlme程序包的开发和应用,首先就要安装R软件,其安装根据电脑提示步骤完成即可,本文使用的是R-3.0.1。完成上述步骤以后,安装nlme程序包,安装程序包的命令为:install.package(“nlme”),在程序包安装过程中,会有一个对话框,选中对话框中的CRAN安装,然后安装成功,利用library命令完成加载步骤。那么,软件和程序包就算是安装和加载成功了[1]。

3 加载数据及预处理(Data loading and preprocessing)

(1)加载数据

实现R软件nlme程序包中网状Meta分析的实现和应用主要是将因变量y变为效变量,把自变量x变为干预措施,之后根据干预措施进行比较以此计算线性关系。本文中将y设置成log,将x设置成十三种药物,并且将这些药物之间进行了相应的对比和标记[2]。

本文中具有3臂实验,那么就要将数据中的3臂实验分为2臂依次排列(详见表1),加载数据的程序为:

Linedata<-Read.table(“D:Users\Administrator\Dsektop\linedata.txt”,header=TRUE)

(2)轉化数据

线性模拟以前,要计算log和方差,那么就需要使用到metafor程序包[3]。转化数据的步骤为:

其一,通过library(“metafor”)命令实现数据包的加载和metafor程序包的安装。

其二,计算效应量或者因变量log,本例子为二分类数据,所以metafor程序包使用的是escalc命令。

其三,将变量的名称进行转换,其代码为:

Names(metadata)[8:9]<-c(“yi”,”vi”)

8:9表示的是8和9行分别对应的数据集。

(3)标示药物

之后,要对metadata数据中的药物进行相应的配对表示,运用到lme()函数中[4],标示药物使用的命令程序为:

Mark<-paste(as.character(metadata l1),as.character(metadata l2))

(4)汇总数据

数据处理以前,要对之后进行预处理的数据进行总结和搜集[5],其主要命令为:Totaldata<-cbind

(metadata,matrixdata,mark)

说明:kind表示序号;t1、r1表示干预组治疗方案、例子总和;t2、r2表示对照组治疗方案、例子总和;A-E表示十三种药物中的五种都是原始数据;yi表示通过计算得出的研究组效应量对数;vi表示通过计算得出的研究组方差;make表示药物配对的标记结果;本例子中的lme()函数的最终数据集就是变量yi和mark。

4 实现网状Mata分析(Implementing the network meta-analysis)

在选取网状meta分析功能软件以前,要通过mtc.mode()命令设置model,命令为:

model<-mtc.model(network,type="Consistency",

n.chcain=3)[7]

其中yi-0+B+C+D+E是固定不变的,-的左边表示效应量,右边表示13种药物。对于自变量要设置n-1个哑变量,其他的用0表示。另外,还要将A换为0进行计算,make表示药物标记。因为不同数据精准计算的不同需求,有时候还要设置参数,包括算法、权重及相关性。运行以上代码之后进行汇总,将A药物作为例子,从而得出命令:summary(lme)。

网状数据结构的分析和内涵为:

>summary(network)

Decription

[1]"MTC dataset:Example"

'Studie per treatment'

A B C D E

25 4 5 8 4

'Number of narmstudise'

2 arm 3 arm

52 12

5 绘制图形(Drawing graphics)

最后一步就是通过R软件的绘图功能,绘制与数据结果相关的图形[8]。下文中的图形就是使用R软件的形式保存的图形。

(1)网状关系图

nlme程序包中并没有绘制网状关系图的功能,那么就要通过R软件进行。

(2)相关图形

nlme程序包绘制的图形和命令有四种:其一,收敛诊断。其命令为gelman.plot(results);具有十三个gelman plot,通过此命令显示“par(mfrow=c(3,5)) nlme.plot(results,auto.layout=f)”其二,轨迹和密集。其命令为plot(results);其三,森林。其命令为forest(results);其四,网状关系。其命令为plot(network)[9]。

6 结论(Conclusion)

网状Meta分析在GLM中的运用正在不断的创新和突破,但是在比较方面还是存在一系列的问题,尤其是在图形绘制方面,另外,其中还要添加一系列的一致性的參数。在进行分析的时候,要先转化数据。nlme程序包为Meta分析打开了全新的方式和思路,目前其还有许多需要完善的部分,比如一致性、异质性的检测等,其最大的缺点就是没有检测功能。社会在不断的发展,nlme程序包也会不断的完善,并且被广泛应用到Meta分析中。

参考文献(References)

[1] Fu R,et al.Effectiveness and Harms of Recombinant Human Bone Morphogenetic Protein-2 in Spine Fusion:a Systematic Review and Meta-Analysis[J].Annals of Internal Medicine,2013,158(12):890-902.

[2] Ten Broek R P,et al.Different Surgical Techniques to Reduce Post-Operative Adhesion Formation:a Systematic Review and Meta-Analysis[J].Human Reproduction Update,2013,19(1):12-25.

[3] Ghooshkhanei H,et al.Risk Stratification and Prognosis Determination Using(18)F-FDG PET Imaging in Endometrial Cancer Patients:a Systematic Review and Meta-Analysis[J].Gynecologic Oncology,2014,132(3):669-676.

[4] 张超,等.应用R语言netmeta程序包实现网状Meta分析[J].中国循证医学杂志,2014(5):625-630.

[5] 张超,玉明,曾宪涛.R软件nlme程序包在网状Meta分析中的应用[J].中国循证医学杂志,2014(3):355-360.

[6] YI Yuexiong.网状Meta分析图形结果解读[J].中国循证医学杂志,2015(1):103-109.

[7] 张超,徐畅,曾宪涛.网状Meta分析中网状关系图的绘制[J].中国循证医学杂志,2013,13(11):1382-1386.

[8] 汪徐林,等.Stata软件在网状Meta分析中的应用[J].现代预防医学,2016,43(19):1387-1391.

[9] 罗美玲,等.在R软件中实现单个率的Meta分析[J].循证医学,2013,13(3):181-184.

作者简介:

王凤岐(1981-),男,本科,讲师.研究领域:软件工程.