查看原文
其他

逻辑回归的袅娜曲线,你是否会过目难忘?

2017-09-22 张之昊 协和八

说人话统计


笔者按:在上一集《你在,或者不在,需要逻辑回归来算》里,我们初次认识了一种新的统计学方法——逻辑回归。和线性回归相比,逻辑回归能帮助我们应对一种新的情况:因变量是二元变量(通常表现为是/否,数值上分别用1或0表示)。

相信你还会记得,一个包含k个自变量、不包括交互效应项的逻辑回归模型长这个样子:

等式右边与线性回归十分相似,包含一个截距,再依次加上各个自变量与其回归系数的乘积。而逻辑回归与线性回归的根本区别在于等式左边:这里不再是因变量y本身,而是y取1的概率p的“分对数”。在上集文章里,我们详细讨论了为什么我们要对概率p(而不是因变量y自己)进行建模,为什么又需要再对p做分对数变换,不熟悉的读者不妨戳这里重温上集文章。在此基础上,今天我们将进一步为大家介绍逻辑回归模型的解法,以及回归系数的意义。

 如何确定逻辑回归模型的系数?

当我们收集了数据、选定了逻辑回归模型的形式以后,接下来首先要做的事情,自然是把模型对样本进行拟合,确定模型中的参数(也就是从的那一堆回归系数)该取什么数值了。就像其他统计方法和模型一样,对于我们之中的大多数,这一步是最不需要操心的——因为有各种各样的统计学软件可以为我们代劳。因此,我们这里只对基本思路做个粗略的介绍。

这个问题我们怎么着手呢?前面我们已经看到,逻辑回归和我们已经熟悉的线性回归有很大的相似之处。既然如此,我们是否可以从线性回归模型的拟合方法中得到一些启发?

我们曾经在《回归线三千,我只取这一条》里详细讨论过,线性回归模型中的回归系数是如何确定的。简单地回顾一下,给定一组回归系数的具体取值,根据线性回归模型,就可以算出得到每个数据点的概率,进而找到在假定这些回归系数为真的情况下,整个数据集的可能性(似然)大小。如果我们给回归系数们换一组取值,又能得到一个新的似然值。如何判断哪一组回归系数更好?根据极大似然估计的思想,能使似然最大的回归系数值是最合适的,因此我们要解决的问题就变成:在所有可能的回归系数取值里,哪一组会让似然最大?找到了那一组回归系数,线性回归模型也就确定下来了。

回到逻辑回归,我们能否也用上一样的方法呢?当然可以。我们先来看看,在逻辑回归模型的情形下,似然函数是什么样子的。

遵循和线性回归一样的思路,我们首先要找出单个数据点的概率。假设样本量为n,也就是说,我们总共有n个数据点,每个数据点包含k个自变量的取值,以及因变量y的值。它们分别是

要注意,x有两个下标,第一个下标代表的是数据点的排序(从1到n),第二个下标代表了不同的自变量(从1到k)。比如说,是第6个数据点中,第5个自变量的测量值。

根据逻辑回归模型,对第i个数据点,因变量的概率与该数据点的k个自变量取值之间存在如下关系:

根据对数的定义,这相当于

这看起来似乎很复杂,但实际上当回归系数给定的时候,等式右边的一堆只不过是个常数。把上面的式子看作一个关于的方程,可以很容易解出

如果这个数据点的因变量y不是1而是0怎么办?好办!取

就可以了。

这样一来,有了上面(1)(2)两条式子,对于样本中的所有n个数据点,我们都可以根据因变量取值为1或者0写出各点的概率,把所有这些概率相乘,就是一个关于回归系数的函数了。有了这个似然函数,统计学软件就可以在后台帮我们找出能使似然函数最大的回归系数取值,这个过程有两点值得一提:

一、与其他极大似然估计问题类似,由于概率值总在0和1之间,许多个概率相乘后,乘积会变得越来越小,而计算机处理的数值精确程度是有极限的(只能到小数点后若干位)。为了避免精度的损失,一般会把似然函数取个对数。这样一来,许多个概率的乘积就变成许多个概率的对数之和,整个函数的值就不会变得很小。而且,由于对数是单调增函数,因此求对数以后我们的目标仍然是最大化这个新的函数。

二、在《回归线三千,我只取这一条》中我们提到,对于线性回归,回归系数的极大似然解有个现成的公式。而逻辑回归由于非线性的分对数变换的存在,失去了这个良好的性质。因此,逻辑回归模型的拟合需要用到稍微麻烦一些的算法,才能找出最优的系数。这也是逻辑回归模型在早年计算机尚不发达时应用并不广泛的一大原因。

 如何解读回归系数的意义?

知道了逻辑回归的系数是怎样找出来的,我们的下一步自然就是解读这些系数的含义了。下面呢,又让我们来开开脑洞,看个例子——让我们张开想象的翅膀,飞到熟悉的蓝精灵国度:那里正在进行开天辟地以来的第一次民主选举,两位个性迥异的候选人聪聪、乐乐为镇长的职位展开了角逐。

