广义线性模型(1)广义线性模型
本文旨在将一些线性模型统一放在广义线性模型的体系下,从而更好的理解这些模型之间的联系和区别,属于总结和复习,最好对线性回归、逻辑回归稍微有所了解,不过后面几篇也是会复习到这些内容的。
1 概念理解
什么是广义线性模型?如果用大白话来翻译的话,就是:适用性更广的、更抽象的线性模型。我们可能平时使用的更多的是像线性回归、逻辑回归之类的比较具体的线性模型,他们会有各自独特的假设和适用场景,而广义线性模型的广义就体现在他的假设和适用场景范围更大,能把线性回归、逻辑回归之类的模型都囊括其中。
其实按我们编程的思路来想,广义线性模型GLM就像是抽象出来的一个抽象类,这个类定义了抽象的假设方法、属性等,在面对具体问题时,我们不能用这个抽象类来直接解决问题的,需要针对场景来实现一个可实例化的类,比如面对二分类问题我们继承GLM类,实现一个逻辑回归类,用逻辑回归来解决具体问题。广义线性模型GLM并不是这个类的源头,再向上还可以抽象出广义线性混合模型GLMM类,再向上抽象还有投影寻踪回归PPR类...估计这个分支抽象到最后就成了“模型”类。(当然,比如线性回归也并不是说只能抽象成GLM,也可能抽象成广义相加模型(GAM),这些方法本文不做详述)
![](https://img.haomeiwen.com/i13769454/663bee5f4b83a565.png)
本文中我们不会涉及太高层的抽象类,只稍微提一下广义线性混合模型GLMM,然后主要还是说回广义线性模型GLM,毕竟既然要说GLM,还是得提一嘴他的其中一个爸爸的(毕竟除了GLMM也可能抽象出别的爸爸)。
广义线性混合模型GLMM(Generalized Linear Mixed Model),是广义线性模型GLM 和线性混淆模型LMM 的扩展形式,兼具了二者的特点,他的因变量不再要求满足正态分布(来自GLM),他的自变量可以同时包含固定效应和随机效应(来自LMM),很是强大,不过说实在的不怎么常用,可能医学生物学用的更多一些吧,就不详述了。GLM的适用范围要小于GLMM,因为他的自变量只有固定效应,所以是没法很好的处理纵向数据的,因此对GLM适用的数据一般有几点基本要求:
- 数据是线性的:这个不用说,毕竟是线性模型;
- 方差齐性:其实也就是说你的数据要基本上是同一个分布的,这也没啥说的;
- 不能有共线性,数据要独立:因为GLM自变量只有固定效应,处理不了非独立数据;
2 GLM理解
2.1 GLM的假设
要理解GLM,需要我们站在概率论的视角下来看待回归问题。回归的目的是通过给定的自变量,使用参数
所定义的模型计算出
,其本质是一个数理统计问题,不要把
和
看做两个数字,而把他们视为两个随机变量,那么回归就是在样本
的条件下,得到
的条件概率分布
,通过计算分布的期望
,就可以得到
的估计值。
我们注意到,上面的这段解释中存在一些有疑问的地方,比如:
- 只有样本的情况下,
的条件概率分布
和期望
怎么计算呢?
- 为什么
就是
的估计值呢?
- 参数
所定义的是什么模型,
怎么求出来呢?
只有这些问题得以解决,才能走通上面对于回归问题的解释,怎么回答这些问题呢?想想我们手里有什么信息,好吧,只有一些样及其对应的
,这种情况下这几个问题是无法回答的,于是我们需要拿出增加信息的常用手段——假设。广义线性模型GLM就针对这些问题做出了以下三点假设:
- 定义 y 的估值概率分布属于某种指数分布族,
,其包含多种分布,即是“广义”之所在:
其中是分布的自然参数,
是充分统计量(sufficient statistic, 能为相应分布提供足够信息的统计量),一般情况下
;
是对数分配函数(log partition function),而
、
与
一般都是给定的,随着
的变化,会得到不同的分布。知道了分布的形式,第一个问题也就解决了,使用期望的计算公式,根据分布求期望呗;
-
定义
的估计值
,即
的估计值就是
的期望值,所以这个假设解决了我们的第二个问题;
-
定义线性预测算子,即广义线性模型中的线性因素,对
相关的指数分布族的自然参数
:
,当
是向量时,有
,这个假设告诉了我们参数
所定义的是什么模型,至于
怎么求解——又有分布又有样本,极大似然估计是不是很合适?具体求解我们在后面的具体模型中再细说。
这这些假设条件下,我们对不同数据 得到的其实是不同的响应变量
的分布(因为虽然
没变,但分布
的参数
发生了改变),不同分布的期望不同,即得到不同的估计值。这就是GLM的基本逻辑,下面我们来了解一下GLM的结构。
2.2 GLM的结构及推导
广义线性模型GLM包含3个部分: Random Component(随机成分)、System Component(系统成分) 和 Link Function(联结函数),这也是回归问题中普遍都要有的三个部分。
System Component(系统成分)
系统成分是给定的回归中,用来解释研究现象的部分,好像很抽象,我理解的就是System Component描述了这个问题的形态,比如在GLM中,系统成分是linear predictor(线性预测算子),这里对应着我们上面的第三点假设 :。
Random Component(随机成分)
随机成分则是用来定义待预测的未知的形态,即响应变量的形态。在GLM中,就是指数分布族模型,对应着我们上面假设中的第一点:。
指数族分布的例子:
![](https://img.haomeiwen.com/i13769454/8eb93abfc60db230.png)
Link Function(联结函数)
联结函数,顾名思义,它描述了随机成分与系统成分之间的关系,在GLM中,联结函数连接了响应变量的期望(也就是我们的预测目标)与linear predictor,那他是怎么连接的呢?怎么理解这个事呢?下面我们来推导一下:
根据假设已知:
所以:
极大似然估计求参数:
所以:
因为我们假设线性预测算子,所以:
因此可以说:联结函数连接了响应变量的期望(也就是我们的预测目标)与linear predictor。实际上, link function 把原始的值域(预测目标)转换统一到了 linear predictor 的值域上,反之,link function 的反函数就把 linear predictor 直接映射到了预测目标
, 反函数
称为响应函数(response function),较常用的响应函数例如logistic(sigmoid)、softmax(都是 logit 的反函数)。
举例
- 比如在线性回归中,
,响应变量服从正态分布,按照指数分布族来表示:
其中,,可知线性回归的联结函数:
,相当于没有对linear predictor 的值域做转换。
- 而在逻辑回归中,
,响应变量服从二项分布,按照指数分布族来表示:
其中
![](https://img.haomeiwen.com/i13769454/831d6b187ca2ab00.png)
所以,联结函数:
![](https://img.haomeiwen.com/i13769454/4c527a1a5db1d411.png)
可知逻辑回归的联结函数:,即logit函数,logit函数能把自变量从(0,1)连续单调地映射到正负无穷,相当于对linear predictor 的值域
做了映射到
的转换,其响应函数
,即logistic 或 sigmoid函数。
总结
通过以上的推导我们发现:一旦给定待估计的 的概率分布的指数分布族形式(也就是给定了具体的
),那么我们就可以直接套用公式
构建回归模型,这可能也是GLM假设了指数分布族这么一个奇怪的分布形式的原因吧。
以上就是广义线性模型的基本内容,根据这些假设和结构,我们就可以构造出常用的线性回归、逻辑回归之类的算法了,下一篇我们就具体讲一下线性回归相关的内容。
主要参考
斯坦福CS229机器学习课程
GLM(广义线性模型) 与 LR(逻辑回归) 详解
广义线性模型中, 联系函数(link function) 的作用是不是就是将不是正态分布的Y转换成正态分布?——知乎