线性回归分析OLS(非机器学习)
普通最小二乘(Ordinary Least Squares, OLS)是经典的线性回归方法,假设因变量与自变量之间呈线性关系,通过最小化残差平方和得到参数估计,并提供统计推断与诊断检验。本系统用于统计/计量分析场景,强调系数解释、显著性检验、模型诊断与结果可复现。
线性回归分析 OLS(非机器学习)
1. 方法概述
普通最小二乘(Ordinary Least Squares, OLS)是经典的线性回归方法,假设因变量与自变量之间呈线性关系,通过最小化残差平方和得到参数估计,并提供统计推断与诊断检验。本系统用于统计/计量分析场景,强调系数解释、显著性检验、模型诊断与结果可复现。
设共有 \(n\) 个样本、\(p\) 个解释变量(不含截距),样本集合为
$$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i\in\mathbb{R}^p \tag{1} $$
2. 符号说明表
| 符号 | 含义 |
|---|---|
| \(n\) | 样本数量 |
| \(p\) | 自变量个数(不含截距) |
| \(X\) | 设计矩阵(含截距列) |
| \(y\) | 因变量向量 |
| \(\beta\) | 回归系数向量 |
| \(\hat\beta\) | OLS 估计量 |
| \(\varepsilon\) | 误差项 |
| \(\hat{y}\) | 预测值 |
| \(e\) | 残差向量 |
| \(\sigma^2\) | 误差方差 |
| \(\text{SSE},\text{SSR},\text{TSS}\) | 残差/回归/总平方和 |
| \(R^2,\bar R^2\) | 决定系数与调整决定系数 |
| \(t,F\) | t 检验与 F 检验统计量 |
| \(\text{AIC},\text{BIC}\) | 信息准则 |
| \(JB,BP,White,DW,BG\) | 诊断检验统计量 |
| \(\text{VIF}\) | 方差膨胀因子 |
| \(h_{ii}\) | 杠杆值 |
| \(D_i\) | Cook’s D |
| \(r_i\) | 学生化残差 |
| \(\alpha\) | 显著性水平 |
3. 公共部分(数据预处理与特征工程)
系统支持缺失处理、类别编码、数值缩放、多项式特征、特征选择与降维(均可选),用于提升建模稳定性与解释性。
3.1 标准化与归一化
Z-Score 标准化: $$ z_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j} \tag{2} $$
Min-Max 归一化: $$ z_{ij}=\frac{x_{ij}-\min x_j}{\max x_j-\min x_j+\varepsilon} \tag{3} $$
3.2 One-Hot 编码(类别型变量)
$$ x^{(k)}_{ij}=\begin{cases} 1,& x_{ij}=\text{cat}_k\\ 0,& \text{otherwise} \end{cases} \tag{4} $$
说明:当包含截距项时,One-Hot 会默认 drop-first 以避免虚拟变量陷阱。
3.3 多项式特征(可选)
$$ \phi(x)=\{x_1^{a_1}x_2^{a_2}\cdots x_p^{a_p}\mid a_1+\cdots+a_p\le d_p\} \tag{5} $$
3.4 特征选择(方差阈值 / 互信息)
方差阈值: $$ \operatorname{Var}(x_j)=\frac{1}{n-1}\sum_{i=1}^{n}(x_{ij}-\mu_j)^2 \tag{6} $$
互信息: $$ I(X;Y)=\sum_{x\in X}\sum_{y\in Y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)} \tag{7} $$
3.5 降维(PCA / KPCA)
协方差矩阵: $$ \Sigma=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})(x_i-\bar{x})^\top \tag{8} $$
主成分解释率: $$ \eta_k=\frac{\lambda_k}{\sum_{j=1}^{p}\lambda_j} \tag{9} $$
4. 回归版(OLS)
4.1 线性模型
$$ y=X\beta+\varepsilon \tag{10} $$
4.2 OLS 估计量
$$ \hat\beta=(X^\top X)^{-1}X^\top y \tag{11} $$
残差与残差平方和: $$ e=y-\hat{y},\quad \text{SSE}=e^\top e \tag{12} $$
4.3 误差方差与参数方差
$$ \hat\sigma^2=\frac{\text{SSE}}{n-p-1} \tag{13} $$
$$ \operatorname{Var}(\hat\beta)=\hat\sigma^2 (X^\top X)^{-1} \tag{14} $$
4.4 t 检验与置信区间
$$ t_j=\frac{\hat\beta_j}{\operatorname{SE}(\hat\beta_j)},\quad \text{df}=n-p-1 \tag{15} $$
$$ \hat\beta_j\pm t_{\alpha/2,\,n-p-1}\cdot \operatorname{SE}(\hat\beta_j) \tag{16} $$
4.5 拟合优度与 F 检验
平方和分解: $$ \text{TSS}=\sum_{i=1}^{n}(y_i-\bar y)^2,\quad \text{SSR}=\sum_{i=1}^{n}(\hat y_i-\bar y)^2 \tag{17} $$
$$ R^2=\frac{\text{SSR}}{\text{TSS}}=1-\frac{\text{SSE}}{\text{TSS}} \tag{18} $$
$$ \bar R^2=1-\frac{\text{SSE}/(n-p-1)}{\text{TSS}/(n-1)} \tag{19} $$
$$ F=\frac{(\text{SSR}/p)}{(\text{SSE}/(n-p-1))} \tag{20} $$
4.6 信息准则
$$ \text{AIC}=n\ln(\text{SSE}/n)+2k \tag{21} $$
$$ \text{BIC}=n\ln(\text{SSE}/n)+k\ln n \tag{22} $$
其中 \(k=p+1\) 为参数个数(含截距)。
4.7 诊断检验
JB 正态性检验: $$ JB=\frac{n}{6}\left(S^2+\frac{(K-3)^2}{4}\right) \tag{23} $$
Breusch–Pagan 异方差检验: $$ LM_{BP}=nR^2_{aux} \tag{24} $$
White 异方差检验: $$ LM_{White}=nR^2_{aux} \tag{25} $$
Durbin–Watson 自相关检验: $$ DW=\frac{\sum_{t=2}^{n}(e_t-e_{t-1})^2}{\sum_{t=1}^{n}e_t^2} \tag{26} $$
Breusch–Godfrey 自相关检验: $$ LM_{BG}=nR^2_{aux} \tag{27} $$
多重共线性(VIF): $$ \text{VIF}_j=\frac{1}{1-R_j^2} \tag{28} $$
4.8 影响点与异常点
杠杆值: $$ h_{ii}=x_i^\top (X^\top X)^{-1}x_i \tag{29} $$
Cook’s D: $$ D_i=\frac{e_i^2}{(p+1)\hat\sigma^2}\cdot\frac{h_{ii}}{(1-h_{ii})^2} \tag{30} $$
学生化残差: $$ r_i=\frac{e_i}{\hat\sigma\sqrt{1-h_{ii}}} \tag{31} $$
常用经验阈值:\(h_{ii}>2(p+1)/n\)、\(|r_i|>2\)、\(D_i>4/n\)。
4.9 回归误差指标
$$ \text{MAE}=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat y_i| \tag{32} $$
$$ \text{MSE}=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat y_i)^2 \tag{33} $$
$$ \text{RMSE}=\sqrt{\text{MSE}} \tag{34} $$
4.10 图表输出(回归)
- 残差直方图(正态性直观检验)
- QQ 图(残差分布检验)
- 拟合值 vs 实际值散点图
- 真实值-预测值折线图
- Scale-Location 图(异方差诊断)
- 杠杆-残差图(高影响点诊断)
4.11 回归文字说明(可直接用于论文)
- 使用 OLS 估计线性回归模型(式(10)–(11)),并通过 \(t\) 检验与 \(F\) 检验评估参数显著性与整体拟合效果(式(15)–(20))。
- 模型拟合优度以 \(R^2\) 与调整 \(R^2\) 表示(式(18)–(19)),并给出 AIC/BIC 以便模型比较(式(21)–(22))。
- 诊断检验包含残差正态性(JB)、异方差(BP/White)、自相关(DW/BG)与多重共线性(VIF),用于验证模型假设的合理性(式(23)–(28))。
- 结合残差直方图、QQ 图、Scale-Location 与杠杆-残差图,识别异方差与高影响点,提升结果解释的稳健性。
4.12 异方差修正与稳健标准误(可选)
当 BP/White 检验提示存在异方差时,可采用稳健标准误或加权最小二乘修正。
White(HC0)稳健协方差: $$ \widehat{\operatorname{Var}}(\hat\beta)= (X^\top X)^{-1}X^\top\,\operatorname{diag}(e_i^2)\,X(X^\top X)^{-1} \tag{35} $$
小样本修正(HC1): $$ \widehat{\operatorname{Var}}_{HC1}(\hat\beta)=\frac{n}{n-p-1}\,\widehat{\operatorname{Var}}_{HC0}(\hat\beta) \tag{36} $$
4.13 加权最小二乘(WLS,异方差修正)
若能估计误差方差 \(\sigma_i^2\),可用权重 \(w_i=1/\sigma_i^2\): $$ \min_{\beta}\sum_{i=1}^{n}w_i\,(y_i-x_i^\top\beta)^2 \tag{37} $$
其解为: $$ \hat\beta_{WLS}=(X^\top W X)^{-1}X^\top W y \tag{38} $$
实务建议:当异方差显著时,可在论文中同时报告 OLS 与稳健标准误(或 WLS)结果,并说明结论是否稳健。
4.14 稳健回归(Robust Regression,可选)
稳健回归可减弱异常点对估计的影响,常用 M-估计: $$ \min_{\beta}\sum_{i=1}^{n}\rho\left(\frac{y_i-x_i^\top\beta}{s}\right) \tag{39} $$
其中 \(s\) 为尺度参数,\(\rho(\cdot)\) 为稳健损失函数。
Huber 损失: $$ \rho_H(r)=\begin{cases} \frac{1}{2}r^2,& |r|\le c\\ c(|r|-\frac{1}{2}c),& |r|>c \end{cases} \tag{40} $$
Tukey(Bisquare)损失: $$ \rho_T(r)=\begin{cases} \frac{c^2}{6}\left[1-\left(1-(r/c)^2\right)^3\right],& |r|\le c\\ \frac{c^2}{6},& |r|>c \end{cases} \tag{41} $$
M-估计通常用 IRLS 求解,对残差 \(r_i\) 的权重为: $$ w_i=\frac{\psi(r_i)}{r_i},\quad \psi(r)=\rho'(r) \tag{42} $$
4.15 Newey-West 自相关稳健标准误(HAC,可选)
当 DW/BG 检验提示自相关时,可采用 Newey-West 协方差估计: $$ \widehat{\operatorname{Var}}_{NW}(\hat\beta)=(X^\top X)^{-1} S (X^\top X)^{-1} \tag{43} $$
其中 $$ S=\Gamma_0+\sum_{l=1}^{L}w_l(\Gamma_l+\Gamma_l^\top),\quad w_l=1-\frac{l}{L+1} \tag{44} $$
$$ \Gamma_l=\sum_{t=l+1}^{n}x_t u_t u_{t-l} x_{t-l}^\top \tag{45} $$
式中 \(u_t\) 为残差,\(L\) 为截断滞后阶(可依据样本量选择)。
5. 结果输出说明
系统导出 Excel 多表与图表文件,建议在论文中按“表-图-解释”顺序组织:
- Excel 主要 sheet:模型摘要、系数表、诊断统计、参数、图表清单、指标释义、原始数据、处理后数据、预测、ANOVA、描述统计、相关矩阵、影响诊断、标准化系数、VIF。
- 图表:残差直方图、QQ 图、拟合 vs 实际、真实-预测折线、Scale-Location、杠杆-残差图。
建议先报告系数显著性与 \(R^2\) 表现,再说明诊断检验结论(是否满足正态性/同方差/无自相关),最后结合图表解释异常点或结构性偏差。
5.1 示例数据说明(可选)
示例数据建议包含:
- 至少 3–5 个自变量与 1 个因变量;
- 自变量类型覆盖连续变量与(可选)类别变量;
- 样本量建议 \(n\ge 50\),便于诊断检验与稳健性分析;
- 若含时间/序列字段,需保证排序正确,以便 DW/BG 检验有效。
在论文中应明确:数据来源、样本期、变量含义与单位、缺失处理方式,以及是否进行标准化/缩放/特征工程。
5.2 数据描述模板段落(可直接用于论文)
“本文使用 \[数据来源\] 的 \[时间区间\] 数据,共 \(n=\)×× 个样本。因变量为 \[因变量名称/含义/单位\],自变量包括 \[x1、x2、…\] 等 \(p=\)×× 个指标,其中连续变量 \[列举\],类别变量 \[列举\]。缺失值处理采用 \[删除/均值/中位数/其他\],并对变量进行 \[标准化/归一化/不处理\]。如涉及时间序列,数据已按时间顺序排列,以确保自相关检验有效。上述处理保证了模型估计与诊断检验的可比性与可复现性。”
6. 论文写作模板
6.1 回归任务模板段落(示例)
“本文采用普通最小二乘法构建线性回归模型(式(10)–(11)),在 \(\alpha=0.05\) 水平下对回归系数进行显著性检验。结果表明,主要解释变量的系数符号与预期一致,模型整体通过 F 检验,拟合优度为 \(R^2=\)××、调整 \(R^2=\)××。进一步的残差诊断显示:JB 检验提示残差近似正态分布,BP/White 检验未发现显著异方差,DW/BG 检验未发现显著自相关。结合残差与影响点图,未发现显著高杠杆异常样本,模型假设基本成立。”
6.2 图表题注模板(示例)
- 图 1 残差直方图与正态性检验结果。
- 图 2 残差 Q-Q 图(用于检验残差正态性)。
- 图 3 拟合值 vs 实际值散点图。
- 图 4 真实值-预测值折线对比图。
- 图 5 Scale-Location 图(异方差诊断)。
- 图 6 杠杆-残差图(高影响点识别)。
6.3 表格标题模板(示例)
- 表 1 OLS 回归系数与显著性检验结果。
- 表 2 模型诊断统计(JB/BP/White/DW/BG/VIF)。
- 表 3 影响诊断统计(杠杆值、Cook’s D、学生化残差)。
6.4 稳健回归模板段落(示例,可选)
“为降低异常点对估计结果的影响,本文进一步采用稳健回归(M-估计)进行验证(式(39)–(42))。与 OLS 相比,稳健估计的系数方向保持一致,显著性结论基本稳定;关键变量在稳健标准误下仍显著,说明结果具有稳健性。若个别变量显著性变化,本文以稳健结果为主要解释依据,并在附录给出 OLS 与稳健回归的对比表。”
6.5 稳健回归图表题注模板(可选)
- 图 7 OLS 与稳健回归的拟合残差对比图(异常点影响对比)。
- 图 8 稳健回归残差分布与 QQ 图(诊断稳健性)。
6.6 稳健回归表格标题模板(可选)
- 表 4 OLS 与稳健回归系数对比(含稳健标准误)。
- 表 5 稳健回归诊断结果(权重分布/异常点影响)。
7. 与代码实现的对应关系
OLS 程序的真实计算核心位于 具体的算法2/线性回归分析OLS(非机器学习)/core/calculator.py,而不是简单只导出一个回归系数表。代码实现已经把统计推断、诊断检验、影响点识别、图表说明和复现脚本一并纳入结果目录。
需要在文档中明确的实现细节包括:
-
优先使用 statsmodels,缺失时才退化
程序优先走statsmodels路径以获得完整推断与诊断;若环境不满足,则退化为 numpy 近似实现。因此论文中的统计推断结论应确认来自完整 OLS 路径。 -
Excel 结果不是单表,而是诊断型结果包
常见工作表包括:模型摘要、系数表、诊断统计、参数、图表清单、指标释义、原始数据、处理后数据、预测、ANOVA、描述统计、相关矩阵、影响诊断、标准化系数、VIF等。 -
图表清单中已经写入论文使用建议
代码不仅保存残差直方图、QQ 图、Scale-Location、杠杆-残差图和真实值-预测值图,还会把用途、阈值规则、数据来源和论文建议写入图表清单,这比一般回归工具更适合直接整理进论文附录。 -
影响点与诊断阈值是程序显式计算的
程序会计算 JB、BP、White、DW、BG、VIF、Cook’s D、杠杆值和标准化残差,并据此给出通过/警示信息。因此论文诊断部分可以直接依据程序结果撰写,而不是手工补算。 -
结果目录会生成复现实验脚本
程序会写出repro_ols_*.py或结果页导出的复现脚本,并把输入复制到repro_inputs目录。因此 OLS 结果具备较强的可复现性。
8. 论文写作模板补充
方法描述模板:
“本文采用普通最小二乘法建立线性回归模型,并基于统计推断框架对参数显著性和模型假设进行检验。建模前先完成变量选择与数据预处理,再通过最小化残差平方和估计回归系数。模型估计后,进一步结合 JB 正态性、BP/White 异方差、DW/BG 自相关、VIF 共线性以及 Cook’s D 等诊断统计,对模型有效性与稳健性进行综合判断。”
结果描述模板:
“程序结果文件除模型摘要和系数表外,还包含诊断统计、影响诊断、标准化系数、相关矩阵、图表清单及复现实验脚本。因而论文中不仅可以报告系数显著性与 \(R^2\),还可以进一步说明残差分布、异方差、自相关、共线性及异常影响点,从而使计量分析部分更完整、更符合规范。”
9. 单篇终审补充
9.1 图题与表题对齐建议
模型摘要表可写为:表X OLS 模型摘要表。系数表表可写为:表X OLS 回归系数表。诊断统计表可写为:表X OLS 诊断统计表。参数表可写为:表X OLS 参数设置表。图表清单表可写为:表X OLS 图表索引表。指标释义表可写为:表X OLS 指标释义表。原始数据表可写为:表X OLS 原始数据表。处理后数据表可写为:表X OLS 处理后数据表。预测表可写为:表X OLS 预测结果表。ANOVA表可写为:表X OLS 方差分析表。描述统计表可写为:表X OLS 描述统计表。相关矩阵表可写为:表X OLS 相关矩阵表。影响诊断表可写为:表X OLS 影响诊断表。标准化系数表可写为:表X OLS 标准化系数表。VIF表可写为:表X OLS 方差膨胀因子表。fitted_vs_actual_*.png建议写为:图X OLS 拟合值与实际值对比图。y_true_pred_*.png建议写为:图X OLS 真实值与预测值对比图。resid_hist_*.png建议写为:图X OLS 残差直方图。qqplot_*.png建议写为:图X OLS 残差 Q-Q 图。scale_location_*.png建议写为:图X OLS Scale-Location 图。leverage_resid_*.png建议写为:图X OLS 杠杆值-残差图。
9.2 终审说明
- 当前最适合作为终审证据的代表性目录可采用
具体的算法2/线性回归分析OLS(非机器学习)/results/线性回归分析OLS(非机器学习)分析结果_20260329_165350。该目录同时具备结果簿、完整诊断图和 repro 脚本。 - 真实工作表为
模型摘要/系数表/诊断统计/参数/图表清单/指标释义/原始数据/处理后数据/预测/ANOVA/描述统计/相关矩阵/影响诊断/标准化系数/VIF。这组 sheet 已经足够支撑正文、附录和审稿复核。 - 当前真实图文件稳定为
fitted_vs_actual_20260329_165352.png、y_true_pred_20260329_165352.png、resid_hist_20260329_165352.png、qqplot_20260329_165352.png、scale_location_20260329_165352.png、leverage_resid_20260329_165352.png。图题应按图义命名,不要把时间戳写进论文标题。 - 当前复现脚本为
repro_ols_20260329_165354.py,采用SRC = 'repro_inputs/sample_data.csv'。因此 OLS 这篇可以把repro_inputs/...作为标准复现输入口径。 - OLS 这篇的终审重点应放在“统计推断 + 诊断检验 + 影响点识别”三条证据链,而不是只停留在系数表与 \(R^2\)。
9.3 全量强化补充
本篇终审补充绑定的真实算法目录为 具体的算法2/线性回归分析OLS(非机器学习),本次采用的代表性结果目录为 具体的算法2/线性回归分析OLS(非机器学习)/results/线性回归分析OLS(非机器学习)分析结果_20260329_165350。
该目录当前主结果工作簿为:
线性回归分析OLS(非机器学习)分析结果_20260329_165350.xlsx
实测工作表为:
模型摘要系数表诊断统计参数图表清单指标释义原始数据处理后数据预测ANOVA描述统计相关矩阵影响诊断标准化系数VIF
这套页名说明该目录不是简单的“系数 + 拟合值”输出,而是完整的统计诊断结果包。论文中如果引用这篇结果,应把 诊断统计、影响诊断、VIF 与 ANOVA 纳入附录或结果复核,而不要只摘 系数表。
当前目录中的真实图文件为:
fitted_vs_actual_20260329_165352.pngy_true_pred_20260329_165352.pngresid_hist_20260329_165352.pngqqplot_20260329_165352.pngscale_location_20260329_165352.pngleverage_resid_20260329_165352.png
这些图构成 OLS 的拟合与残差诊断图集,时间戳只是文件追踪信息,不应写入论文图题。
复现实物方面,该目录实际包含:
具体的算法2/线性回归分析OLS(非机器学习)/results/线性回归分析OLS(非机器学习)分析结果_20260329_165350/repro_ols_20260329_165354.py具体的算法2/线性回归分析OLS(非机器学习)/results/repro_inputs/sample_data.csv
这里需要按真实路径说明:repro_ols_20260329_165354.py 位于该时间戳结果目录内,但脚本中的 SRC = 'repro_inputs/sample_data.csv' 相对路径需要从运行时工作目录解析;磁盘上的输入副本位于上一级 results/repro_inputs/sample_data.csv。因此这篇可以写“已具备 repro_inputs/... 复现输入”,但不应误写成输入副本就在时间戳结果目录内部。
9.4 软件实现核查补充(2026-07)
- 当前实现是 statsmodels OLS 统计建模,不是机器学习分类器;文档里的结果解释应围绕
模型摘要、系数表、诊断统计、ANOVA、描述统计、相关矩阵、影响诊断、标准化系数、VIF展开。 - 当前最新结果目录
results/线性回归分析OLS(非机器学习)分析结果_20260411_211008同层同时保存fitted_vs_actual_20260411_211008.png、resid_hist_20260411_211008.png、qqplot_20260411_211008.png、scale_location_20260411_211008.png、leverage_resid_20260411_211008.png、y_true_pred_20260411_211008.png和repro_stats_template_20260411_211008.py。 - 复现输入实际放在
results/repro_inputs/sample_data.csv,不是结果目录再套一层独立repro_inputs;正文若写复现链路,要把这个层级说清楚。 - OLS 文档不要写成分类或深度学习模型,也不要引入混淆矩阵、ROC/PR 等不属于这篇的结果口径。