← 返回模块
2.2.2.4beta 可读 · 未来付费校验通过内容版本 2026-05-25

广义线性模型

2.2.2 · 回归与广义线性模型 · 数学与统计能力

上海某量化私募的两位研究员同一天上午被同一类工具卡住:小赵在搭一个「明日是否跑赢沪深300」的择时信号,标签是二元的 0/1;小李在 50ETF 期权做市数据上估「下一分钟到单笔数」,响应是非负整数 0,1,2,0,1,2,\dots。模块前三课的普通最小二乘(ordinary least squares, OLS)对这两个任务都派不上用场——OLS 默认响应在正态分布(Gaussian distribution)噪声下取实数值,而 0/1 与计数都不是。本课把前三课的「线性预测变量 + 极大似然估计(maximum likelihood estimation, MLE)+ 渐近推断」这套机器装进一个更宽的框架——广义线性模型(generalized linear model, GLM)——让同一套语言同时覆盖回归、二元分类与计数。GLM 由 Nelder 与 Wedderburn (1972, JRSS-A 135: 370–384) 提出,如今 R 的 glm 与 Python statsmodels.GLM 默认实现的就是它。这门课的作用是把模块前三课的所有零件——线性预测、最小二乘几何、Gauss–Markov 抽样分布、岭与 lasso 正则化——汇成一条更长的链条:同一套「找极大似然解、Wald 做单系数推断、嵌套对数似然做模型比较」的语言,可以直接迁移到二元、计数,甚至时长(time-to-event)等任意指数族响应,而不必每种响应都重新发明一遍代数。

一、GLM 的三件套

GLM 把任何「响应 ↔ 线性预测」任务拆成随机成分(R)、系统成分(S)、联系函数(L)三件:

Yiexponential family,ηi=xiβ,g(μi)=ηi,μi=E[Yixi].Y_i \sim \text{exponential family}, \qquad \eta_i = x_i^\top \beta, \qquad g(\mu_i) = \eta_i, \quad \mu_i = E[Y_i \mid x_i].

(R)​​随机成分​​:YiY_i 独立服从一参数指数族(one-parameter exponential family),密度形如

f(y;θ,ϕ)=exp ⁣(yθb(θ)a(ϕ)+c(y,ϕ)),E[Y]=b(θ)=μ,Var(Y)=a(ϕ)b(θ)=a(ϕ)V(μ).f(y;\theta,\phi) = \exp\!\left( \frac{y\,\theta - b(\theta)}{a(\phi)} + c(y,\phi) \right),\quad E[Y] = b'(\theta) = \mu,\quad \mathrm{Var}(Y) = a(\phi)\,b''(\theta) = a(\phi)\,V(\mu).

θ\theta 是自然参数(或叫典则参数,canonical parameter),ϕ\phi 是散布参数(dispersion parameter,Bernoulli 与 Poisson 取 ϕ=1\phi=1,正态取 ϕ=σ2\phi=\sigma^2),b(θ)b(\theta) 是累积量母函数,V(μ)=b(θ)V(\mu)=b''(\theta) 是方差函数。

(S)​​系统成分​​:与前三课完全一致的线性预测变量 ηi=xiβ\eta_i=x_i^\top\beta,βRp\beta\in\mathbb{R}^p,设计矩阵 XRn×pX\in\mathbb{R}^{n\times p}

(L)​​联系函数​​(link function)gg 需平滑、单调、可逆,把均值连到线性预测上:μi=g1(ηi)\mu_i=g^{-1}(\eta_i)。当 g(μ)=θg(\mu)=\theta——即 η=θ\eta=\theta——时,gg 叫​​典则联系​​(canonical link),此时得分函数与 Hessian 形式最干净,充分统计量恰好是 XyX^\top y。换个说法:典则联系是「让响应里关于 β\beta 的信息全部沿着 XyX^\top y 集中起来」的那个独一无二的选择;其他可逆联系也能用,只是得分会带一个额外因子 g(μ)g'(\mu),代数变脏但本质不变。本课全程默认典则联系。

二、三类必须上手的范例

按典则联系分别看三种最常见的 GLM:

  • ​正态—恒等(Normal–identity)​​。θ=μ\theta=\mu,b(θ)=θ2/2b(\theta)=\theta^2/2,a(ϕ)=σ2a(\phi)=\sigma^2,V(μ)=1V(\mu)=1。典则联系为恒等 g(μ)=μg(\mu)=\mu,于是 η=μ=xβ\eta=\mu=x^\top\beta——退化为模块前三课的线性回归,正规方程(normal equations)XXβ=XyX^\top X\beta=X^\top y 给出闭式 β^OLS\hat\beta_{\mathrm{OLS}}
  • ​伯努利—logit(Bernoulli–logit)​​。θ=log(μ/(1μ))\theta=\log(\mu/(1-\mu)),b(θ)=log(1+eθ)b(\theta)=\log(1+e^\theta),a(ϕ)=1a(\phi)=1,V(μ)=μ(1μ)V(\mu)=\mu(1-\mu)。典则联系是 logit:
