跳至主要内容

OLS 回归:关键概念详解

通过掌握理论基础来增强对 OLS 回归的信心。探索如何在 Excel、R 和 Python 中进行简单实现。
· 8分钟 阅读

使用 AI 探索

OLS(ordinary least squares,普通最小二乘)回归非常值得学习,因为它是统计学和机器学习的重要组成部分。它用于预测结果或分析变量之间的关系,这两类用途的应用场景涵盖从假设检验到预测的方方面面。

在本文中,我将帮助您理解 OLS 回归的基础、其应用、前提假设,以及如何在 Excel、R 和 Python 中实现。内容较多,因此在阅读完后,建议您继续学习我们的回归课程,例如Python 回归入门和R 回归入门,并阅读我们的教程,如在 Excel 中做线性回归。

什么是 OLS 回归?

OLS 回归用于估计一个或多个自变量(预测变量)与因变量(响应变量)之间的关系。它通过对观测数据拟合一条线性方程来实现。该方程形式如下: 

OLS regression equation

其中:

  • y 为因变量。
  • x1、x2、… 为自变量。
  • β0​ 为截距项。
  • β1、β2、… 为系数。
  • ϵ 表示误差项。

在上述方程中,我展示了多个 β 项,如 β1 和 β2。但需要说明的是,回归方程也可以只包含一个除 β0 之外的 β 项,此时我们称之为简单线性回归。当有两个或以上预测变量(例如 β1 和 β2)时,我们称之为多元线性回归。若使用普通最小二乘估计器,这两种都属于 OLS 回归。 

什么是 OLS 的最小化问题?

OLS 回归的核心是一个优化问题:找到最能拟合数据的直线(在高维中为超平面)。但“最优拟合”是什么意思?这里的“最优拟合”是指使残差平方和最小。

我来在解释残差概念的同时,说明这个最小化问题。 

  • 残差解释:残差是指实际观测值与回归模型预测值之间的差异。对于每个数据点,残差告诉我们预测偏离了多少。
  • 为什么要将残差平方?对每个残差求平方,能避免正负差异相互抵消。平方还会对较大的错误赋予更高权重,意味着模型会优先减少更大的错误。

通过最小化残差平方和,回归线能够准确表征自变量与因变量之间的关系。事实上,最小化残差平方和意味着我们的模型在整体上具有尽可能小的预测误差。想进一步了解残差与回归分解,请阅读我们的教程理解平方和:SST、SSR 与 SSE 指南。

什么是普通最小二乘估计器? 

在回归中,估计器用于计算描述自变量与因变量关系的系数。普通最小二乘(OLS)估计器就是其中一种方法。它通过找到使观测值与模型预测值之间平方差之和最小的系数取值来进行估计。

我之所以提出这个概念,是为了厘清术语。回归也可以使用其他估计器,根据数据与分析目标的不同提供各自的优势。例如,有些估计器对异常值更稳健,而另一些则通过对模型参数进行正则化来帮助避免过拟合。

OLS 回归参数如何估计?

为了确定最能拟合回归模型的系数,OLS 估计器采用数学方法最小化残差平方和。一种可能的方法是法方程(正规方程),它通过基于数据建立方程组,并求解使观测值与预测值平方差之和最小的系数,从而给出直接解。

然而,求解正规方程在数据集很大时可能计算量很大。为此,常用另一种名为QR 分解的技术。QR 分解将自变量矩阵分解为两个更简单的矩阵:正交矩阵(Q)和上三角矩阵(R)。这种分解既提高了计算效率,也改善了数值稳定性。

何时使用 OLS 回归

我们如何决定使用 OLS 回归?在做出这个决定时,既要评估数据集的特征,也要明确要解决的具体问题。 

OLS 回归的假设

在应用 OLS 回归之前,我们应确保数据满足以下假设,以获得可靠结果:

  1. 线性关系:自变量与因变量之间的关系必须是线性的。
  2. 误差独立:残差之间应互不相关。
  3. 同方差性:在所有自变量水平上,残差应具有恒定方差。
  4. 误差正态性:残差应服从正态分布。

严重违反这些假设会导致有偏估计或不可靠的预测。因此,我们确实需要在继续之前评估并处理任何潜在问题。

OLS 回归的应用