作为吃瓜群众的你,对蓝精灵选民们投票决策的相关因素产生了强烈的好奇。如果我们忽略弃权或者中立的蓝精灵,那么任何一位蓝精灵的投票只有两种结果:要么支持聪聪,要么支持乐乐。而我们想研究的因素可能是多种多样的,也许会有分类变量(如性别),也许会有连续变量(如收入、年龄),那么逻辑回归自然是一种应当优先考虑的方法——因为逻辑回归的因变量是二分类变量,而自变量则可以可以包含多个不同类型的因素,这一点则是和线性回归相似的。

现在我们来想象一下,经过初步的调查,你似乎感觉到,能言善辩但有些高冷的聪聪似乎更受教育程度更高的蓝精灵欢迎,而笑容阳光、平易近人的乐乐好像在教育程度低一些的蓝精灵里更有群众基础。在收集了随机抽取的若干蓝精灵选民支持谁和他们的教育程度(以上过多少年学来表示)后,你分别用1和0表示支持聪聪、支持乐乐,用统计学软件拟合得到了下面的逻辑回归模型:

好了,这个模型到底告诉了我们什么呢?回忆一下,逻辑回归模型的基本架构,就是用自变量的线性组合来预测我们感兴趣的某种结果发生的概率。因此,我们首先可以和本文第一部分一样,把上述模型改写成为关于支持聪聪的概率的形式:

这样一来,模型的含义清晰了许多,但是右边那一堆复杂的函数还是很不直观——到底教育程度与支持哪位候选人是个什么关系?让我们来以支持聪聪的概率为y轴,教育程度为x轴,画出这个模型(图1)。


图1 支持聪聪的概率与教育程度之间的逻辑回归模型

图1中的蓝色曲线,就是前面的逻辑回归模型,曲线上的实心圆点是根据上述逻辑回归模型以及各数据点的教育程度算出的支持聪聪的概率预测值。我们立刻就能知道,根据这个逻辑回归模型,一个蓝精灵选民教育程度越高,支持聪聪的可能性就越大,这与我们的假说是一致的。

在图1中,我们还画出了原始数据——该图上方和下方的空心圆点就是数据中每个选民的教育程度和支持的候选人。为什么这样画呢?注意图1 的y轴是支持聪聪的概率,而数据集的因变量把支持聪聪和支持乐乐分别记为1和0,两者恰好是完全对应的:如果我们已经知道一个选民给聪聪投了票,那么它支持聪聪的概率当然就是1了;反过来,如果它支持的是乐乐,自然它支持聪聪的概率就是0。

我们不难发现,原始数据的大致分布同样支持逻辑回归模型得出的结论。尽管在很大范围内,相似教育程度的选民既有支持聪聪的,也有支持乐乐的,但总体看来,教育程度越高,支持聪聪的比例就更高。这一点在教育程度范围的两头(小于8年和大于14年)尤其明显。

但是,光是“教育程度越高,支持聪聪的可能性越大”这样的定性结论,还不能让我们满意。别忘了,在线性回归里,我们能够得到更为精确的定量结论,比如说,父母平均身高每增加1厘米,孩子的身高平均来说就能增加0.62厘米。我们如何能从逻辑回归模型得到相似的推断和预测呢?更具体地说,我们这个例子里头的逻辑回归模型里,教育程度的回归系数0.72代表了什么?

回顾图1中的蓝色曲线,我们很容易能看到,尽管教育程度和支持聪聪的概率之间有正相关关系,但是教育程度每增加1个单位,支持聪聪的概率提高的程度并不是恒定的。换言之,与线性回归不同,因变量、自变量之间的关系并不是线性的。如果观察得再仔细一点,这条曲线在两端(概率接近0或1)时最为平缓,而在中间(概率在0.5左右)时最为陡峭。

我们在下面的图2中还能看到更具体的实例:当教育程度分别为11和12年时,支持聪聪的概率分别为0.409和0.587,两者之差为0.178;而当教育程度分别为14和15年时,支持聪聪的概率分别为0.857和0.925,两者之间只有0.068的差距。

 

图2  在逻辑回归模型中,因变量随自变量的增长率并不恒定

因此,在逻辑回归模型中,如果我们要对因变量取1的概率随自变量变化的程度进行描述,一定要同时说明是对自变量取值范围内的哪个位置进行讨论的。在通常情况下,一种常见的做法,是描述因变量取1的概率随自变量变化而变化的速度的最大值(也就是曲线最陡峭位置的斜率)。

我们已经说过,曲线最陡峭的位置,是因变量取1的概率恰好为0.5的时候。这时自变量会取什么数值?我们只需回到逻辑回归模型本身:

可以得到

也就是

于是我们知道,当


