作者简介:罗美玲(1987-),女,土家族,湖南湘西人,硕士研究生,从事疾病预防与控制。
目的介绍在Stata软件中实现剂量反应关系的Meta分析。方法在Stata软件中,应用实例数据进行Meta分析。利用glst程序包进行剂量反应的Meta分析,并绘制非线性(和)或线性剂量反应曲线。结果应用Stata软件可以实现线性和非线性剂量反应关系Meta分析,分析结果显示饮酒是结直肠癌的危险因素,且存在线性的剂量反应关系。结论Stata软件可以实现剂量反应关系的Meta分析,且功能强大,实用性强。
Objective To introduce the method of dose response meta-analysis in Stata software.Method We loaded meta-analysis package, and analyzed the example data in R software.Results Meta-analysis for linear and nonlinear dose-response relations can be realized in Stata software, the alcohol intake is a risk factor for colorectal cancer, and a linear dose-response relation is found between alcohol intake and colorectal cancer.Conclusions Dose response meta-analysis can be realized in Stata software.
剂量反应关系的Meta分析是一类新型的Meta分析方法,相比标准的二分类资料及连续性资料的Meta分析,此类Meta分析可以同时处理三个及以上组别的数据,用以评价某一暴露因素的增长水平与患病风险是否存在剂量反应关系[ 1, 2]。剂量反应关系Meta分析的统计方法较为复杂,与标准Meta分析不同,不能在Review Manager软件中实现。Stata软件是一个用于分析和管理数据且功能强大的实用程序,由美国计算机资源中心(Computer Resorce Center)研制,同时具有数据管理、统计分析、绘图、矩阵计算和程序语言的特点[ 3]。Stata软件在Meta分析中的运用已经被逐渐开发出来,可以实现多种分析功能[ 4, 5, 6]。目前国内介绍剂量反应关系Meta分析在相关软件中应用的文献较少,仅张天嵩、曾宪涛等简要介绍了剂量反应关系Meta分析在Stata软件中的实现方法[ 2, 7],但没有具体介绍实现剂量反应关系的步骤及线性和非线性曲线图形的绘制方法。本文结合实例在国内首次探讨Stata软件实现剂量反应Meta分析的方法,以期为此类Meta分析提供方法学指导。
Stata是一款收费软件[ 7],在其官方网站购买使用权限后,Stata公司即会通过邮件给用户发送软件下载地址和激活码,其官方网址为www.stata.com。最新版本为Stata13.0,本文所用版本为Stata12.0。
根据下载地址完成Stata软件的下载。下载安装成功后,点击电脑桌面上的Stata图标,即可打开Stata软件。可以看到页面最上方的菜单栏,即:File、Edit、Data、Graphics、Statistics、User、Window、Help;四个窗口栏分别为:
Review(历史窗口):记录着自启动Stata软件以来执行过的命令;
Variables(变量窗口):记录着目前Stata软件内存中的所有变量;
Results(结果窗口):显示执行Stata命令后输出的结果;
Command(命令窗口):在此窗口输入想要执行的Stata命令。
本次研究数据来自于Cho等发表的“Alcohol intake and colorectal cancer: A pooled analysis of 8 cohort studies”研究[ 8]。本次研究需要收集的数据格式是:研究的作者(id,字符型)、研究类型(type,字符型,分别用cc、ir、ci表示病例对照研究、人年队列研究和累计发病数队列研究)、剂量(dose, 数值型,一般取原始暴露剂量区间的中位数)、病例(cases, 数值型,各暴露剂量区间的病例数)、总数(peryears,数值型,各暴露剂量区间的随访人年数),效应量[logrr,数值型,各暴露区间相对于各参照组的相对危险度(relative risk,RR)的自然对数值],效应量的标准误(se,数值型,各暴露剂量区间的效应量logrr的标准误,如果原始研究中只提供了RR值的95%CI,在软件中可以计算se)。Cho的研究数据存在于glst开发者Orsini的网站里,可以自由调用,具体数据见 表1。
剂量反应关系的Meta分析是基于广义最小二乘法(generalized least squares method)即通过“glst”命令实现。安装程序包及调用数据的命令如下:
ssc install glst use http://nicolaorsini.altervista.org/data/ex_alcohol_crc
在glst程序包中,“glst”是进行剂量反应关系Meta分析的主要函数,其命令格式如下:
glst logrr dose, se(se) cov(peryears cases) pfirst(study type) eform
其中logrr为RR的自然对数值;dose为剂量;se为效应的标准误;cov表示covariance,用于协方差矩阵估计的方法,即“gl”(Greenland and Longnecker);pfirst表示pool-first法;eform可以将计算出来的结果还原为rr值;系统默认的合并剂量反应关系的方法为“fixed”(固定效应模型),如果要用随机效应模型可直接加上“random”。
如果原始文献里面没有提供logrr和se,可以通过以下命令进行计算,lb和ub分别为调整效应量rr 95%可信区间(confidence interval,CI)的上下限:
gen double logrr=log(adjrr)
gen double loglb=log(lb)
gen double se=((logub-loglb)/(2∗invnorm(.975)))
剂量反应Meta分析的本质就是回归分析,其中有一个重要的假设就是通过选择合适的链接函数,来定量评价效应量与暴露剂量的关系。如果非线性回归能满足要求,就可以进行非线性剂量反应的Meta分析,否则就为线性剂量反应的Meta分析。本文首先进行非线性剂量反应关系Meta分析,然后根据计算出来的关键变量对其线性情况进行统计学检验,根据检验结果判断效应量与暴露剂量符合线性或非线性关系(操作见下文实例演示),确定进行线性或非线性剂量反应关系Meta分析。
3.2.1 非线性剂量反应Meta分析
非线性剂量反应Meta分析使用限制性立方样条(restricted cubic spline)来作为链接函数。回归样条(regression spline)本质上是一个分段多项式,但它一般要求每个分段点上连续并且二阶可导。即:设自变量数据的范围在区间[a,b],并根据需要分成k个段 a=t0<t1<…<tk-1<tk=b,在每个区间[tk-1,ti)分别用一个多项Si(x)式表示,则回归样条f(x)= Si(x),当x∈[tk-1,ti),并且fn(x)在[a,b]存在连续。限制性立方样条是在回归样条的基础上附加要求:样条函数在自变量数据范围两端的两个区间[t0,t1)和(tk-1,tk]内是线性函数,满足上述性质的样条函数通常用Rcs(x)表示[ 9],在Stata软件中需要使用到mkspline函数进行限制性立方样条拟合,区间的分段使用的是百分位数法,_pctile函数用来产生剂量的四个百分数,即产生四个回归样条。各命令如下:
capture drop doses∗
_pctile dose, percentile(5 35 65 95)
ret list
mkspline doses = dose , knots(‘=r(r1)' ‘=r(r2)' ‘=r(r3)' ‘=r(r4)') cubic displayknots
glst logrr doses∗, se(se) cov(peryears cases) pfirst(study type) eform
运行结果见 图1。
研究结果中8个研究无明显异质性( Q=42.05, P=0.26)。用固定效应模型进行合并是合理的,模型显著性卡方值 2=28.83, P<0.001,建立的固定效应非线性回归模型是有意义的。但剂量反应关系Meta分析中要真正确定合并的剂量反应关系是否为非线性,还要看统计学检验结果,用下面的命令可以实现:
testparm doses2 doses3
本例检验结果发现:卡方值 2=6.16, P=0.046,在0.05的水准上,拒绝原假设(即存在线性剂量反应关系),汇总结果显示饮酒与结直肠癌可能存在非线性剂量反应关系,因为 P值接近0.05,故此次对线性和非线性剂量反应关系均进行了分析。
3.2.2 线性剂量反应Meta分析
glst函数中,线性剂量反应meta分析是系统默认的分析方法。根据前面分析结果可知 P=0.046,因此需要进行固定效应模型的Meta分析,命令如下:
glst logrr dose, se(se) cov(peryears cases) pfirst(study type) eform
在Stata软件中运行后的结果见 图2。
本次研究拟合的固定效应线性回归模型是有意义的(卡方值 2=22.67, P<0.001),8个研究无明显异质性( Q=48.21, P>0.05),RR值为1.006 4。在实际生活中,由于增加1 g饮酒的危险意义不是很大,这时可以指定更大的增加量,比如:12 g的情况,在Stata中的命令如下:lincom dose∗12,eform,得到的结果为1.08(1.04~1.12),即在最低饮酒量(0克)的基础上,每增加12克,发生结直肠癌的危险增加8%。这与Orsini等利用同一数据在Stata和SAS软件中得出的结果一致[ 10]。
剂量反应关系的Meta分析最显著的特点就是可以绘制出剂量反应关系图,首先要得到画图所需的变量及其数据。
3.3.1 线性剂量反应关系曲线图
对于线性的剂量反应关系模型,在之前建立的线性模型基础上输入下面的命令,可得到线性剂量反应拟合值lrr_lin、rr_lin、95%CIlblin及ublin变量的数据:
glst logrr dose, se(se) cov(peryears cases) pfirst(study type)
predictnl lrr_lin =_b[dose]∗dose, ci(lo hi)
gen rr_lin = exp(lrr_lin)
gen lblin=exp(lo)
gen ublin=exp(hi)
产生相关变量后,可以用画图命令将数据以图的形式显示出来。如果系统提示没有安装XBLC命令,在STATA中输入help xblc,然后按照步骤进行在线安装。各命令的用途如下:levelsof显示dose不同值的排序列表;xblc计算不同因变量dose下反应变量lnrr的数值及其可信区间,at后为协变量,ref定义参照组为0剂量组;twoway为二维标绘图命令,line后面列出画图所需的反应变量95%CI上下限、反应变量及因变量,lp定义线图的形式(shortdash为点划线,longdash为长划线,1默认为实线),lc定义线图的颜色,scheme定义图背景颜色为白色,ylabel定义纵坐标,xlable定义横坐标,ytitle定义纵坐标的标识,xtitle定义横坐标的标识,margin定义页面上下边距(默认),name定义图的名称,yscale标识纵坐标的刻度为log,plotregion定义图的边线即不显示坐标暗格。画图命令如下:
levelsof dose, local(level)
xblc doses∗, c(dose) at(‘r(levels)') ref(0) eform
twoway (line lblinublin rr_lin dose, sort lp(shortdash shortdash 1) lc(black black black)), scheme(s1mono) ylabel(1 1.2 1.5 1.9, angle(horiz)) xlabel(0(5)60) legend(off) ytitle(“Relative Risk”, margin(right)) xtitle(“Alcohol intake, grams/day”, margin(top_bottom)) name(figure1B, replace) yscale(log) plotregion(style(none))
运行结果见 图3。
3.3.2 非线性剂量反应关系曲线图
对于非线性的剂量反应关系模型,在之前建立的非线性模型基础上输入下面的命令,可得到非线性剂量反应拟合值rrwithref变量、95%CI上下限 lbwithref和ubwithref变量的数据:
glst logrr doses∗, se(se) cov(peryears cases) pfirst(study type)
predictnl logrrwithref = _b[doses1]∗doses1 + _b[doses2]∗doses2 + _b[doses3]∗doses3, ci(lb ub)
gen rrwithref = exp(logrrwithref)
gen lbwithref = exp(lb)
gen ubwithref = exp(ub)
画图命令如下,各命令解释见3.3.1。
levelsof dose, local(level)
xblc doses∗, c(dose) at(‘r(levels)') ref(0) eform
twoway (line lbwithref ubwithref rrwithref dose, sort lp(longdash longdash l ) lc(black black black)), scheme(s1mono) ylabel(.9 1 1.2 1.5 1.9, angle(horiz)) xlabel (0(5) 60) legend (off) ytitle(“Relative Risk”, margin(right)) xtitle(“Alcohol intake, grams/day”, margin(top_bottom)) name(figure1B, replace) yscale(log) plotregion(style(none))
运行结果见 图4。
Meta分析是一种对同类单个研究结果进行统计分析的方法,对研究结果间异质性的来源进行检验,并对研究结果进行合并的一类统计分析方法[ 11]。剂量反应的Meta分析,是对多个原始剂量反应研究进行综合汇总,得出一个合并的剂量反应关系效应值并绘制线性或非线性曲线的一类Meta分析。近年来有关此类Meta分析的文章在国外期刊上发表数据越来越多,但在国内发表较少。主要原因是此类Meta分析的统计方法步骤较复杂,可以实现的软件操作都涉及到编程,国内尚无详细介绍此类Meta分析应用类文献。因此,本文介绍了剂量反应关系Meta分析在Stata软件中的应用,为剂量反应关系Meta分析的实现提供指导。
剂量反应Meta分析收集的数据一般至少要求三个组别以上,以每个研究最低剂量组为参照组,该研究其它剂量组均与参照组进行对比[ 3]。然后提取各剂量组的平均数剂量或是中位数剂量做为剂量组的点估计值,也就是实例数据中的dose,如果最低剂量组是开区间则假定最低值为0,如果最高剂量组是开区间则假定最高剂量组的中点值是最高剂量低值边界的1.5倍[ 1]。
在进行剂量反应Meta分析之前,需对原始数据进行二分类Meta分析,以确定是否需要进行剂量反应Meta分析。收集相关文献后进行数据整理,提取每个病例对照和/或队列研究中最高剂量组相对于最低剂量组的RR/比值比(odds ratio, OR)及95%CI,然后进行二分类Meta分析,得到效应量RR/OR合并值,如果这个合并RR/OR值有统计学意义,说明暴露与疾病之类是有关联的,再进一步进行剂量反应Meta分析探讨这种关联是否存在剂量反应关系[ 8]。在Stata软件中可以通过metan命令实现二分类资料的Meta分析,相关操作方法可参考张天嵩等编写的书籍[ 2]。
剂量反应Meta分析曲线中剂量的取值范围要求在原始研究剂量的最大值和最小值之间,不能外推至拟合剂量范围之外的数值。进行剂量反应Meta分析时涉及到线性剂量反应关系和非线性剂量反应关系的问题,一般的做法是先用限制性立方样条(restricted cubic spline)作为链接函数拟合一个非线性模型[ 9]。模型自变量如果包括四个回归样条,利用卡方检验对第二个和第三个回归样条回归系数作是否为0的假设检验,如果 P<0.05,则为非线性剂量反应关系,反之则不能认为存在非线性剂量反应关系[ 1],这时再考虑使用线性的回归模型。
本文结合实例,介绍了在Stata软件中如何实现剂量反应关系的Meta分析。Stata软件作为目前最活跃的统计软件之一,每天都有全世界的作者不停地增加或更新不同的统计方法程序包,目前已更新到Stata13.0,相信更多Meta分析方法能逐渐在Stata软件中实现。