多元线性回归
一、直观理解:把结果写成各自变量效应的加权和
多元线性回归假设:
在其他变量保持不变时, 表示 增加一个单位, 的平均变化。它是建模竞赛中最重要的可解释基线:先看线性关系能走多远,再决定是否上非线性、正则化或机器学习。
“线性”指的是对参数 线性,因此 、、、交互项 都可以作为回归元,模型仍可用 fitlm 估计。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 连续响应;效应近似可加线性;需要系数解释与区间;变量数不太多于样本;作为一切复杂模型的对照。 |
| 核心优点 | 估计快、理论成熟;系数有直接解释;诊断工具丰富(残差、VIF、杠杆、Cook 距离);便于写进论文机理段。 |
| 局限与缺点 | 真实关系强非线性时偏差大;共线导致系数不稳;对异常点敏感;高维 时需正则/降维;时间数据若忽略自相关会低估标准误。 |
三、核心原理
1. 最小二乘
要求 满列秩。高斯–马尔可夫条件下 OLS 是最佳线性无偏估计;若再假设正态误差,可得 / 推断。
2. 关键假设与对应检查
| 假设 | 检查 |
|---|---|
| 线性可加 | 残差 vs 拟合值、分量加性图 |
| 误差独立同分布 | 残差序列图、Durbin–Watson、ACF |
| 方差齐性 | 残差扇形图、BP 检验 |
| 无严重共线 | 相关阵、VIF |
| 影响点可控 | 杠杆、Cook's D、学生化残差 |
3. 拟合优度不是终点
随变量增多不减,但预测能力可能下降。必须用训练/测试或交叉验证的 RMSE/MAE。时间序列回归还要用时间外推验证。
四、变量处理与模型选择
- 先机理筛选,再统计筛选;
- 标准化后比较系数大小(解释时还原单位);
- 类别变量用哑变量,注意参照水平;
- 可用逐步回归/信息准则,但更推荐交叉验证;
- 共线严重时:删变量、合并、主成分回归、岭回归、PLS;
- 存在自相关时:加滞后项或改用时间序列模型,不能假装 i.i.d.。
五、MATLAB 示例
%% 模拟并拟合多元线性回归
rng(4);
n = 200;
X1 = randn(n,1);
X2 = 0.7*X1 + 0.3*randn(n,1); % 与 X1 相关
X3 = randn(n,1);
y = 2 + 1.5*X1 - 0.8*X2 + 0.5*X3 + 0.7*randn(n,1);
tbl = table(X1,X2,X3,y);
% 时间/样本顺序划分(若是截面可用 cvpartition)
T0 = 150;
tr = 1:T0; te = T0+1:n;
mdl = fitlm(tbl(tr,:), "y ~ X1 + X2 + X3");
disp(mdl);
% VIF(共线)
% 简单实现:对每个 Xj 关于其余 X 回归
predictors = tbl{tr,1:3};
vif = zeros(1,3);
for j = 1:3
Z = predictors; yj = Z(:,j); Z(:,j) = [];
mj = fitlm(Z, yj);
vif(j) = 1/(1 - mj.Rsquared.Ordinary);
end
disp("VIF:"); disp(vif);
% 诊断图
figure; plotResiduals(mdl, "fitted");
figure; plotResiduals(mdl, "probability");
figure; plotDiagnostics(mdl, "cookd");
% 训练期外预测
yhat = predict(mdl, tbl(te,:));
rmse = sqrt(mean((tbl.y(te) - yhat).^2));
mae = mean(abs(tbl.y(te) - yhat));
r2_te = 1 - sum((tbl.y(te)-yhat).^2)/sum((tbl.y(te)-mean(tbl.y(te))).^2);
fprintf("测试 RMSE=%.4f MAE=%.4f R2=%.4f\n", rmse, mae, r2_te);
fprintf("训练 R2=%.4f (勿只报这个)\n", mdl.Rsquared.Ordinary);
% 与截距均值基线比较
rmse0 = sqrt(mean((tbl.y(te) - mean(tbl.y(tr))).^2));
fprintf("均值基线 RMSE=%.4f\n", rmse0);
若误差疑似异方差,可报告稳健标准误,或对 变换;若是时间序列,检查:
res = mdl.Residuals.Raw;
figure; autocorr(res);
六、如何解释结果
完整报告:
- 模型公式与变量含义/单位;
- 样本划分方式;
- 系数表:估计、标准误、p 值、置信区间;
- 调整 、F 检验(仅辅助);
- 测试集 RMSE/MAE 与基线对比;
- VIF 与残差诊断结论;
- 系数解释是否符合机理,哪些不显著/符号异常;
- 局限:遗漏变量、测量误差、外推范围。
解释 时必须加“在控制其他变量的条件下”,并说明只在样本取值范围内较可信。
七、常见误区
1. 只报训练 很高
这是预测题最大雷区。没有样本外误差等于没做预测。
2. 逐步回归海选后当因果
多重检验与选择偏差会使 p 值失真。
3. 忽视共线却大谈“某变量影响最大”
VIF 高时系数解释不稳定,应谈联合贡献或改用正则/PLS。
4. 类别变量当连续数字
必须哑变量化。
5. 时间序列回归不做残差自相关检查
标准误会骗人,预测也不是最优。
八、小结
多元线性回归的核心是:
用可解释的线性参数结构建立预测基线,并以诊断与样本外误差决定是否够用。
它应该是大多数预测题的第一张牌。写论文时,把系数解释、假设诊断和训练期外指标写全,再说明为何需要(或不需要)更复杂的模型。记住:模型价值由外推误差决定,不是由 单独决定。