本文旨在将一些线性模型统一放在广义线性模型的体系下,从而更好的理解这些模型之间的联系和区别,属于总结和复习,最好对线性回归、逻辑回归稍微有所了解,不过后面几篇也是会复习到这些内容的。
1 概念理解
什么是广义线性模型?如果用大白话来翻译的话,就是:适用性更广的、更抽象的线性模型。我们可能平时使用的更多的是像线性回归、逻辑回归之类的比较具体的线性模型,他们会有各自独特的假设和适用场景,而广义线性模型的广义就体现在他的假设和适用场景范围更大,能把线性回归、逻辑回归之类的模型都囊括其中。
其实按我们编程的思路来想,广义线性模型GLM就像是抽象出来的一个抽象类,这个类定义了抽象的假设方法、属性等,在面对具体问题时,我们不能用这个抽象类来直接解决问题的,需要针对场景来实现一个可实例化的类,比如面对二分类问题我们继承GLM类,实现一个逻辑回归类,用逻辑回归来解决具体问题。广义线性模型GLM并不是这个类的源头,再向上还可以抽象出广义线性混合模型GLMM类,再向上抽象还有投影寻踪回归PPR类...估计这个分支抽象到最后就成了“模型”类。(当然,比如线性回归也并不是说只能抽象成GLM,也可能抽象成广义相加模型(GAM),这些方法本文不做详述)
本文中我们不会涉及太高层的抽象类,只稍微提一下广义线性混合模型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中,就是指数分布族模型,对应着我们上面假设中的第一点:。
指数族分布的例子:
Link Function(联结函数)
联结函数,顾名思义,它描述了随机成分与系统成分之间的关系,在GLM中,联结函数连接了响应变量的期望(也就是我们的预测目标)与linear predictor,那他是怎么连接的呢?怎么理解这个事呢?下面我们来推导一下:
根据假设已知:
所以:
极大似然估计求参数:
所以:
因为我们假设线性预测算子,所以:
因此可以说:联结函数连接了响应变量的期望(也就是我们的预测目标)与linear predictor。实际上, link function 把原始的值域(预测目标)转换统一到了 linear predictor 的值域上,反之,link function 的反函数就把 linear predictor 直接映射到了预测目标 , 反函数 称为响应函数(response function),较常用的响应函数例如logistic(sigmoid)、softmax(都是 logit 的反函数)。
举例
- 比如在线性回归中,,响应变量服从正态分布,按照指数分布族来表示:
其中,,可知线性回归的联结函数:,相当于没有对linear predictor 的值域做转换。
- 而在逻辑回归中,,响应变量服从二项分布,按照指数分布族来表示:
其中
所以,联结函数:
可知逻辑回归的联结函数:,即logit函数,logit函数能把自变量从(0,1)连续单调地映射到正负无穷,相当于对linear predictor 的值域做了映射到的转换,其响应函数,即logistic 或 sigmoid函数。
总结
通过以上的推导我们发现:一旦给定待估计的 的概率分布的指数分布族形式(也就是给定了具体的 ),那么我们就可以直接套用公式 构建回归模型,这可能也是GLM假设了指数分布族这么一个奇怪的分布形式的原因吧。
以上就是广义线性模型的基本内容,根据这些假设和结构,我们就可以构造出常用的线性回归、逻辑回归之类的算法了,下一篇我们就具体讲一下线性回归相关的内容。
主要参考
斯坦福CS229机器学习课程
GLM(广义线性模型) 与 LR(逻辑回归) 详解
广义线性模型中, 联系函数(link function) 的作用是不是就是将不是正态分布的Y转换成正态分布?——知乎