线性回归作为监督学习的基线
Hook:周二早会的 OLS 提问
周二早会上,你向一家头部私募(private fund)的 PM 汇报上周的因子归因。你用沪深300 成份股过去 60 个交易日的横截面数据,对 5 个 Barra 风格因子——市值、估值、动量、质量、低波动——跑了一次普通最小二乘(ordinary least squares, OLS),这是 2.2.2 模块就熟手的动作。PM 听完没追问回归系数本身,只甩出一句更尖的话:「这套估计在样本外是否稳得住?为什么我们要相信下周把同一组因子载荷装进交易系统、它仍然在做正确的事?」翻译成本课的语言:你的 β^ 是 1.1 节里 ERM(empirical risk minimization, 经验风险最小化)框架的特例吗?它在 1.2 节的偏差—方差恒等式里又坐在哪个位置?本节把同一台估计器重新放进监督学习的视角,给出两个新身份——经验风险极小点与极大似然估计(maximum likelihood estimation, MLE)——并诊断它崩盘的标志:协方差矩阵(covariance matrix)的条件数(condition number)爆炸。
一、假设空间与平方损失下的经验风险
锁定假设空间为所有线性函数:
Hlin={h(x)=β⊤x:β∈Rp}.
把第 1 节的平方损失(squared loss)ℓ(h(x),y)=(y−h(x))2 套上去,并在样本 (X,y) 上求经验平均,得到
Rn(β)=n1∥y−Xβ∥22.
这就是 ERM 框架在 Hlin 上的全部目标函数——一个关于 β 的严格凸二次型。它和 2.2.2 节的残差平方和 RSS(β)=∥y−Xβ∥22 仅差一个 1/n 的归一化因子,极小化器相同。换句话说:你已经会算的 OLS 估计量,就是线性假设类上 ERM 的解,没有别的——监督学习的语言为它换了一身外衣,没换骨头。
二、闭式解:正规方程
对 Rn(β) 求梯度并令其为零,代数细节见 2.2.2 节,本节直接引用结论:正规方程(normal equations)X⊤Xβ^=X⊤y 解出
β^=(X⊤X)−1X⊤y.
这一闭式假设设计矩阵 X 列满秩;若 X 列共线,X⊤X 不可逆,需要换成 Moore-Penrose 伪逆 X+(pseudoinverse),完整算法见 2.4.1 节。正规方程的几何身份——y^=Xβ^ 是 y 向 col(X) 的正交投影、残差 e=y−y^ 正交于 X 的每一列——也在 2.4.1 节给出过证明,这里只用结论。下面这个 FormulaExplorer 让你拉动一元情形下的截距与斜率,直观感受单点对 ERM 目标曲面的贡献:
Formula Explorer
(y - (beta0 + beta1 * x))^2
三、概率视角:高斯噪声下 OLS = MLE
给经验风险一个概率出身。假设数据满足 y=Xβ+ε,其中 ε∼N(0,σ2I) 服从多元正态分布(Gaussian distribution)。把每个观测的密度连乘、取对数,得到对数似然
logp(y∣X,β,σ2)=−2nlog(2πσ2)−2σ21∥y−Xβ∥22.
第一项与 β 无关;第二项在 σ2>0 给定时是 ∥y−Xβ∥22 的单调递减函数。所以关于 β 最大化对数似然,与关于 β 最小化 Rn 等价——即极大似然估计满足 β^MLE=β^OLS。σ2 的 MLE 由对 σ2 求偏导后令零得出,记作 σ^MLE2=∥y−Xβ^∥22/n,这是有偏估计,无偏修正记号 s2=RSS/(n−p) 已在 2.2.2 节出现过。这一等价不是巧合:每选一种损失,本质上就是在选一种噪声模型。平方损失对应高斯噪声;下一组课会看到,把同一台机器换上 Bernoulli 或 multinomial 噪声,就长出 logistic 回归与 softmax 的家族。
四、偏差—方差分解在 OLS 上的实例化
把第 2 节的抽象身份 E[(θ^−θ)2]=Bias2+Var 喂给 OLS。在线性模型假设下(即真实数据生成过程确为 y=Xβ∗+ε、ε∼N(0,σ2I)):
Var(β^)=σ2(X⊤X)−1.
偏差 Bias(β^)=0——证明同样见 2.2.2 节。所以 β^j 的均方误差完全由 σ2(X⊤X)−1 的第 j 个对角元给出。第 2 节用直觉描绘的曲线被压成了一句可读的代数:方差的全部信息装在 (X⊤X)−1 里——你的因子矩阵长什么样,决定了估计的稳定性。注意「无偏」依赖于线性模型假设成立:若真实回归函数其实非线性,OLS 估计的是「在 Hlin 内最接近真模型的线性投影」,此时偏差不再为零,第 2 节的 Bias2 项再次出场——这是「模型设定误差」与「估计噪声」之间永恒的张力。
五、共线性、条件数与 OLS 的崩盘点
对比两个 2×2 设计矩阵。
良态情形。取 XA=(1001),则 XA⊤XA=I2,两个特征值都是 1,条件数 κ(XA⊤XA)=1。代回得 Var(β^)=σ2I2——两个系数的方差都恰好是 σ2。
近共线情形。取 XB=(1111.1),两列几乎平行。算出 XB⊤XB=(22.12.12.21),det=0.01,特征值约为 4.208 与 0.0024,κ(XB⊤XB)≈1.75×103。逆矩阵 (XB⊤XB)−1≈(221−210−210200) 的对角元在 200 量级,相比 XA 的 1,方差被放大了两个数量级。回到 Barra 因子的画面:当「市值」与「估值」在沪深300 上某段时间高度相关时,你看到的现象就是因子载荷在每周重估时大幅震荡——alpha 没飘,是 κ 把同一份噪声放大了几十倍。
这就是只靠 ERM 走到的尽头。一旦 κ(X⊤X) 上千,Var(β^) 爆炸,无偏性带来的安慰被方差吃光。
六、练习
Exercise
设 X=11111234,y=(2,3,5,7)⊤,假设 σ2=0.04。(i) 求 OLS 估计 β^;(ii) 验证正规方程的恒等式 X⊤(y−Xβ^)=0;(iii) 写出 Var(β^) 的 2×2 矩阵。
提示
先算
X⊤X=(4101030),行列式为
20,于是
(X⊤X)−1=201(30−10−104);再算
X⊤y=(17,51)⊤,做一次矩阵—向量乘即可得
β^。
提示
β^=(0,1.7)⊤,残差
e=y−Xβ^=(0.3,−0.4,−0.1,0.2)⊤。
X⊤e 的两个分量是
∑ei 与
∑xiei,自己代入应得
(0,0)⊤。最后把
σ2=0.04 乘进
(X⊤X)−1,即得
Var(β^)。
七、通向下一课
到这里你把 OLS 重新装进了监督学习的三个槽位——线性假设类上的 ERM 解、高斯噪声下的 MLE、偏差—方差恒等式的闭式实例——同时看清楚它的命门:当 X 的列接近共线、κ(X⊤X) 飙到 103 量级以上时,无偏性不再值钱,估计方差吞没了所有信号。下一课在 Hlin 上额外贴一个罚项——岭回归的 λ∥β∥22、Lasso 的 λ∥β∥1——以容量控制(capacity control)换偏差、压方差,并配合交叉验证选出最佳的 λ。同一台机器,加一根缰绳。