GLM(Generalized Linear Model), 广义线性模型,是从普通线性模型(ordinary linear model) 引申出来的。它是一种概念,定义的是一类模型,线性回归、逻辑回归和泊松回归,都属于广义线性模型。
要说哪怕文章比较完整地介绍好了 GLM,还得是维基百科。得好好看,应该比大部分博客讲得好。此外,指数分布族和广义线性回归 也算简洁易懂的。其他大部分博客都是缝合怪,包括我这篇……
在这里,线性模型(linear model)和线性回归(linear regression)是同义、等价的。 因为根据维基百科 Linear model, 在统计学的回归模型语境下,二者是 synonymous 的。 本文里,为了对应,当我们说到广义线性模型时,我们相应地使用(一般)线性模型这个词; 而在说到具体回归模型时,我们使用线性回归这个术语。
普通线性模型
普通线性模型的表达式为:
\[\newcommand{\bs}{\boldsymbol} y = {\bs{\beta}}^T [\bs{x};1] + \epsilon\]其中
- $y$ 是因变量 $Y$ 的一个取值,机器学习里其一般是 scalar 的(即非多元)
- $\bs{x}$ 是自变量 $X$ 的一个观测(取值), $[\bs{x};1] = {x_1, x_2, \cdots, x_n, 1}$ 是齐次向量
- $\bs{\beta}^T = {\beta_1, \beta_2, \cdots, \beta_n, \beta_0}$ 表示对 $[\bs{x};1]$ 各维度的线性组合(含 bias $\beta_0$),是待求解参数
- $\epsilon$ 是噪声项,表示白噪声过程,服从 0 均值、同方差的正态分布。
一定要注意这里的噪声项!它必须要有,不然
1. 没法解释为何观测的 $y$ 和预测的值 $\hat{y}$ 有差异;
2. 没有此项,右边乘出来就是一个确定值,没法与左边的随机变量相等。
关注本文的大小写(如 $Y$/$y$ 等)符号:
目前不是很规范,也不是很清楚。目前假定大写的字母表示整个分布,或者数据集全部构成的列表(或矩阵), 而小写的字母则表示单个观测/样本。
线性模型对各变量的要求和设置如下:
-
因变量 $Y$ 属于正态分布!
如常用线性回归来建模的“房价预测”问题,其因变量 $Y = \textit{某区域房价}$ 就属于正态分布。
这里有一个疑问: $Y$ 的分布,是指 $Y$ 作为单个随机变量自身的分布(与 $X$ 无关),还是说是 $Y$ given x 的条件分布? 感觉是说随机变量本身的分布更合适?
- 自变量观测 $\bs{x}$ 和未知参数 $\bs{\beta}$ 具有非随机性:即 $\bs{x}$ 是确定的(毕竟数据已经确定了), $\bs{\beta}$ 虽然未知,但也是确定的。
-
研究对象是给定 $X$ 下 $Y$ 的均值(期望)$E[Y \mid X]$. 用维基百科里的话,即 the expected value of $Y$ conditional on $X$
我们求解的是条件期望!
以前学线性回归,根本没有考虑过 $Y$ 应该满足的分布, 单纯认为 $Y$ 是连续值即可。也没有想到我们求解的是 $E[Y \mid X]$.
由上,可知普通线性模型只能处理 $Y$ 属于正态分布的场景, 能不能扩展一下上述定义,让自变量的线性组合,可以表达更多分布类型的因变量呢? 可以,这便引出 GLM 了。
广义线性模型
1972 年,John Nelder 和 Robert Wedderburn 在 Journal of the Royal Statistical Society, Series A 发表文章 Generalized Linear Model, 将不同分布的因变量 $Y$ 与自变量 $X$ 的线性组合通过 link-function
联系起来,
从而实现了线性模型的泛化。
GLM 由如下部分组成:
-
因变量 $Y$, 分布属于指数族(exponential family). 指数族分布是 GLM 的基础。
为什么要求是指数族?因为这是假设!见附录摘录的内容。
-
线性组合 $\eta = \bs{X}\bs{\beta}$, 其中 $\bs{\beta}$ 是参数,未知但确定; $\bs{X}$ 是自变量(样本),同样确定。$\eta$ 也被称为 linear predictor
注意和线性模型相比,这里没有了误差项 $\epsilon$. 为什么可以这样?可以参考附录 yihui 的论述——这个可以看做 GLM 建模思想超越线性模型的点。
-
研究对象 $E[Y \mid X] = \mu$, $\mu$ 是期望值
-
链接函数(
link-function
) $g$,使得 $E[Y \mid X] = g^{-1}(\bs{X}\bs{beta})$, 也即 $\mu = g^{-1}(\eta)$.链接函数连接了 $E[Y\mid X]$ 和 linear predictor,是 GLM 的关键。
注意,链接函数是取反函数,再作用到线性组合上的。也就是说,链接函数是直接作用到 $\mu$ 上的。至于为啥要这样?大概就是 assumption 吧。
相比线性模型,GLM 主要引入 2 个概念,分别是指数族和链接函数,以下分别介绍。
指数族
指数族-张振虎的博客里对指数族有细致的描述,这里摘取一些结论的东西:
-
指数族可以写作如下的格式:
\[p(y \mid \theta) = \exp{\phi(\theta)^{T}T(y) + S(y) - A(\theta)}\]其中 $S(y)$ 是基础度量,$T(y)$ 是 $y$ 的统计充分量,而 $A(\theta)$ 是概率的归一化因子(分母)拿到 $\exp$ 里的值。 之所以 $\phi(\theta)^{T}$ 有转置,是因为 $\theta$, $y$ 都可能是向量,这里转置相乘,结果是标量。
进一步为了表示方便,一般令 $\eta = \phi(\theta)^{T}$, 从而上式写作关于 $\eta$ 的函数为:
\[p(y \mid \eta) = \exp{\eta^{T}T(y) + S(y) - A(\eta)}\]$T(y)$ 前面就是 $\eta$, 没有别的变换,称其为指数族的标准形式(canonical form), $\eta$ 也叫标准参数(canonical parameter)或自然参数(natual parameter).
-
指数族标准形式有一个很好的性质: $E[T(y\mid\eta)]$ 的期望,就是 $A(\eta)$ 的一阶导数(方差则是二阶导数)。
怎么证明的?泛泛地看,因为前面说过 $A(\eta)$ 本来就是概率归一化因子的变形,也即它本就含 $p(y\mid\eta)$ 的积分;
这里看下简单的伯努利分布如何化为标准指数族形式:
伯努利分布通常来描述一个随机事件 $Y$ 是否出现(0/1),仅含一个参数 $\theta \in [0, 1]$. 如 $Y$ = 抛硬币1次正面向, 满足 $\theta = 0.5$ 的伯努利分布。 其概率(质量函数)一般写作如下形式:
\[p(y \mid \theta) = \theta^{y}(1-\theta)^{1-y}\]将其改写为指数族形式(加 $\exp$):
\[\begin{split} p(y\mid\theta) &= \theta^{y}(1-\theta)^{1-y} \\ &= \exp \lbrace \ln(\theta^{y}(1-\theta)^{1-y})\rbrace \\ &= \exp \lbrace y\ln\theta + (1-y)\ln(1-\theta) \rbrace \\ &= \exp \lbrace y\ln\theta - y\ln(1-\theta) + \ln(1-\theta) \rbrace \\ &= \exp \lbrace \ln(\frac{\theta}{1 - \theta})y + \ln(1 - \theta) \rbrace \end{split}\]将上式化为 标准形式(canonical form), 令
\[\eta = \ln(\frac{\theta}{1 - \theta})\]则 $\theta = \frac{1}{1 + \exp\lbrace -\eta \rbrace}$,带入有
\[p(y\mid\eta) = \exp \lbrace \eta y + \ln(\frac{\exp \lbrace -\eta \rbrace}{1 + \exp \lbrace -\eta \rbrace}) \rbrace\]对比指数族标准形式的定义(形参),可知:
\[\begin{split} T(y) &= y \\ A(\eta) &= - \ln(\frac{\exp \lbrace -\eta \rbrace}{1 + \exp \lbrace -\eta \rbrace}) \\ &= \ln(1 + \exp\lbrace \eta \rbrace) \\ S(y) &= 0 \end{split}\]伯努利分布的期望 可以直接由 $y * \theta + (1-y) * (1-theta)$ 得到,为 $E[y;\theta] = \theta$.
$;\theta$ 这里表示以 $\theta$ 为参数.
不过我们也可以有前面摘录的第二点,从标准指数族的期望计算方式来计算——也即算 $A(\eta)$ 对 $\eta$ 的一阶导数。
\[\begin{split} E[y;\eta] &= \frac{dA(\eta)}{d\eta} \\ &= \frac{1}{1 + \exp\lbrace -\eta \rbrace} \end{split}\]带入前面的定义 $\eta = \ln(\frac{\theta}{1 - \theta})$, 有
\[E[y;\theta] = \frac{1}{1 + \exp\lbrace - \ln(\frac{\theta}{1 - \theta}) \rbrace} = \theta\]这个算法不知道具体对不对? 结果上倒是凑上了。
链接函数
前面说道链接函数 $g$ 是链接 $Y$ 的期望 $\mu$ 和 link predictor $\bs{X}\bs{\beta}$ 的,而且链接方式也已经定义: $\mu = g^{-1}(\eta)$, 或者 $g(\mu) = \bs{X}\bs{\beta}$ 问题来了,它该怎么求解的?
注意,前面的link predictor 定义为了 $\eta$, 和指数族里的 $\eta$ 冲突了(缝合怪没办法)。这里我们保留指数族的 $\eta$, 而 link predictor 直接用原始变量表示。
这个问题困扰了我很久,我看了一些博客,没能看明白。今天认真读了下 wikipedia 的 GLM, 总算看清楚了:
- There are many commonly used link functions, and their choice is informed by several considerations.
- There is always a well-defined canonical link function which is derived from the exponential of the response’s density function.
- However, in some cases it makes sense to try to match the domain of the link function to the range of the distribution function’s mean, or use a non-canonical link function for algorithmic purposes, for example Bayesian probit regression.
首先明确的就是,链接函数不是求解出来的,是定义出来的。
其次,总是存在一个 canonical link function, 性质是很好的; 但有时也不定用这个标准链接函数,可以看情况。比如在广义线性模型中逻辑回归相关的logit连接函数的概率密度怎么理解? 就讨论了逻辑回归的两种链接函数(probit 和 logit).
我们这里关注 canonical link function, 维基百科上写到:
is the function that expresses $\theta$ in terms of $\mu$, …the function that maps the density function into its canonical form.
本文参数和维基百科的参数定义不一致; 没理解错的话,标准链接函数就是前面那个自然参数的定义,即前面的 $\eta = \phi(\theta)$, 而 $\theta$ 可以用 $\mu$ 来表示。
比如,对符合伯努利分布的 $Y$ 而言, 其
\[\eta = \ln\frac{\theta}{1 - \theta} = \ln\frac{\mu}{1 - \mu}\]则有 $\ln\frac{\mu}{1 - \mu} = \bs{X}\bs{\beta}$. 可以求解出 $\mu = \rm{sigmoid}(-\bs{X}\bs{\beta})$,这也是常见的逻辑回归概率公式的由来。
附录
GLM建模过程:
总结一下GLM的建模过程:
- 根据问题在指数分布族中选择一种分布作为对 $y$ 的假设
- 计算该分布下的$\eta$,即把分布参数 $\theta$ 变为自然参数 $\eta$
- 计算该分布的期望,将其用 $\eta$ 表示。例如伯努利分布时的 $\mu = \frac{1}{1 + \exp\lbrace -\eta \rbrace}$
- 根据GLM的假设, 将上面的 $\eta$ 替换为 $\bs{X}\bs{\beta}$, 即得到GLM模型
统计之都文章评论摘选
yihui: 并不是说把推导什么的都放上来,那样不如干脆推荐读者看书好了。把指数分布族的形式写出来的话,这件事情会明了许多,比如为什么Logistic回归经常用logit联接函数(我见过一些民科的吐血解释)、为什么那个散布参数是个“讨厌参数”(极大似然估计可以扔掉它不管),等等。更深层的意义在于,广义线性模型不是简单的推广分布族,它是另一种思想。普通的回归的中心是加性误差,而GLM则是把模型分成两个组成成分来考虑,一个系统成分(自变量线性组合),一个随机成分(因变量的概率分布),二者用连接函数连起来。你可以说GLM是普通回归的推广,但我觉得这样有点低估它在统计建模思想上的突破。一己之见,供参考,不一定对。
广义线性模型中逻辑回归相关的logit连接函数的概率密度怎么理解?-子元回答
Logit 和 probit 都可以作为 link function 用在面向 binary data 的 GLM 上,其中 logit 是 canonical link function,probit 不是。
先回顾一下指数分布族。指数分布族是一种最大熵分布:在给定的 support 上,它满足约束 $E[\mathbf{T}(X)]=\bs{\mu}E[\mathbf{T}(X)]=\bs{\mu}$ 且微分熵 $E[\log(X)]$ 最大。 它有一般形式 $f(x|\bs{\theta})=h(x)\exp(\bs{\eta}(\bs{\theta})^\mathrm{T}\mathbf{T}(x)-A(\bs{\theta}))$ ,其中约束中所选的 $\mathbf{T}$ 是该分布的充分统计量。 当 $X\in{0,1}$ 且约束为 $E[X]=\mu$ 时,我们得到参数 $\theta=\mu$ 的 Bernoulli 分布,且此时 $\eta(\theta)=\ln\frac{\theta}{1-\theta}$,也就是 logit 函数。
回到 GLM 。GLM 讲的主要是,当响应 $y$ 服从某个指数分布族时,应该如何做回归。在 GLM 中,形状跟 $\bs{\eta}(\bs{\theta})$ 一样的 link function 叫做 canonical link function(此时相当于对 $\bs{\eta}$ 做线性回归, $\bs{\eta}=\mathbf{X}\bs{\beta}+\bs{\epsilon}$),它有一些理论/计算/实验上的良好性质,比如说,充分统计量是 $\mathbf{X}^\mathrm{T}\mathbf{y}$ 、拟合 $\bs{\beta}$ 时牛顿法跟 Fisher scoring 一致、方便做 retrospective studies 等等(见 McCullagh 和 John Nelder 的 Generalized Linear Models)。
为什么广义线性模型(GLM)要求被解释变量属于指数分布族(Exponential Families)?-知乎-莘縣陽谷回答
题主陷入了reasoning的死循环了。其实 exponential fammily 是 GLM 的一个 assumption. 在数学或者逻辑学中assumption是不需证明的。 换句话说,当相互独立的响应变量服从exponential family 时,才能够建立 response variable given canonical parammeter 这个条件期望与 linear predictor 的关系,这就是GLM.
其他参考
https://zhuanlan.zhihu.com/p/124757082 这个文章比较完善,看起来也参考了统计之都的文章。
https://zhuanlan.zhihu.com/p/49267988 伯努利和二项分布