关键词:stata; Meta分析; 随机对照试验;有序数据; gllamm命令
一、案例介绍
本文以模拟数据为例,为研究采用针灸干预联合药物方案对治疗原发性失眠症的效果,现收集了12篇研究报道,均以治疗效果作为主要结局指标,以此来比较采用针灸干预联合药物方案与采用苯二氮卓类药物治疗原发性失眠症是否有统计学差异,数据见表1,案例数据可从“附件下载”处下载。
二、问题分析
(一) 有序数据分析策略
有序数据的水平之间存在等级和程度的差异,虽然测量尺度可以改变,但它们的相对顺序和等级却不能改变,等级间隐含着一种不能用具体的数值确切表达的数量大小概念。因此,它既与定量观测所获得的计量资料有所不同,也与通过定性观测所获得的计数资料有所区别,可以把它看成是介于计量资料与计数资料之间的一种半定量的观测资料。对于这种资料的Meta分析,既应该考虑其结果的多分类形式,又要考虑到结果的有序性。
对于有序数据的Meta分析,可以根据不同情况视为二分类数据、连续型数据来处理,也可以直接使用原始有序数据分析。
- 有时有序分类变量的水平较多,如一些量表检测结果可分为5个水平或者10个水平;不太容易以比例优势比模型处理,而且也无必要。此时,可视为连续型数据进行Meta分析,可采用均数差和标准差等效应指标。
- 如果有序分类变量的水平较少,可通过合并相邻分类,变为二分类数据进行Meta分析,此时可采用OR、RR、RD等效应指标。需要注意的是,将有序分类变量降维为二分类变量时,选择不同的切割点会得到不同的结果,需要事先计划进行敏感性分析,以评估切割点的选择对结果的影响。
- 如果有序分类变量的水平比较少,或者降维为二分类变量时切割点的选择对结果影响很大时,可考虑采用原始有序数据策略,用比例优势比(proportional odds ratio)模型进行分析,该策略比将数据二分化分析效能更高。
- 此外,还可以选择异方差选择模型和多水平混合效应模型对有序分类变量进行Meta分析。
(二) 比例优势比模型在Meta分析中的应用
采用比例优势比模型对有序变量进行Meta分析时,可分为一步法和两步法。
- 一步法:采用oglm、oglm9命令拟合固定效应模型,gllamm命令拟合随机效应模型。该法操作简单,但不能绘制森林图、漏斗图。需要注意的是,这些命令不是Stata软件的官方命令,使用前需要先安装命令。详见Stata外部命令的下载与安装。
- 两步法:第一步,可以采用ologit命令拟合有序logistic回归模型,获得每项研究的效应量及其标准误;第二步,拟合经典Meta分析的固定或随机效应模型,对第一步产生的数据进行合并。该法可以绘制森林图、漏斗图。
本文介绍采用原始有序数据策略一步法拟合随机效应模型,在stata软件中使用gllamm命令实现随机对照研究(有序变量)的Meta分析相关操作。
三、软件操作及结果解读
(一) 数据整理及读取
数据读取,可参考stata数据的读取及结果保存。在数据栏目中可以查看全部数据情况,数据集中共有6个变量和24个观察数据(12项研究),6个变量分别代表纳入研究(study)、干预措施(treat)、临床控制(level4)、显效(level3)、有效(level2)、无效(level1)。
(二) 拟合比例优势比模型
首先读入数据,并进行Meta分析前的数据准备。通过数据重塑,将宽数据变为长数据;产生新变量effect(表示疗效,分为1、2、3、4四个级别)和treat(1表示针灸干预治疗,0表示苯二氮卓类药物治疗)、wtl(频率加权);并将字符串变量study变为数值型变量,以适用于gllamm命令分析。
代码如下:
gen i=_n reshape long level, i(i study) j(effect) rename level wt1 encode study, gen(studyid)
其中,rename level wt1表示将变量level重命名为wtl,以便用于weight()选择项;encode study, gen(studyid)表示将字符串变量study变为数值型变量。
接下来,将变量“treat”视为固定效应,拟合经典的两水平随机效应模型(注意需要提前运行代码ssc install gllamm安装命令),代码如下:
gllamm effect treat, i(studyid) link(ologit) fam(binomial) wei(wt) eform
该命令参数介绍如下:
- i(studyid):定义变量层次或嵌套整群,一般从低水平到高水平;
- link(ologit):分布族相对应的函数,此处为binomial对应的连接函数ologit函数;
- fam(binomial):分布族family选择项binomial;
- wei(wt):用于指定频数权重
- eform:分类变量的输出为对数形式,eform将其还原为OR。
如果将变量“treat”视为随机截距和随机斜率,采用gllamm拟合一个随机截距和随机斜率模型,需要产生一个新变量,可命名为“treatment”。与上述基本随机效应模型中“treat”变量中干预为1、对照为0不同,新变量干预为0.5,对照为-0.5;在使用gllamm拟合随机效应模型之前,用eq命令指定截距和斜率,过程如下:
gen treatment = treat-0.5 gen cons = 1 eq int:cons eq slop:treatment gllamm effect treatment, i(studyid) link(ologit) fam(binomial) wei(wt) nrf(2) eqs(int slop)nocorr adapt eform
(三) 结果解读
从结果图2可知,合并效应量(结果中“treat”一行)的点估计及95%CI为2.62 (2.03, 3.37),提示与苯二氮卓类药物治疗相比,针灸干预联合药物方案治疗原发性失眠症的疗效提高一个及以上等级的可能性增加了162%。另外,“_cut11”等结果表明我们分析的数据的潜变量被分为3组,这些潜变量是连续型数据,一般情况下,不用结果解释。
从结果图3可知,合并效应量(结果中“treatment”一行)的点估计及95%CI为2.65 (1.85, 3.82),提示与苯二氮卓类药物治疗相比,针灸干预联合药物方案治疗原发性失眠症的疗效提高一个及以上等级的可能性增加了165%。
四、知识小贴士
- gllamm是Stata拟合广义潜变量和混合效应模型的命令,操作语法结构为:gllamm depvar [varlist][if exp][in range],[选择项]
重要的选择项为:
- depvar为因变量;
- 分布族family(family)选择项中有gaussian、poisson、gamma、binomial;
- 连接函数link(link)是分布族相对应的函数,前三者分别对应(link)是identity、log、reciprocal;binomial对应的连接函数比较多,如logit、porit、ologit等;
- i(varlist)是定义变量层次或嵌套整群,一般从低水平到高水平,如i(paitentstudy);
- weight(varname)用于指定频数权重。