2021年底,温州医科大学作为以第一单位在JAMA发表一篇长篇研究成果,阐明了不同麻醉方法对老年患者术后脑功能的影响。该文章随访观察了很多年,充分说明了坚持就是胜利这一真理。同时还文章还提到,统计方法用到了log binomial回归:

Relative risks (RR) with 95% CIs were calculated using thelog-binomial modelfor the categorical variables.

可能很多人对这个有点不大懂,因此本文专门介绍一下,起码我们要在方法上做到不输于国外。

在介绍这个方法之前,我们要先了解两个指标:OR(odds ratio)和RR(relative risk)。

RR和OR是流行病学研究中非常常见的两个度量指标,在流行病学教材中已有明确介绍,OR值主要用于回顾性研究中,RR值主要用于前瞻性研究中,因为回顾性研究无法计算率,而RR值是基于率来计算的。

一般在四格表中,大家很容易区分OR和RR,手工计算都没有问题。比如,对于下面这个最简单的四格表:

病例

非病例

暴露

a

b

非暴露

c

OR=ad/bc,可以看出它的直观含义其实并不是很强;

RR=暴露组的发病率/非暴露组的发病率,这个直观含义就更为明确。

在很多情况下,即使是队列研究,杂志社往往也并不一定要求给出RR值,可能是大家都习惯了看OR了。事实上,很多研究也都不大区分这两个指标,几乎绝大多数的logistic回归分析中大家都在用OR值,如果logistic回归中看不到OR值好像就觉得少了点什么。

但是我们一定要明确,OR和RR并不相同。当结局发生率很低时,OR是RR的一个很好的替代指标,此时用logistic回归可直接求得OR值,用来说明暴露的危险度。但如果结局发生率不是很低,OR与RR差别较大,此时用OR来说明危险度可能会有一定的偏倚。

通常情况下,发病率越高,OR与RR差别越大;暴露组和非暴露组发病率差别越大,OR与RR差别越大。当RR>1时,OR>RR,当RR<1时,OR

那如何计算RR值呢?在单因素中当然很简单,就像上面的四格表,手工计算即可。但是多因素就必须依靠软件了。下面主要介绍两种方法:log-binomial回归和Breslow-Cox回归。

队列研究中RR值的计算通常可采用对数二项分布回归(log-binomial regression),在SAS软件中可借助于proc genmod过程来实现。什么是log-binomial呢?我们知道,logistic回归(二分类)是对应二项分布,即binomial分布,因此我们在软件中,如果用广义线性模型来拟合logistic回归,需要同时指定分布为binomial和连接函数为logit。

log-binomial意思是指定函数分布为binomial,但连接函数指定为log,注意一定不是logit。听起来很简单,起码在软件中很简单。

例如,有下面的一份数据,hp是自变量,pro是因变量。

在SAS中,下面语句就可以实现RR值的输出:

procgenmoddesc;

class hp(param=reference ref=first);

model pro=hp/dist=bin link=log;

/*dist指定分布为二项分布,但link并不指定与binomial对应的logit,而是log,如果指定logit,求出的仍是OR*/

estimate 'hp' hp1-1/exp;

run;

这个程序中只有1个因素hp,主要是为了数据展示方便,实际中你可以在model中加上其它需要校正的协变量。

该数据所得RR为1.77,如果这里不指定log,而是指定logit,所得的OR值为2.44,差别还是非常大的。

当然这不是唯一的方法,除了对数二项分布回归外,也可采用Breslow-Cox回归。该法利用proc phreg过程来实现,产生一个时间变量t,指定t为任一固定常数,同时指定ties=Breslow。Breslow证明,当时间t为一常数时,Cox回归的参数估计值等同于对数二项分布回归的参数估计值,其以e为底的指数值也就是相对危险度RR。

procphreg;

class hp(param=reference ref=first);

model t*pro(0)=hp;

/*t为任意指定的常数值*/

run;

本文的内容主要摘自本人2015年主编的《医学研究中的logistic回归分析及SAS实现》(第二版),如有对logistic回归感兴趣的朋友,可以看看。

点击左下角"阅读原文",免费学习70多篇SPSS教程,30多篇R教程,以及更多免费科研教程!