一旦满足这些假设,OLS 回归可用于不同目的:

  • 预测建模:预测销售、收入或趋势等结果。
  • 关系分析:理解自变量对因变量的影响。
  • 假设检验:评估特定预测变量是否对结果变量有显著影响。

R、Python 与 Excel 中的 OLS 回归

下面看看如何在 R、Python 与 Excel 中执行 OLS 回归。

R 中的 OLS 回归

R 提供 lm() 函数来进行 OLS 回归。示例如下:

# Let's create sample data
predictor_variable <- c(1, 2, 3, 4, 5)
response_variable <- c(2, 4, 5, 4, 5)

# We now fit the OLS regression model using the lm() function from base R
ols_regression_model <- lm(response_variable ~ predictor_variable)

# OLS regression model summary
summary(ols_regression_model)

请注意,在 R 中执行 OLS 回归无需导入任何额外包。 

Python 中的 OLS 回归

Python 提供如 statsmodels 与 scikit-learn 等库来进行 OLS 回归。下面用 statsmodels 举例:

import statsmodels.api as sm

# We can create some sample data
ols_regression_predictor = [1, 2, 3, 4, 5]
ols_regression_response = [2, 4, 5, 4, 5]

# Adding a constant for the intercept
ols_regression_predictor = sm.add_constant(ols_regression_predictor)

# We now fit our OLS regression model
ols_regression_model = sm.OLS(ols_regression_response, ols_regression_predictor).fit()

# Summary of our OLS regression 
print(ols_regression_model.summary())

Excel 中的 OLS 回归

Excel 也可通过内置工具进行 OLS 回归。步骤如下:

准备数据

将数据整理为两列:一列为自变量(可多列),一列为因变量。确保数据集中没有空白单元格。

启用数据分析加载项

转到 文件 > 选项 > 加载项。在 管理 框中选择 Excel 加载项,然后点击 转到。勾选 分析 工具库,点击 确定。

运行回归分析

前往 数据 > 数据 分析,在选项列表中选择 回归,点击 确定。

在 回归 对话框中:

  • 将 输入 Y 范围 设置为因变量列。
  • 将 输入 X 范围 设置为自变量列。
  • 如果输入范围包含列标题,请勾选 标签。
  • 选择结果的输出区域或新工作表。

如何评估 OLS 回归模型

我们已经创建了一个 OLS 回归模型。接下来要通过查看模型诊断和统计指标来判断其有效性。

诊断图

我们可以借助可视化工具评估 OLS 回归模型的假设与拟合质量。选项包括残差与拟合值图,用于检查是否存在指示非线性或异方差性的模式,或 Q-Q 图,其用于检验 残差是否服从如正态分布之类的分布。

模型统计量

我们也可以使用统计指标来评估模型性能与预测变量的重要性。常见指标包括 R²(决定系数)与 调整 R²,它们衡量模型解释的方差比例。我们还可以查看 F 统计量和 p 值,用于检验模型整体以及各个预测变量的显著性。

训练/测试流程

最后还要指出,数据分析师通常会遵循结构化流程来验证模型的预测能力。这包括数据划分(将数据分为训练集与测试集)、使用训练集拟合模型,然后在未见过的测试数据上评估模型表现。该流程还可能包括如k 折交叉验证等步骤。

深入理解 OLS 回归

在了解了 OLS 回归的基础之后,我们来探讨一些更高级的概念。 

OLS 回归与极大似然估计

极大似然估计(MLE)常与 OLS 回归并行讨论,这是有原因的。到目前为止,我们一直在讲 OLS 如何通过最小化残差平方和来估计系数。现在退一步来谈谈 MLE。  

MLE 的思想是:在给定模型的前提下,使观测数据出现的可能性最大化。它通过假设误差项服从某个特定的概率分布来工作,这个分布通常是正态(高斯)分布。在该概率分布下,我们寻找能使观测数据最可能出现的参数取值。

我之所以此时提到极大似然估计,是因为在 OLS 回归的背景下,当误差服从正态分布时,MLE 方法会得到与最小化平方误差相同的系数估计。

将 OLS 回归解读为加权平均

关于 OLS 回归的另一个有趣视角是将其解释为加权平均。Andrew Gelman 教授讨论过这样一个观点:OLS 回归中的系数可以看作观测数据点的加权平均,其中权重由预测变量的方差以及模型结构决定。

