剂量-反应Meta分析之线性模型
在探讨自变量与因变量之间因果关系时,通常可以建立一个以自变量为X,应变量为Y的回归方程[1]。通过建立的回归...
在探讨自变量与因变量之间因果关系时,通常可以建立一个以自变量为X,应变量为Y的回归方程[1]。通过建立的回归模型,我们可以用观察值估计未知的线性或非线性趋势。剂量-反应Meta分析模型也是一种回归方程,既包含线性模型也包含非线性模型。线性模型即一次函数模型,反应自变量与因变量之间的线性关系;通过对线性模型引入二次项和(或)三次项甚至高次项,可用于拟合自变量与因变量之间的非线性关系[2]。在循证实践中,这些非线性模型在拟合非线性趋势时往往能取得较好的逼近效果,并且可以通过改变模型中的函数项的次数或者通过插值等方法对非线性趋势进行调整,能适用于大多数情况。目前剂量-反应Meta分析中的线性模型对线性趋势预测效果则欠佳,特别是当自变量与因变量J-型,U-型,S-型,V-型等关系时,其趋势并非单一走向,传统线性模型无法准确逼近。本文引入一类新的线性模型,分段线性模型,可以很好的解决这个问题。本文将从基础知识、模型、方法学三方面进行展开探讨,并以一实例演示,与传统线性Meta分析模型进行比较。
1 传统线性模型
- 1.1 模型表达式
Yj表示在结局指标发生风险在第j层暴露水平的取值,期望值为B1Xj;Xj则对应第层暴露水平的取值。B1是待估参数,也即回归直线的斜率。ε表示随机误差项,即标准误,满足均值E(ε)=0,由于异方差的存在,因此其方差不等且协方差不为0[4]。该函数被强制通过原点,也就是在参考剂量暴露水平时对应零风险。继续以表示纳入研究,Meta分析模型则可表示为:
因为该模型并不完全满足回归模型的基本假定,因此参数估计不能使用普通最小二乘法,而需要通过广义最小二乘法[4]方可计算单篇研究中的回归斜率及其置信区间。因变量的随机误差可通过《剂量-反应Meta分析之限制性立方样条函数在模型中的应用》一文[5]中给出的公式求出。在此基础之上,我们对单篇研究的斜率及进行加权合并,得到合并后的回归斜率
,如下:
我们求出斜率后,就可以知道,实际上,我们最终感兴趣的结果也即这个期望值。该公式也可以简化为矩阵形式写出:
1.2 模型的意义
在循证实践中,单篇研究的暴露水平分布往往不同,如最低暴露剂量不一致,导致函数中暴露基线差异大。为避免此种情况的发生,我们在进行线性剂量-反应Meta分析时,通常以合并后的斜率来表示自变量与因变量之间的关系。以公式(2)为例, X每变化一个单位,对应Y则变化
个单位。当然,这种变化可以显著也可以不显著,我们可根据假设检验来判断:
,计算该零假设成立的情况下,观察结果在样本分布中可能发生的概率[1]。
1.3 操作代码
多种软件可以进行线性剂量反应Meta分析,我们以Stata/SE12.0软件为例,使用基于广义最小二乘命令实现代码如下(当然也可以使用Metareg等代码实现):
encode study , gen(studynum)
gen double logrr=log(adjrr)
gen double logub=log(ub)
gen double loglb=log(lb)
gen double se=(logub-loglb)/(2*invnormal(0.975))
glstlogrr dose , se(se) cov(n case)pfirst(id studynum) ts(r)
lincom dose*1 , eform
关于代码的意义及解释请参考《应用STATA做Meta分析》一书[6]相关章节及《应用 R软件dosresmeta程序包和mvmeta程序包实现剂量-反应关系Meta分析》一文[2]相关内容。
2 分段线性模型
分段线性模型主要是针对存在分段线性趋势的分布的情况。模型可以用多种函数表示,为方便读者理解,我们与系列文章[5]保持一致,使用分段线性样条函数[7]。也是对经典限制性立方样条函数法下的剂量-反应Meta分析模型缺陷的一种补充。
2.1 模型的表达式
跟限制性立方样条函数类似,直线样条函数也是通过节点连接的分段直线函数,需满足每个节点处连续。假设以Ki表示节点
,以单篇研究为例,模型表达式[1,10]如下
2.2 模型的意义
分段线性函数模型的意义与普通线性函数类似,不同的是通过不同节点将该函数分成了多段连续的线性函数,这些由节点分成的子区间的线性函数,斜率可同可不同,因此可更灵活的拟合线性趋势。
以X的分布上10th,50th,90th这三个节点为例,三个节点将整个趋势分为了4个小段,即0th∼10th,10th∼50th,50th∼90th,90th∼100th。函数表达式如下:
根据广义最小二乘法逐一计算出不同分段的斜率,即可反应自变量与因变量之间的分段线性关系。即在每一个分段内,X每变化一个单位,对应y则变化b个单位。2.3 操作代码
本文给出主要操作代码,该代码由我们团队根据简单回归模型、多重回归模型及非线性Meta分析模型的代码改编而成,读者在使用时请注明版权。我们使用一个节点(即X取7)为例,代码如下:
encode study , gen(studynum)
gen double logrr=log(adjrr)
gen double logub=log(ub)
gen double loglb=log(lb)
gen double se=(logub-loglb)/(2*invnormal(0.975))
mkspline linsp_dose1 7 linsp_dose2= dose
reglogrrlinsp*
predicty_linsp
lincom linsp_dose1*-1 , eform
lincom linsp_dose2*1 , eform
其中,does表示自变量。由上述描述可知,1个节点可产生两个亚分段(dose1和dose2)。命令的前五行是对效应量进行对数转换,第六行设置节点,第七和八行进行回归分析及线性预测,最后两行即表示不同分段下计算的斜率的对数返回值。该命令的关键也在于最后4行。
3 实例演示及比较
我们以Stata软件中自带数据为例,比较两种线性模型方法拟合的线性效果。该数据中,自变量为路程(英里,mpg),因变量为价格(price),数据调出命令如下:
sysuse auto, clear
进行普通线性回归分析,并绘制线性趋势图:
reg price mpg
predicty_lin
twoway scatter price mpg || line y_linmpg
我们再以分段线性样条函数再次分析该数据,并绘制趋势图,我们选取一个节点,即以15为分界点:
mksplinelinsp_mpg1 15 linsp_mpg2= mpg
reg price linsp*
predicty_linsp
twoway scatter price mpg || line y_linspmpg, sort clstyle(solid)
图1给出两种方法的结果及线性预测趋势图,可以看出,分段样条线性函数法拟合的线性趋势更为接近观察值的分布。
4 总结
本文介绍并比较了传统线性剂量-反应Meta分析模型及改进的分段样条线性模型,通过实例演示可知道分段样条线性回归模型在拟合线性趋势时更为灵活和准确。这种改进方法对剂量-反应Meta分析模型是一种完善。并且通过这种方法,可以拓宽线性关系的适用范围。
循证实践中,在检测出自变量与因变量之间为线性相关的可能性较小时,往往直接使用非线性模型。这种处理方式忽略了潜在的分段线性分布的情况。在此种情况下,是否需要先使用简单的分段线性模型目前尚无定论。非线性模型在逼近局部变动上有较大优势。但这种优势在特定情况下可能导致过度拟合。我们建议可先使用分段线性模型,若该模型下的结果与非线性模型结果类似,则优先考虑结构和方法学更为简单的分段线性模型,反之,则使用非线性模型。但此方法是否有效,仍需进一步研究。
总之,在拟合线性关系时,分段样条线性回归模型更能较好的逼近自变量与因变量之间的因果关系。参考文献
1 谢宇. 回归分析.北京:社会科学文献出版社,2010: 49-77.
2 徐畅, 曾宪涛,张超,等.应用R软件dosresmeta程序包和mvmeta程序包实现剂量-反应关系Meta分析.中国循证医学杂志,2015, 15(4): 479-483.
3 徐畅, 张永刚,韩芳芳,等.剂量-反应Meta分析方法学概论.中国循证医学杂志,2015, In press.
4 Greenland S, Longnecker MP. Methods for trendestimation from summarized dose-response data, with applications to meta-analysis.Am J Epidemiol, 1992, 135(11):1301-9.
5 黄静宇, 张超, 李胜, 等.剂量-反应Meta分析之限制性立方样条函数在模型中的应用. 中国循证医学杂志,2015, In press.
6 曾宪涛, 主编. 应用STATA做Meta分析. 北京: 军事医学科学出版社,2014:92-100.
7 Gould W. Linear splines and piecewise linearfunctions. Stata Technical Bulletin,1993, 15: 13-17.
关注 循证医学方法学
微信扫一扫关注公众号