上海某量化私募的两位研究员同一天上午被同一类工具卡住:小赵在搭一个「明日是否跑赢沪深300」的择时信号,标签是二元的 0/1;小李在 50ETF 期权做市数据上估「下一分钟到单笔数」,响应是非负整数 0,1,2,…。模块前三课的普通最小二乘(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)三件:
Yi∼exponential family,ηi=xi⊤β,g(μi)=ηi,μi=E[Yi∣xi].
(R)随机成分:Yi 独立服从一参数指数族(one-parameter exponential family),密度形如
f(y;θ,ϕ)=exp(a(ϕ)yθ−b(θ)+c(y,ϕ)),E[Y]=b′(θ)=μ,Var(Y)=a(ϕ)b′′(θ)=a(ϕ)V(μ).
θ 是自然参数(或叫典则参数,canonical parameter),ϕ 是散布参数(dispersion parameter,Bernoulli 与 Poisson 取 ϕ=1,正态取 ϕ=σ2),b(θ) 是累积量母函数,V(μ)=b′′(θ) 是方差函数。
(S)系统成分:与前三课完全一致的线性预测变量 ηi=xi⊤β,β∈Rp,设计矩阵 X∈Rn×p。
(L)联系函数(link function)g 需平滑、单调、可逆,把均值连到线性预测上:μi=g−1(ηi)。当 g(μ)=θ——即 η=θ——时,g 叫典则联系(canonical link),此时得分函数与 Hessian 形式最干净,充分统计量恰好是 X⊤y。换个说法:典则联系是「让响应里关于 β 的信息全部沿着 X⊤y 集中起来」的那个独一无二的选择;其他可逆联系也能用,只是得分会带一个额外因子 g′(μ),代数变脏但本质不变。本课全程默认典则联系。
二、三类必须上手的范例
按典则联系分别看三种最常见的 GLM:
- 正态—恒等(Normal–identity)。θ=μ,b(θ)=θ2/2,a(ϕ)=σ2,V(μ)=1。典则联系为恒等 g(μ)=μ,于是 η=μ=x⊤β——退化为模块前三课的线性回归,正规方程(normal equations)X⊤Xβ=X⊤y 给出闭式 β^OLS。
- 伯努利—logit(Bernoulli–logit)。θ=log(μ/(1−μ)),b(θ)=log(1+eθ),a(ϕ)=1,V(μ)=μ(1−μ)。典则联系是 logit:
log(1−μμ)=x⊤β⟺μ=1+exp(−x⊤β)1.
这是 logistic 回归——二元分类的主力。系数 βj 的解释是对数几率比(log-odds-ratio):xj 增加一单位,几率(odds)μ/(1−μ) 乘以 exp(βj)。(若响应有 K>2 个无序类别,自然推广是多项 logistic / softmax,模块 2.6.1 详谈,本课不展开。)
- 泊松—log(Poisson–log)。θ=logμ,b(θ)=eθ,a(ϕ)=1,V(μ)=μ。典则联系是对数:
logμ=x⊤β⟺μ=exp(x⊤β),Var(Y)=μ.
这是 Poisson 回归——计数响应的标配。系数 βj 的解释是乘法效应:xj 增加一单位,期望计数乘以 exp(βj)。若样本里 Var(Y)>μ(过度散布,overdispersion),标准做法是改用 quasi-Poisson(自由 ϕ)或负二项回归,名字记住即可,本课不展开。
三、似然、得分与 IRLS
在典则联系下(为简洁取 a(ϕ)=ϕ),GLM 的对数似然为
ℓ(β)=i∑ϕyiθi(β)−b(θi(β))+i∑c(yi,ϕ),θi=ηi=xi⊤β.
对 β 求导,得到得分函数与Fisher 信息量:
U(β)=ϕX⊤(y−μ),I(β)=ϕX⊤WX,W=diag(V(μi)).
令 U(β)=0 得 GLM 版本的正规方程 X⊤(y−μ(β))=0——一般非线性,除正态—恒等情形外无闭式。用 Newton–Raphson 迭代,可改写成迭代重加权最小二乘(iteratively reweighted least squares, IRLS):
β(t+1)=(X⊤W(t)X)−1X⊤W(t)z(t),z(t)=Xβ(t)+W(t),−1(y−μ(t)).
每一步都是一次加权 OLS,z(t) 是「调整响应」(adjusted response)。推导一行:Newton 步本身是 β(t+1)=β(t)+(X⊤W(t)X)−1X⊤(y−μ(t)),把第一项 β(t) 写成 (X⊤W(t)X)−1(X⊤W(t)X)β(t) 后合并提出 (X⊤W(t)X)−1X⊤W(t),剩下的就是 Xβ(t)+W(t),−1(y−μ(t)),即 z(t) 的定义。这一观察很重要:任何 GLM——logistic、Poisson、Gamma——在实现层面都是反复跑加权线性回归,模块第 1 课写的 (X⊤X)−1X⊤y 求解器在这里一行没改,只是套上权重 W 与响应 z。
四、Logistic 回归得分的直接推导
绕开 GLM 的一般公式,直接对伯努利似然做一次微分,验证上节结论。
- Bernoulli 似然:P(Yi=yi∣xi)=μiyi(1−μi)1−yi,μi=1/(1+exp(−xi⊤β))。
- 取对数,代入 log(μi/(1−μi))=xi⊤β 与 log(1−μi)=−log(1+exp(xi⊤β)):
ℓ(β)=i∑[yixi⊤β−log(1+exp(xi⊤β))].
- 对 β 求导,利用 ∂/∂βlog(1+exi⊤β)=μixi,得到
∂β∂ℓ=i∑(yi−μi)xi=X⊤(y−μ),
恰是 ϕ=1 时的 U(β)。这里 sigmoid 函数 σ(t)=1/(1+e−t) 的导数满足 σ′(t)=σ(t)(1−σ(t)),所以 ∂μi/∂β=μi(1−μi)xi——这正是上一节 W=diag(μi(1−μi)) 的来历。沿同一路径对 Poisson 似然重做一次,会得到形式完全一致的 X⊤(y−μ) 与 W=diag(μi),这就是「指数族 + 典则联系」给出的统一性。
下面的滑块可视化一元 logistic 回归的拟合概率 μ(x)=1/(1+exp(−(β0+β1x))) 随 x 的形状:拖动 β1 看 S 型曲线变陡,拖动 β0 看曲线左右平移。
Formula Explorer
1 / (1 + exp(-(beta_0 + beta_1 * x)))
五、偏差与推断
GLM 用偏差(deviance)替代 OLS 的残差平方和(RSS)做拟合度量与检验:
D(y,μ^)=2(ℓsat(y)−ℓ(β^)),ΔD=Dreduced−Dfulldχq2.
其中 ℓsat 是「饱和模型」(saturated model,每观测一个自由 μi,使 μ^i=yi)的对数似然,可视为「这组数据能解释的最大对数似然」;所以 D 度量「当前拟合 μ^ 与最优可能拟合之间的差距」——它在 GLM 里替代 OLS 的 RSS,但不必假设响应正态。三个范例:正态情形 D=RSS/σ2;伯努利情形 D=−2∑[yilogμ^i+(1−yi)log(1−μ^i)],正好是机器学习里的二元交叉熵(乘 2);泊松情形 D=2∑[yilog(yi/μ^i)−(yi−μ^i)]。ΔD 的极限分布在 H0「q 个线性约束成立」下为 χq2,这是 Wilks (1938) 似然比定理的一个直接推论(完整证明属于高级数理统计,参考 McCullagh & Nelder 第 4 章)。
偏差差检验是模块第 2 课 F 检验的渐近版,适用于嵌套模型(nested-model test)。对单个系数,两种渐近检验并行:
- Wald 检验:z=β^j/SE(β^j)dN(0,1),SE(β^j)=[(X⊤W^X)−1ϕ]jj;渐近 1−α 置信区间为 β^j±zα/2SE(β^j)。
- 似然比检验(LRT):对 q=1 个约束,ΔDdχ12。小样本或 β^j 远离零时,LRT 通常比 Wald 更稳。
Exercise
考虑一元 logistic 回归 log(μi/(1−μi))=β0+β1xi,Yi 独立服从 Bernoulli(μi)。(a) 写出 n 个观测的对数似然 ℓ(β0,β1)。(b) 推导得分向量 U(β)=(∂ℓ/∂β0,∂ℓ/∂β1)⊤,并证明 U(β)=X⊤(y−μ),其中 X=[1,x],μ=1/(1+exp(−Xβ))。(c) 写出一次 IRLS 迭代:取 β(0)=0,依次给出 μ(0)、W(0)、调整响应 z(0),以及下一步 β(1)=(X⊤W(0)X)−1X⊤W(0)z(0)。(d) 将 exp(β1) 解释为几率比,并说明 β1=log2 在「x 增加一单位对几率的影响」上意味着什么。
提示
把伯努利概率
μiyi(1−μi)1−yi 取 log;代入
log1−μiμi=xi⊤β 与
log(1−μi)=−log(1+exi⊤β),
ℓ 化简为
∑i[yixi⊤β−log(1+exi⊤β)]。
提示
(c) 取
β(0)=0,则
μi(0)=1/2,
W(0)=41In,
z(0)=0+4(y−21)=4y−2;代入加权 OLS 公式即可,体会「每步都是一次加权回归」。
六、下一步
回到模块视角:第 1 课你用几何把 OLS 钉在投影上,第 2 课用 Gauss–Markov 与 t/F 检验给它配上不确定性,第 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 改个名字;在 4.2.2「信号构建」里,Poisson 回归是建模委托单到达、新闻事件计数与曝光加权暴露的标配。再往后,生存分析的 Cox 比例风险模型可视为「响应是删失时间」时的 GLM 类推,等讲到时再展开。