分享

临床预测模型 | 第7期.Logistic回归,从原理到操作,一文搞定!

 新用户4064dVjo 2023-07-22 发布于北京

我们用前4期的内容,对临床预测模型的变量层面进行了很多讲解,从今天开始,我们将进入模型的构建相关内容,千万不要错过哟!

一、Logistic回归的原理

相信大家对logistic回归并不陌生,它常常被用于解决医学中的分类问题,但是很少有人关注它底层的原理;而了解这些,对我们理解模型有很重要的意义。logistic函数可以用下图中的式子表示(左、右分别为一元和多元logistic回归)。X为自变量,β为自变量的系数。可以看出,这个式子的取值范围一定在0~1之间。

Logistic函数表达式

那么本质上,logistic函数计算的是概率,我们要做的是找到一个阈值(如下图),如果计算概率大于这个阈值,则预测为阳性(Y=1),否则为阴性(Y=0)。

在logistic回归中有个常用的指标,叫做比值比(Odds Ratio, OR),可是前文中的数学表达式并没有体现出OR,这是怎么回事呢?要讲清楚这个问题,我们要先理解OR的含义。OR表示,当自变量X变化1个单位时,因变量为阳性(Y=1)的风险程度为原来的OR倍(分类变量如性别,可解释为男性比女性的风险程度;因为在建模时,我们需要把男性和女性分别赋值为1和0)。而风险程度,我们用发生比(odd)来衡量,它是衡量事件发生机会大小的一种指标。即因变量为阳性(Y=1)的概率比因变量为阴性(Y=0)的概率,也就是P/(1-P),因此OR并不是两个概率的比值

为了更好地理解,我们用公式推导一下。为了得到发生比,我们需要将logistic函数进行logit变换(如下图)。变换之后,左侧就是上文提到的发生比【P/(1-P)】。OR就是两个发生比的比值,即

因为X2-X1=1(当自变量X变化1个单位),所以OR=eβ1(此处需要回忆数学知识)。
二、Logistic回归在R的实现

其实,在R中实现多元logistic回归建模也很简单,下面用pbc数据集进行演示。例如,用age、hepato、bili这些变量预测ascites,family=”bionomial”就表示做logistic回归。结果中第一列Estimate就是前文提到的β,第四列就是P值。将这些β带入我们最开始提到的多元logistic函数中,就是我们所构建的logistic模型啦,可以根据它算出每一个样本因变量为阳性(Y=1)的概率。

library(survival)
data(pbc)
fit=glm(ascites~age+hepato+bili,data=pbc,family = "binomial")
summary(fit)
多元logistic回归的结果

但是大多数时候我们并不直接展示公式,而展示的是OR和置信区间,这些都可以用R非常简便的提取出来。因为OR=eβ,我们可以用exp()查看OR值(exp()即对变量计算e为底的指数),confint()函数可以查看OR的置信区间(如下图)。怎么样,是不是感觉对logistic回归的理解有更深了一层?

exp(fit$coefficients)
exp(confint(fit))

此外,还可以用autoReg包绘制出漂亮的Table,不仅自动算出OR和置信区间,还总结了2组的基线资料:

Library(autoReg)
autoReg(fit,uni=F,final=F)

autoReg()输出的结果


那么这就是本期的全部内容啦,你学会了吗?大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话” 栏目中提出,我们会尽快回复!


写在最后



“观科研”(点击进一步了解我们吧)是由一群北京协和医学院(清华大学医学部)的博士开创的公众号,初心是让医学科研有迹可循,帮助一线的医学科研人员更快地成长,希望大家支持与关注!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多