
2017年8月份,方法学组推出了用于剂量-反应数据的合并新方法,Robust-error meta-regression (REMR) method,新方法推出了之后得到了很多学术界朋友的支持,在国际证据合并方法学领域受到了较大的关注,收获了良好的学术声誉。在之后的几年里,我们一直在推进整个剂量-反应证据合并方法学生态体系的建立,其中较为重要的一环为针对不同统计分析软件开发对应的REMR程序模块。REMR最开始给出的操作代码很长、很多、很也复杂,而且不同数据类型的代码不一样,例如二分类结局数据和连续性结局数据代码差别较大,实现起来比较困难。在REMR方法学组的努力下,实现了Stata软件REMR程序模块的开发,这将使剂量-反应数据合并过程变得简单方便。经过一个月的反复内部测试之后,第一版本于2020年6月1日正式发布。为方便大家的使用,本文简单介绍REMR模块的操作。
我们提供了两种方法进行安装。第一种方法是Stata常用的命令安装方法:
第二种方法是人工下载remr程序包,将其放置在Stata安装路径下,如:D:Program Files (x86)Stata14adobase
https://econpapers.repec.org/software/bocbocode/S458793.htm
(图片中间位置,Downloads处给出了主程序和帮助程序的下载连接)
语法是很唬人的词,无论是什么语言,提到语法,曾经那种挣扎还历历在目。不过REMR语法很简单,开发它的目的是方便大家的使用,不是唬大家的。我们提供了两种数据的模式:A:使用效应量和标准误进行分析; B: 使用四格表数据进行分析。
remr ES se dose, id(varname) category(varname) options
主程序命令是“remr”,作用是让Stata知道我们要使用“remr”这个程序来搞事情。其后有三个变量,分别是:效应量、效应量的标准误、剂量。这里效应量不简单,可以是OR、RR,也可以是Mean、MD、SMD,当然还可以是Prevelance/Incidence。效应量的标准误se,指的是以上效应量的标准误,用于计算权重,倒方差加权。dose指示的是每个研究内的每个剂量分层对应的平均剂量。“id”对应纳入的研究,category对应每篇研究内dose的分层,值得注意的是category从0开始,也就是程序将0识别为reference。
Options是可选功能,包括是否中心化,指定合并后结果的reference(默认浮动效应,也即不设定reference),使用线性还是非线性模型(默认线性),呈现哪些结果,呈现那种图等等。对于原始reference不一致的情况,需要指定进行中心化,center(#),“#”表示中心化的起始值,也就是把所有的reference都“变换”到这个值。对于需要拟合非线性的数据,使用rcs(#)来指定,“#”用于指定插入的随机节点个数,最小个数是3;也可用knots()来指定,直接指定固定节点的位置,如knots(5 25 50 75 95)。请注意,rcs是指定随机节点,knots是指定固定节点。如需要呈现表格结果,可使用table选项,将呈现每个剂量对于的效应量的结果;如果需要绘制剂量趋势图,命令默认给出普通图,还可以指定bplot绘制气泡图。
remr cases no_cases total dose, id(varname) category(varname) options
同样,首先指定主程序命令是“remr”。其次指定所使用的数据:cases no_cases total。分别表示发生例数、未发生例数、总例数,请注意,这是对应每篇研究内每个剂量分层的发生例数、未发生例数、总例数。该方式的目的是方便使用随机对照试验的数据进行剂量-反应Meta分析。其余语法与2.1部分一致,故不再赘述。
remr提供了数据储存功能,方便随时对数据进行调用。这项功能对大部分研究人员作用不大,但是对方法学家有巨大作用。例如在进行模拟研究时,需要调用并保存每一次模拟的结果,数据储存功能将极大的节省精力。我们提供了三个数据矩阵:1)结果矩阵:剂量-效应-区间;2)回归系数矩阵:beta-covariance;3)剂量矩阵(无关紧要,考虑在下一版本删除)。运行完remr程序后,即可使用该功能调出数据,例如第一和第二个矩阵调出方式如下:
我们使用一个经典的例子进行演示remr的操作。该实例探讨了BMI与肾癌发生的风险的剂量-反应关系,共纳入了8篇研究。使用命令下载数据:
use http://nicolaorsini.altervista.org/data/bmi_rc, clear
下载完成后,Stata数据窗口将会加载相关数据,界面如下:

对应的变量含义为:id表示纳入研究id,从1-8分别为第一篇到第8篇研究;author变量指第一作者和发表年份;interval变量指示剂量分层的范围,bmi表示每个分层的平均剂量; case、control、n分别表示发生例数,未发生例数,总例数;rr、lb、ub表示效应量RR及其置信区间上限下限;logor表示效应量的对数(这里变量名有问题,应该是logrr),selogor表示对数变换后效应量的标准误。
该示例数据提供了第二部分介绍的两种数据。我们首先使用效应量/标准误的数据进行演示。首先检查每篇研究里的剂量是否是从小到大的顺序排列,如果不是,请按照以下代码进行排序:
接下来就可以进行数据分析了,先用固定节点knots设置样条函数:
remr logor selogor bmi, id(id) cat(cat) knots(25 50 75) table bplot
remr logor selogor bmi, id(id) cat(cat) rcs(3) table bplot

此处给出了2张表,第一张表展示了数据类型、拟合模型(非线性)、节点个数(3个),节点的分位点(25% 50% 75%)、研究个数、R-squared等重要信息,该表为默认输出。第二张表展示了详细回归分析结果,值得注意的是,第二张表需要”table”选项才能调出。同时,第二张表给出了每个剂量对应的效应量的结果:


我们再使用四格表数据进行演示。同样,首先检查每篇研究里的剂量是否是从小到大的顺序排列,如果不是,请按照以下代码进行排序:
接着进行数据分析,用固定节点knots设置样条函数:
remr case control n bmi, id(id) cat(cat) knots(25 50 75) table bplot
remr logor selogor bmi, id(id) cat(cat) rcs(3) table bplot
请注意,对于观察性研究,四格表数据是未经过变量校正的,因此结果有诸多混杂因素。因此我们建议对于观察性研究,应使用校正后的效应量及标准误方式进行分析;对于随机对照试验,可以用四格表数据方式进行分析。
亚组分析是remr命令的特色功能,因此进行单独介绍。使用if选项可实现亚组分析。假设指定亚组的变量为age, age=1表示0-18岁,age=2表示19-65岁,age=3表示66岁及以上。我们现在想看看成年人群的结果,可以使用以下命令:
remr logor selogor bmi if age==2, id(id) cat(cat) knots(25 50 75) table bplot
第二版本将加入更多功能,这些包括但不限于:分段线性模型、非线性检验、异质性检测、categorical合并等等,敬请期待!
欢迎各位朋友、老师、同仁提出批评,您的宝贵建议将使我们做的更好!非常感谢!
1. Xu C, Doi SAR. 2018. The robust error meta-regression method for dose–response meta-analysis. Int J Evid Based Healthc 16:138-144.
2. Furuya-Kanamori L, Xu C, Doi SAR. REMR: Stata module to implement robust error meta-regression method for dose–response meta-analysis. 2020.https://EconPapers.repec.org/RePEc:boc:bocode:s458793.