log ⁣(μ1μ)=xβμ=11+exp(xβ).\log\!\left( \frac{\mu}{1-\mu} \right) = x^\top \beta \quad\Longleftrightarrow\quad \mu = \frac{1}{1+\exp(-x^\top \beta)}.

这是 ​logistic 回归​​——二元分类的主力。系数 βj\beta_j 的解释是​​对数几率比​​(log-odds-ratio):xjx_j 增加一单位,几率(odds)μ/(1μ)\mu/(1-\mu) 乘以 exp(βj)\exp(\beta_j)。(若响应有 K>2K>2 个无序类别,自然推广是多项 logistic / softmax,模块 2.6.1 详谈,本课不展开。)

  • ​泊松—log(Poisson–log)​​。θ=logμ\theta=\log\mu,b(θ)=eθb(\theta)=e^\theta,a(ϕ)=1a(\phi)=1,V(μ)=μV(\mu)=\mu。典则联系是对数:
logμ=xβμ=exp(xβ),Var(Y)=μ.\log\mu = x^\top \beta \quad\Longleftrightarrow\quad \mu = \exp(x^\top \beta), \qquad \mathrm{Var}(Y) = \mu.

这是 ​Poisson 回归​​——计数响应的标配。系数 βj\beta_j 的解释是​​乘法效应​​:xjx_j 增加一单位,期望计数乘以 exp(βj)\exp(\beta_j)。若样本里 Var(Y)>μ\mathrm{Var}(Y)>\mu(过度散布,overdispersion),标准做法是改用 quasi-Poisson(自由 ϕ\phi)或负二项回归,名字记住即可,本课不展开。

三、似然、得分与 IRLS

在典则联系下(为简洁取 a(ϕ)=ϕa(\phi)=\phi),GLM 的对数似然为

(β)=iyiθi(β)b(θi(β))ϕ+ic(yi,ϕ),θi=ηi=xiβ.\ell(\beta) = \sum_i \frac{y_i\,\theta_i(\beta) - b(\theta_i(\beta))}{\phi} + \sum_i c(y_i,\phi), \qquad \theta_i = \eta_i = x_i^\top \beta.

β\beta 求导,得到​​得分函数​​与​​Fisher 信息量​​:

U(β)=X(yμ)ϕ,I(β)=XWXϕ,W=diag(V(μi)).U(\beta) = \frac{X^\top (y - \mu)}{\phi}, \qquad I(\beta) = \frac{X^\top W X}{\phi}, \quad W = \mathrm{diag}(V(\mu_i)).

U(β)=0U(\beta)=0 得 GLM 版本的正规方程 X(yμ(β))=0X^\top(y-\mu(\beta))=0——一般非线性,除正态—恒等情形外无闭式。用 Newton–Raphson 迭代,可改写成​​迭代重加权最小二乘​​(iteratively reweighted least squares, IRLS):

β(t+1)=(XW(t)X)1XW(t)z(t),z(t)=Xβ(t)+W(t),1(yμ(t)).\beta^{(t+1)} = (X^\top W^{(t)} X)^{-1} X^\top W^{(t)} z^{(t)}, \qquad z^{(t)} = X\beta^{(t)} + W^{(t),-1}(y - \mu^{(t)}).

每一步都是一次加权 OLS,z(t)z^{(t)} 是「调整响应」(adjusted response)。推导一行:Newton 步本身是 β(t+1)=β(t)+(XW(t)X)1X(yμ(t))\beta^{(t+1)}=\beta^{(t)}+(X^\top W^{(t)}X)^{-1}X^\top(y-\mu^{(t)}),把第一项 β(t)\beta^{(t)} 写成 (XW(t)X)1(XW(t)X)β(t)(X^\top W^{(t)} X)^{-1}(X^\top W^{(t)} X)\beta^{(t)} 后合并提出 (XW(t)X)1XW(t)(X^\top W^{(t)} X)^{-1} X^\top W^{(t)},剩下的就是 Xβ(t)+W(t),1(yμ(t))X\beta^{(t)}+W^{(t),-1}(y-\mu^{(t)}),即 z(t)z^{(t)} 的定义。这一观察很重要:任何 GLM——logistic、Poisson、Gamma——在实现层面都是反复跑加权线性回归,模块第 1 课写的 (XX)1Xy(X^\top X)^{-1}X^\top y 求解器在这里一行没改,只是套上权重 WW 与响应 zz