这种视角有助于理解回归过程的工作机理及其行为方式,因为 OLS 回归本质上会对方差较小或更接近模型预测的观测赋予更高权重。您还可以收听我们的 DataFramed 播客节目 选举预测与民调,了解 Gelman 教授对在选举民调中使用回归的看法。 

OLS 回归与相似方法的比较

还有若干名称相近但用途或假设不同的回归方法。我们来看看其中几种: 

OLS vs. 加权最小二乘(WLS)

WLS 是 OLS 的扩展,它根据观测方差为每个数据点分配不同的权重。当残差方差恒定这一假设被违背时,WLS 尤其有用。通过按方差的倒数为观测赋权,WLS 在处理异方差数据时可提供更可靠的估计。

OLS vs. 偏最小二乘(PLS)回归

PLS 结合了主成分分析与多元回归的特点,通过提取捕捉预测变量与响应变量最大协方差的潜在变量来建模。当存在多重共线性或预测变量数量多于观测数时,PLS 具有优势。它既能降维,又能同时最大化预测能力,而这并非 OLS 天生能够处理的。

OLS vs. 广义最小二乘(GLS)

与 WLS 类似,GLS 将 OLS 推广到允许残差相关和/或非恒定方差的情形。GLS 会在估计过程中调整,以应对残差方面对 OLS 假设的违背,从而在此类情形下提供更有效且无偏的估计。

OLS vs. 总最小二乘(TLS)

又称正交回归,TLS 最小化数据点到回归线的垂直距离(正交距离),而非 OLS 最小化的纵向距离。当自变量和因变量都存在测量误差时,TLS 更有用;而 OLS 假定只有因变量存在测量误差。

OLS 回归的替代方案

当变量关系复杂或非线性时,非参数回归方法提供了对 OLS 的灵活替代方案,它们允许由数据来决定回归函数的形式。前述那些“名称相近”的方法都属于参数模型。但当您希望在不受参数假设限制的情况下建模模式时,非参数模型也可派上用场。

方法描述优势常见用例
核回归使用带核的加权平均来平滑数据。捕捉非线性关系
平滑灵活
探索性分析
变量关系未知
局部回归对数据子集拟合局部多项式以得到平滑曲线。处理复杂模式
自适应平滑
趋势可视化
散点图平滑
回归树将数据划分为分支,并在各子段拟合简单模型。易于解释
可处理交互
数据分段
识别不同数据机制
样条回归使用在节点处连续的分段多项式对数据建模。刻画平滑的非线性趋势
拟合灵活
时间序列
增长曲线

结语

OLS 回归是理解数据关系与进行预测的基础工具。掌握 OLS,您就为进一步探索更高级的模型与技术打下了扎实基础。欢迎学习 DataCamp 的 R 与 Python 回归课程以拓展技能:使用 statsmodels 的 Python 回归入门 和 R 回归入门)。此外,也可考虑我们广受欢迎的Python 机器学习科学家职业路径。

Josef Waples

作者

Josef Waples

我是数据科学编辑,曾为科学期刊发表的研究论文撰稿。我的兴趣领域包括线性代数、统计学、R 等相关主题。

OLS 回归常见问答

什么是 OLS 回归?

普通最小二乘(OLS)回归是一种统计方法,用于估计一个或多个自变量与因变量之间的关系。它通过拟合一个线性方程,使观测值与预测值之间的平方差之和最小,因此在统计与机器学习中的预测与分析任务中具有基础性地位。

OLS 回归有哪些局限性?

OLS 回归假定线性关系,可能无法捕捉数据中的复杂模式。它对异常值较为敏感,可能导致结果偏斜;并且在自变量高度相关(多重共线性)时表现不佳。此外,OLS 需要满足一系列假设(线性、独立、同方差、正态性);若被违背,可能导致有偏或低效的估计。

OLS 回归可用于因果推断吗?

虽然 OLS 回归可以识别变量之间的关联,但要建立因果关系需要仔细考虑研究设计与潜在混杂因素。仅凭 OLS 无法证明因果性。要进行因果推断,通常需要结合随机对照试验、工具变量或倾向评分匹配等方法与 OLS 一起使用。

主题