喂,你的逻辑回归模型该做个体检啦!| 协和八
❉说人话的统计学❉
通过前面几集对逻辑回归模型的讨论,我们已经知道,当因变量 y 是二元变量时,要想知道自变量 x 是不是显著地与因变量 y 相关,逻辑回归模型是一个比较靠谱的选择,这里的自变量 x 可以有多个,既能取如身高体重等连续变量,也可以取性别之类的分类变量。
也许大家已经发现,逻辑回归模型其实和我们之前学习的线性回归有许多相似之处,只是解决问题的手段略为不同。之前讨论线性模型的时候,我们强调过,做回归分析不要光顾着看回归系数、p 值等等,还得检查模型的基本假设是否成立。因此,我们当时分两集讲了一些模型诊断的方法和问题,回顾请戳《线性模型生病了,你懂得怎样诊断吗?》《「脱离群众」的数据点,是「春风化雨」还是「秋风扫落叶」》。
使用逻辑回归模型,同样要掌握模型诊断方法。幸运的是,线性回归模型诊断的大体思路也能应用到逻辑回归模型上面。今天这一集文章里,通过在逻辑回归模型里再思考一下模型诊断的问题,我们能对什么是好的统计学模型有更深入的认识。如果能举一反三地灵活地运用这些知识,今后即使遇到新的统计模型,也能更容易地发现模型的潜在问题,并找到合适的解决方法。
没有完全正确的模型
在构建和评估统计学模型的时候,我们首先要认识到,没有百分之百正确的模型,好的模型只是更接近真相。 一个经典的说法是:All models are wrong, but some are useful.(所有的模型都是错误的,但是有一些是有用的)。认识到这一点,我们就会自然地接受模型的构建是一个不断试错的过程,没有什么万能的方法可以一步找出足够合理、有用的模型,当然正确的方法可以帮助我们少走弯路。
对于刚接触统计模型的读者,下面的比喻也许能帮助你更好地理解这一点。假设有一天你遇到了一个看不见的隐形人,你的任务是帮助他挑选合适的衣服。由于无法直接观察到隐形人的高矮胖瘦,我们只能通过让他试穿衣服并观测衣服的形变来推测什么样的衣服会更合适,最终找到一个相对合适的衣服。这里,隐形人的体型就像是理想中完全正确的模型,但是我们最后挑选的衣服就是实践中通过试错调整找出的一个相对好的模型。
在构建模型的过程中,找出一个比较好的模型的关键,在于对统计模型有正确的「品味」——知道什么样的模型是好的,什么是不好的。这个话题我们在《如果 R 平方是砒霜,本文教你三种解药》曾经讨论过,咱们今天将从另外一个角度再做个讨论,希望能帮助大家获得更深入的理解。
「简单有效」的模型就是好的模型
「简单有效模型就是好的模
好的模型可以归结为「简单有效」,简单是指模型用到的未知参数尽量少,有效是指模型对已有的数据的拟合程度高,也就是说模型里面自变量和因变量之间的定量关系和观察到的数据相吻合。
模型是否简单是个相对的概念,并没有绝对的标准,在我们比较同一组数据的两个模型的时候,参数越少的模型越简单。下面我们具体看几个例子:
相对于
y~x1+x2
下面几个模型都是更加复杂的模型
y~x1+x2+x1²
y~x1+x2+x3
y~x1+x2+x1*x2
模型的「有效性」是指模型能否有效地拟合现有的数据。在线性回归模型里面,我们用 R² 来定量地描述模型的有效性:R² 的取值范围在 0 到 1 之间,越接近 1,模型的预测值就越接近因变量 y 的实际值,则模型「有效性」越高(详情可以回顾《评价线性模型,R 平方是个好裁判吗?》)。在逻辑回归模型里面,偏常(deviance)被用描述模型拟合的好坏 ,详情可以回顾《逻辑回归的统计检验,原来招数辣么多》。
别小看「简单有效原理」,它可是大有来头,还有另外一个有趣的名字叫做奥卡姆剃刀法则(Occam's Razor),是由哲学家奥卡姆提出的。奥卡姆剃刀定律有好多种说法,最常见的是:如果有几个假说都同样有可能成立,那就选择所依赖的假设最少的那个。「简单有效」不仅是判断好的统计模型的标准,也是科研领域广泛应用的一种思维方式。
为什么统计模型在拟合程度差别不大的时候,越简单的模型越好呢?这主要有两个原因。 首先,复杂的模型容易过度拟合。复杂的模型参数较多,在数据量不大的时候容易受到数据中的噪声影响,个中原因大家可以回顾《如果 R 平方是砒霜,本文教你三种解药》。
另外,简单的模型更容易被其他科研人员或者有需要的人理解,变成可以利用的知识。是否容易理解往往取决于模型的参数的意义能否用几句话表达清楚,如果模型复杂到很难跟别人说清楚,这样的模型使用的局限性就会很大。
「简单有效」这个标准,说起来容易,实现起来却并不那么简单。实际上,提高「简单」和「有效」中一个的水准,往往会降低另外一个。因此,问题的关键在于在两者之间找个平衡点。咱们之前在《如果 R 平方是砒霜,本文教你三种解药》讲过的修正 R 平方等标准,其实是把「简单」和「有效」两个标准结合起来考量模型的好坏。
构建模型的过程
讲了一堆大道理,还扯上了奥卡姆家的剃刀,就是为了说明「简单有效」的模型是好模型。但是在遇到实际问题的时候,如何才能达到这一目标呢?
在不同的模型形式之中,我们会首先尝试已知最简单有效的模型,用来描述感兴趣的自变量和因变量之间的关系。当预测变量是连续变量时,线性回归模型是首选;当预测变量是二元类别变量时,逻辑回归模型便是首选。
下一步,通过模型诊断再对已选择的模型进行调整。模型诊断的目的就是看看模型有没有明显不合适的地方。不合适表现为两个方面,一个是看模型的基本假设是不是有效,二是深入考察有没有个别数据点与模型的预测相差甚远。
逻辑回归模型的假设
与挑剔的线性回归模型相比,逻辑回归模型前提条件少多了,只有下面两条:
首先,逻辑回归模型要求测量的数据之间是相互独立的。这一点无法通过数据分析的方法验证,只能在实验设计和数据采集阶段控制好。
第二,逻辑回归模型还要求 logit (P(y=1)) 与自变量 x 的关系是线性的,这表现在逻辑回归模型的形式中:
如果自变量与因变量的关系不满足逻辑回归模型的形式,我们一般可以通过对自变量 x 进行变量转换或者加入一些非线性的项来提高模型的拟合效果。这一点在线性回归模型里面也遇到过,后文会具体介绍在逻辑回归模型里面怎么做。
与线性回归模型不同的地方是,逻辑回归模型并不要求自变量或者误差项满足正态分布,也不要求同方差性,也就是说不同预测值附近对应的误差可以不同。
由于逻辑回归模型的前提假设很少,我们在模型诊断时只要关注逻辑回归模型的形式是不是合理就行了,而使用残差图对模型拟合误差进行可视化,可以有效解决这个问题。
用残差图进行模型诊断
残差图可是我们的老朋友了,咱们之前在《线性模型生病了,你懂得怎样诊断吗?》里面就用它诊断过线性模型。 不幸的是,直接把线性模型的残差图生搬硬套到逻辑回归模型上面,并不太合适。为了更好地理解残差图的用法,我们还得请出说人话系列专用群众演员——蓝精灵们。
从咱们开始讨论逻辑回归系列起,蓝精灵们就在忙着选举镇长。聪聪和乐乐是两个镇长候选人,我们想要知道受教育程度(上学年限)和选聪聪作为镇长的关系,通过使用逻辑回归模型,得到了下面的关系:
这时针对每个自变量取值,预测值 p 表示的是 y=1 的概率, 残差就是 p 与 y 实际值的差别。由于 y 的取值只能是 0 和 1,当预测的概率是 p 时,残差就只能是 -p 或者是 1-p 。以预测值 p 作为 x 轴,残差 y-p 作为 y 轴,我们会得到下面的结果:
图 1 线性回归模型未经处理的残差图
这个残差图并不是很有用,因为不管模型拟合得好不好,残差都会落在 -p 和 1-p 这两条线上。
为了解决这个问题,我们要换个思路。既然我们关心的是 y=1 的概率,那可不可以比较观测到的 y=1 的概率和预测概率之差?这虽然是个好主意,但是在咱们的例子里面,由于自变量是连续变量,一个自变量只对应一个 y 值,比如上学三年的只有笨笨一个人,而他对应的 y=0,这样计算出的 y=1 的概率也是 0,与 y 的数值一样,并没有能解决上面的问题。
为了绕出这个圈子,我们不妨把 x 值相近或者是预测值相近的数据点分配到一组。我们需要事先定下每组的数据量,一般取在 5个以上,保证计算出来的y=1 的实际概率比较平滑,噪声不会太大。这样一来,有了多个数据点,我们就可以算出观测到的 y=1 的概率(实际上就是这些数据点里 y=1 占多大比例)了。在下文表 1 的例子里面, 将数据按照预测值(第一栏)从小到大排列,顺序将每五个数据分为一组,然后计算出每组预测值和 y 实际值的平均值(第三,四栏),进而计算出观测到的实际概率与预测概率之差,就是能得到残差了。
表 1 分箱残差图计算步骤演示
每个组作为一个新的数据点,将观测到的 y=1 的概率与预测的 y=1 的概率的平均值之差作为 y 轴,预测的 y=1 的概率的平均值作为 x 轴,就得到了分箱残差图(binned residual plot),如下图所示:
图 2 分箱残差图 把选择预测值相邻的数据分在一组,并且每组数据有相同数量的原始数据点,便可以算出这组数据的平均预测值(x 轴)和平均残差(y 轴),也就是说图中的一个点实际上来源于多个数据测量值平均值。
理解了分箱残差图是怎么回事,那如何才能运用它进行模型诊断呢?我们需要着重关注以下三个方面。
首先,判断模型整体拟合度好不好。同样的数据,残差的绝对值越小,说明模型预测的概率与实际概率越接近,也就是模型的拟合度更好。
第二,判断单个自变量与 logit (P(y=1)) 关系是否是线性的。如果存在非线性的关系,往往会存在两头预测值偏低(或偏高),中间预测值偏高(或偏低)的倾向,如图三(左)所示。这种情况下,我们可以考虑加入预测值的平方项作为自变量来改善,通过引入平方项,残差基本上均匀地分布在x轴两侧,没有出现特定范围内的残差总是正的或负的情况,如图 3(右)。
图 3 教育程度与 logit(选聪聪的概率)之间的关系并不完全是线性的,所以左图的模型拟合的结果有系统偏差,而右图模型通过加入平方项有效地减低了拟合的误差。
第三,看离群点。有时候模型虽然整体拟合得很好,在个别数据点附近会出现预测值与实际值相差很大的情况,这些数据点成为离群点,我们在《「脱离群众」的数据点,是「春风化雨」还是「秋风扫落叶」》里面也提到过。个别离群点的存在并不一定说明模型有问题,而有规律地出现离群点就值得进一步关注了。
由于逻辑回归模型预测的是 y=1 的概率,即使预测是完全准确的,观察到的 y=1 的概率也不一定和预测的完全相等。 这从抛硬币的例子里面可以看出:
硬币正面朝上的概率是 0.5,抛硬币 100 次,我们观测到向上的次数也不一定恰好是 50 次,也有可能是 51 次,48 次,等等。事实上,硬币会有 95% 的概率正面朝上的次数介于 40 到 60 之间,也就是说观测到的正面朝上的概率有 95% 的机会在 0.4 到 0.6 之间,具体计算需要用到二项分布的知识 。
如果我们对 y=1 的概率的预测是准确的,那么观测到的概率与预测到的概率会在 0 左右波动,给定预测概率以及其对应的区间里面数据点的数量,我们可以计算出残差会有 95% 的概率落在特定的范围内。这个范围便可以帮助检测逻辑回归的离群点,也就是超出预期误差的数据点,如果有高于 5% 的数据点都在 95% 区间外,则说明模型可能有系统偏差需要调整,如下图四所示。
图 4 图中的灰色曲线显示了能接受的误差线,也就是在假设模型的预测值是准确的情况,95% 的数据点覆盖的范围。左图的模型有大量的数据点在 95% 范围之外,说明模型有拟合效果不好,反之右图几乎所有数据点都在误差线内,说明模型拟合较好。
精选每日一题
更多精选题可回顾历史推送文末
题目来源:临床执业医师资格考试往届真题
本期主播:白肉血肠
作者:田菊
编辑:鹅不食草
质控:小二仙草
* 点击下方标题,或回复关键词「说人话的统计学」可阅读本系列任意文章!
干货
第 1 章 高屋建瓴看统计
第 2 章 算术平均数与正态分布
第 3 章 t 检验:两组平均数的比较
第 4 章 方差分析(ANOVA):多组平均数的比较
多因素 ANOVA=好几个单因素 ANOVA?可没这么简单!
第 5 章 线性回归:统计建模初步
线性模型生病了,你懂得怎样诊断吗?
「脱离群众」的数据点,是「春风化雨」还是「秋风扫落叶」
第 6 章 广义线性模型:统计建模进阶
(未完,更新中)
你在 或者不在 需要逻辑回归来算
逻辑回归的袅娜曲线,你是否会过目难忘?
自检
番外篇
张之昊
2010 年本科毕业于清华大学生命科学学院,获理学学士学位。2016 年 5 月在耶鲁大学跨院系神经科学项目获得哲学博士学位。在耶鲁期间,他利用功能核磁共振成像(fMRI)技术与计算建模研究人类经济决策的脑科学基础及其与肥胖症的联系,曾以第一作者身份在 Nature Communciations, Current Biology 等顶尖学术杂志上发表多篇论著,并受到 BBC 新闻、CBC、洛杉矶时报、果壳网等知名媒体的关注和报道。他还曾任耶鲁大学 StatLab 数据咨询师(Data Consultant),为耶鲁师生提供实验设计、数据分析及统计学软件的咨询服务。2016 年 8 月至今在伯克利加州大学(UC Berkeley)哈斯商学院市场营销系担任博士后研究学者(Postdoctoral Scholar),致力于运用神经科学、经济学模型、自然语言处理及大数据方法研究消费者行为与决策。
作者简介田菊
2010 年本科毕业于清华大学工程物理系,获工学学士学位。2016 年 5 月在哈佛大学医学院神经科学项目获得哲学博士学位。她在攻读博士期间研究基于奖赏的学习行为的神经回路及其计算模型,曾以第一作者或共同作者身份在 Nature,Cell, Neuron,Nature Neuroscience,Trends in Cognitive Science 等顶尖学术杂志上发表多篇论著。2016 年 6 月至今在 Facebook 担任数据科学家( Data Scientist ),运用大数据和人工智能解决网络诈骗,虚假新闻和不良广告等信息安全相关问题。