四、Logistic 回归得分的直接推导

绕开 GLM 的一般公式,直接对伯努利似然做一次微分,验证上节结论。

  1. Bernoulli 似然:P(Yi=yixi)=μiyi(1μi)1yiP(Y_i=y_i\mid x_i)=\mu_i^{y_i}(1-\mu_i)^{1-y_i},μi=1/(1+exp(xiβ))\mu_i=1/(1+\exp(-x_i^\top\beta))
  2. 取对数,代入 log(μi/(1μi))=xiβ\log(\mu_i/(1-\mu_i))=x_i^\top\betalog(1μi)=log(1+exp(xiβ))\log(1-\mu_i)=-\log(1+\exp(x_i^\top\beta)):
(β)=i[yixiβlog(1+exp(xiβ))].\ell(\beta) = \sum_i \left[\, y_i\, x_i^\top\beta - \log(1+\exp(x_i^\top\beta)) \,\right].
  1. β\beta 求导,利用 /βlog(1+exiβ)=μixi\partial/\partial\beta \log(1+e^{x_i^\top\beta}) = \mu_i\,x_i,得到
β=i(yiμi)xi=X(yμ),\frac{\partial \ell}{\partial \beta} = \sum_i (y_i - \mu_i)\,x_i = X^\top (y - \mu),

恰是 ϕ=1\phi=1 时的 U(β)U(\beta)。这里 sigmoid 函数 σ(t)=1/(1+et)\sigma(t)=1/(1+e^{-t}) 的导数满足 σ(t)=σ(t)(1σ(t))\sigma'(t)=\sigma(t)(1-\sigma(t)),所以 μi/β=μi(1μi)xi\partial\mu_i/\partial\beta=\mu_i(1-\mu_i)x_i——这正是上一节 W=diag(μi(1μi))W=\mathrm{diag}(\mu_i(1-\mu_i)) 的来历。沿同一路径对 Poisson 似然重做一次,会得到形式完全一致的 X(yμ)X^\top(y-\mu)W=diag(μi)W=\mathrm{diag}(\mu_i),这就是「指数族 + 典则联系」给出的统一性。

下面的滑块可视化一元 logistic 回归的拟合概率 μ(x)=1/(1+exp((β0+β1x)))\mu(x)=1/(1+\exp(-(\beta_0+\beta_1 x)))xx 的形状:拖动 β1\beta_1 看 S 型曲线变陡,拖动 β0\beta_0 看曲线左右平移。

Formula Explorer

1 / (1 + exp(-(beta_0 + beta_1 * x)))

五、偏差与推断

GLM 用​​偏差​​(deviance)替代 OLS 的残差平方和(RSS)做拟合度量与检验:

D(y,μ^)=2(sat(y)(β^)),ΔD=DreducedDfulldχq2.D(y, \hat\mu) = 2\,(\ell_{\mathrm{sat}}(y) - \ell(\hat\beta)), \qquad \Delta D = D_{\mathrm{reduced}} - D_{\mathrm{full}} \xrightarrow{d} \chi^2_q.

其中 sat\ell_{\mathrm{sat}} 是「饱和模型」(saturated model,每观测一个自由 μi\mu_i,使 μ^i=yi\hat\mu_i=y_i)的对数似然,可视为「这组数据能解释的最大对数似然」;所以 DD 度量「当前拟合 μ^\hat\mu 与最优可能拟合之间的差距」——它在 GLM 里替代 OLS 的 RSS\mathrm{RSS},但不必假设响应正态。三个范例:正态情形 D=RSS/σ2D=\mathrm{RSS}/\sigma^2;伯努利情形 D=2[yilogμ^i+(1yi)log(1μ^i)]D=-2\sum[y_i\log\hat\mu_i+(1-y_i)\log(1-\hat\mu_i)],正好是机器学习里的二元交叉熵(乘 2);泊松情形 D=2[yilog(yi/μ^i)(yiμ^i)]D=2\sum[y_i\log(y_i/\hat\mu_i)-(y_i-\hat\mu_i)]ΔD\Delta D 的极限分布在 H0H_0qq 个线性约束成立」下为 χq2\chi^2_q,这是 Wilks (1938) 似然比定理的一个直接推论(完整证明属于高级数理统计,参考 McCullagh & Nelder 第 4 章)。

