岭回归
一、直观理解:给系数加一根“弹簧”,防止共线时疯涨
普通最小二乘(OLS)最小化 。当自变量高度共线或 接近 时, 接近奇异,系数会暴涨且符号不稳。
岭回归(Ridge)在目标里加入 L2 惩罚:
像一根拉住系数的弹簧,阻止它们飞到极大。代价是引入一点偏差,换取方差大幅下降,从而往往降低预测均方误差。
几何上:岭回归把可行系数限制在一个圆盘附近,最优解是 OLS 无约束解向原点的连续收缩。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 多重共线;预测导向;特征多、样本有限;需要稳定的系数路径;作为 PCR/PLS 的对照。 |
| 核心优点 | 闭式解清晰;数值稳定;系数连续收缩,路径光滑;对共线很有效。 |
| 局限与缺点 | 不自动把系数压成精确 0(不做变量选择); 需选择;解释仍受收缩影响;量纲敏感,必须标准化。 |
若既要共线稳定又要稀疏选变量,考虑弹性网络(岭 + Lasso)。
三、核心原理
设计矩阵含截距时,通常不惩罚截距,并对 列标准化、 中心化后估计:
与 OLS 相比,特征值 被换成 ,病态方向被托底。
偏差-方差:
- :回到 OLS;
- :系数→0(仅保留均值)。
常用交叉验证(CV)按预测误差选;也可看岭迹:系数随 变化是否稳定。
注意:岭回归系数是收缩后的,不能直接与未惩罚 OLS 的 t 检验同样解释;推断更复杂,赛题中多强调预测与稳定性。
四、关键决策
1. 标准化
必须。否则惩罚会不公平地对待大尺度变量。
2. 怎么选
K 折 CV 最小 MSE;1-SE 规则取更强惩罚;展示岭迹证明结论不依赖单点 。
3. 与主成分回归
都应对共线。PCR 丢弃小特征值方向;岭是连续缩小这些方向,往往更平滑。
4. 解释还是预测
解释优先且共线可合并变量时,先做专业降维;纯预测且特征多时岭/弹性网更直接。
五、MATLAB 示例
rng(13);
n = 80; p = 10;
Xraw = randn(n, p);
% 制造共线
Xraw(:,2) = Xraw(:,1) + 0.05*randn(n,1);
Xraw(:,3) = Xraw(:,1) - 0.05*randn(n,1);
b_true = [2; 0; 0; 1.5; zeros(p-4,1)];
y = Xraw*b_true + 0.7*randn(n,1);
% 标准化
mu = mean(Xraw); sg = std(Xraw);
X = (Xraw - mu) ./ sg;
yc = y - mean(y);
% 岭路径
lambdas = logspace(-3, 2, 40);
B = zeros(p, numel(lambdas));
for i = 1:numel(lambdas)
B(:,i) = (X'*X + lambdas(i)*eye(p)) \ (X'*yc);
end
figure;
semilogx(lambdas, B', "LineWidth", 1.2);
xlabel("\lambda"); ylabel("标准化系数"); title("岭迹"); grid on;
% 用交叉验证选 lambda(手写 K 折)
K = 5;
idx = crossvalind("Kfold", n, K);
cv_mse = zeros(size(lambdas));
for i = 1:numel(lambdas)
mse_k = zeros(K,1);
for k = 1:K
tr = idx ~= k; te = idx == k;
beta = (X(tr,:)'*X(tr,:) + lambdas(i)*eye(p)) \ (X(tr,:)'*yc(tr));
yhat = X(te,:)*beta;
mse_k(k) = mean((yc(te) - yhat).^2);
end
cv_mse(i) = mean(mse_k);
end
[~, i_best] = min(cv_mse);
lambda_cv = lambdas(i_best);
beta_cv = (X'*X + lambda_cv*eye(p)) \ (X'*yc);
fprintf("CV 最优 lambda=%.4g\n", lambda_cv);
disp(array2table(beta_cv, "RowNames", compose("x%d",1:p), "VariableNames", "beta_ridge"));
% 与 OLS 对照
beta_ols = X\yc;
fprintf("OLS 与 Ridge 的 L2 范数: %.3f vs %.3f\n", norm(beta_ols), norm(beta_cv));
% Statistics Toolbox 可用 ridge 函数
b_ridge = ridge(y, Xraw, lambda_cv, 0); % 按文档注意缩放参数
六、如何解释结果
- 为何需要岭(VIF、条件数、p/n);
- 是否标准化、是否惩罚截距;
- 选择方法与 CV 曲线;
- 岭迹稳定性;
- 预测指标(RMSE、)相对 OLS 的变化;
- 系数解释保持克制,强调收缩后的相对大小。
七、常见误区
1. 不标准化就岭回归
惩罚被量纲劫持。
2. 把岭系数当无偏因果效应
有偏是机制的一部分。
3. 只给一个 不展示路径
审稿人会怀疑你调参碰运气。
4. 本该稀疏选择却用岭
岭保留全部变量;要选变量用 Lasso/弹性网。
八、小结
岭回归的核心是:
在最小二乘上加 惩罚,用一点偏差换系数稳定与更好的预测。
它是共线与高维预测的标准工具。用好岭回归的关键是标准化、交叉验证选 ,并用岭迹证明结论稳健。