时,支持聪聪的概率恰好为0.5,同时这也是这个概率随自变量教育程度变化最快的地方。更普遍地说,当逻辑回归模型中只含有一个自变量时,在曲线最陡峭的位置、同时也是因变量两种情况概率相等的位置,自变量的值是截距除以斜率的相反数。

在这个地方,概率随自变量的变化率是多少呢?在数学(运用微积分知识求个导数即可)上可以证明,这个变化速度的最大值恰好就是回归系数除以4(称为“除4法则”)。比如说,前面的逻辑回归模型中,教育程度的回归系数是0.72,那么支持聪聪的概率随教育程度增长1个单位的变化率的最大值就是0.72/4 = 0.18,而且这个最大的变化率是在曲线的中间点(支持聪聪的概率预测值为0.5,此时对应的教育程度约为11.5年)时取到的。大家不妨回顾一下,教育程度从14年增加到15年,这个范围离中心点很近,而支持聪聪的概率增加了0.178 ,与理论最大值0.18确实很接近。

解释了教育程度的回归系数0.72,那么还剩下一个截距-8.29,它又有什么含义呢?与线性回归相似,截距的意义要在自变量都取0时才能体现出来。在这个例子里,-8.29就是当教育程度为0时,支持聪聪概率的分对数变换的预测值。换言之,教育程度为0时,支持聪聪的概率是。当然了,在许多实例里,自变量取0往往没有实际意义(这个例子里的教育程度虽然理论上可以为0,但是它离实际数据点的自变量取值范围相差很远),这时我们就不必关注模型的截距了。

在这一集里,我们给大家介绍了逻辑回归模型的系数是如何确定的,并且讨论了在最简单的、只含有一个自变量的情形下,逻辑回归系数的意义和解读。在下一集,我们将会继续讨论有多个自变量及含有交互作用时,逻辑回归系数又该如何解读,以及逻辑回归模型的假设检验方法。

作者张之昊
编辑:毕日阳古 

五年执医 三年模拟

精选每日一题

更多精选题可回顾历史推送文末

题目来源:临床执业医师资格考试往届真题

本期主播:白肉血肠

点击下方标题可阅读本系列任意文章

干货


第1章  高屋建瓴看统计

你真的懂p值吗?

做统计,多少数据才算够?(上)

做统计,多少数据才算够?(下)

提升统计功效,让评审心服口服!

你的科研成果都是真的吗?

见识数据分析的「独孤九剑」

贝叶斯vs频率派:武功到底哪家强?


第2章  算术平均数与正态分布


数据到手了,第一件事先干啥?

算术平均数:简单背后有乾坤

正态分布到底是怎么来的?


第3章  t检验:两组平均数的比较




想玩转t检验?你得从这一篇看起

就是要实用!t 检验的七十二变

不是正态分布,t 检验还能用吗?

只有15个标本,也能指望 t 检验吗?

样本分布不正态?数据变换来救场!

数据变换的万能钥匙:Box-Cox变换

t 检验用不了?别慌,还有神奇的非参数检验

只讲 p 值,不讲效应大小,都是耍流氓!

找出 t 检验的效应大小,对耍流氓 say no!

用置信区间,就是这么(不)自信!

如何确定 t 检验的置信区间

优雅秀出你的 t 检验,提升Paper逼格!

要做 t 检验,这两口毒奶可喝不得!


第4章  方差分析(ANOVA)多组平均数的比较


要比较三组数据,t 检验还能用吗?

ANOVA在手,多组比较不犯愁

ANOVA的基本招式你掌握了吗?

ANOVA做出了显著性?事儿还没完呢!

听说,成对t检验还有ANOVA进阶版?

重复测量ANOVA:你要知道的事儿都在这里啦

没听说过多因素 ANOVA ?那你就可就 OUT 了!

多因素ANOVA=好几个单因素ANOVA?可没这么简单!

两个因素相互影响,ANOVA结果该如何判读?

ANOVA还能搞三四五因素?等等,我头有点儿晕

要做ANOVA,样本量多大才够用


第5章  线性回归:统计建模初步


车模航模你玩过,统计学模型你会玩吗?

如果只能学习一种统计方法,我选择线性回归

回归线三千,我只取这一条

三千回归线里选中了你,你靠谱吗?

自变量不止一个,线性回归该怎么做?

找出「交互效应」,让线性模型更万能

天啦噜!没考虑到混杂因素,后果会这么严重?

回归系数不显著?也许是打开方式不对!

评价线性模型,R平方是个好裁判吗?

如果R平方是砒霜,本文教你三种解药!

线性模型生病了,你懂得怎样诊断吗?

「脱离群众」的数据点,是「春风化雨」还是「秋风扫落叶」


第6章  广义线性模型:统计建模进阶

你在 或者不在 需要逻辑回归来算


自检


妈妈说答对的童鞋才能中奖

统计学的十个误区,你答对了吗?


番外篇


说人话的统计学:一份迟来的邀请

持续更新中……

未来的旅程,希望一直有你们的陪伴。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存