偏差差检验是模块第 2 课 F 检验的渐近版,适用于嵌套模型(nested-model test)。对单个系数,两种渐近检验并行:

  • ​Wald 检验​​:z=β^j/SE(β^j)dN(0,1)z=\hat\beta_j/\mathrm{SE}(\hat\beta_j)\xrightarrow{d}\mathcal{N}(0,1),SE(β^j)=[(XW^X)1ϕ]jj\mathrm{SE}(\hat\beta_j)=\sqrt{[(X^\top\hat W X)^{-1}\phi]_{jj}};渐近 1α1-\alpha 置信区间为 β^j±zα/2SE(β^j)\hat\beta_j\pm z_{\alpha/2}\mathrm{SE}(\hat\beta_j)
  • ​似然比检验(LRT)​​:对 q=1q=1 个约束,ΔDdχ12\Delta D\xrightarrow{d}\chi^2_1。小样本或 β^j\hat\beta_j 远离零时,LRT 通常比 Wald 更稳。

Exercise

考虑一元 logistic 回归 log(μi/(1μi))=β0+β1xi\log(\mu_i/(1-\mu_i))=\beta_0+\beta_1 x_i,YiY_i 独立服从 Bernoulli(μi)\mathrm{Bernoulli}(\mu_i)。(a) 写出 nn 个观测的对数似然 (β0,β1)\ell(\beta_0,\beta_1)。(b) 推导得分向量 U(β)=(/β0,/β1)U(\beta)=(\partial\ell/\partial\beta_0,\partial\ell/\partial\beta_1)^\top,并证明 U(β)=X(yμ)U(\beta)=X^\top(y-\mu),其中 X=[1,x]X=[\mathbf{1},x],μ=1/(1+exp(Xβ))\mu=1/(1+\exp(-X\beta))。(c) 写出一次 IRLS 迭代:取 β(0)=0\beta^{(0)}=\mathbf 0,依次给出 μ(0)\mu^{(0)}W(0)W^{(0)}、调整响应 z(0)z^{(0)},以及下一步 β(1)=(XW(0)X)1XW(0)z(0)\beta^{(1)}=(X^\top W^{(0)} X)^{-1} X^\top W^{(0)} z^{(0)}。(d) 将 exp(β1)\exp(\beta_1) 解释为几率比,并说明 β1=log2\beta_1=\log 2 在「xx 增加一单位对几率的影响」上意味着什么。

提示
把伯努利概率 μiyi(1μi)1yi\mu_i^{y_i}(1-\mu_i)^{1-y_i} 取 log;代入 logμi1μi=xiβ\log\frac{\mu_i}{1-\mu_i}=x_i^\top\betalog(1μi)=log(1+exiβ)\log(1-\mu_i)=-\log(1+e^{x_i^\top\beta}),\ell 化简为 i[yixiβlog(1+exiβ)]\sum_i[y_i x_i^\top\beta-\log(1+e^{x_i^\top\beta})]
提示
(c) 取 β(0)=0\beta^{(0)}=\mathbf 0,则 μi(0)=1/2\mu_i^{(0)}=1/2,W(0)=14InW^{(0)}=\tfrac14 I_n,z(0)=0+4(y12)=4y2z^{(0)}=\mathbf 0+4(y-\tfrac12)=4y-2;代入加权 OLS 公式即可,体会「每步都是一次加权回归」。

六、下一步

回到模块视角:第 1 课你用几何把 OLS 钉在投影上,第 2 课用 Gauss–Markov 与 tt/FF 检验给它配上不确定性,第 3 课用诊断与正则化把它武装好对付脏数据,本课把这一切搬进 GLM 框架。模块 2.2.2 的工具箱到这里合拢:OLS 是 GLM 在「正态—恒等」上的特例,logistic 回归与 Poisson 回归是同一框架在伯努利与泊松上的实例,第 3 课的岭回归(ridge)与 lasso 直接推广为「带惩罚 IRLS」(penalized IRLS),R 的 glmnet 即是这条公式。再往前看,本课作为模块收尾,把 OLS 框架推广到二值和计数响应,并搭建到 2.6 章(机器学习理论)与 4.2.2 章(信号构建)的桥梁:在 2.6.1「监督学习基础」里,logistic 回归会以「二元分类的基线模型」身份再次出现,深度学习里常说的二元交叉熵损失,正是这里的 (β)/n-\ell(\beta)/n 改个名字;在 4.2.2「信号构建」里,Poisson 回归是建模委托单到达、新闻事件计数与曝光加权暴露的标配。再往后,生存分析的 Cox 比例风险模型可视为「响应是删失时间」时的 GLM 类推,等讲到时再展开。