线性回归的数学推导与最小二乘法


一、前言

线性回归是统计学中一种预测数值型数据的方法。在机器学习和数据分析领域,线性回归通常用于预测一个或多个自变量(predictor variables)和因变量(response variable)之间的关系。本文将详细介绍线性回归的数学原理和其通过最小二乘法的求解过程。

二、线性模型的定义

线性回归模型假设因变量 y y y 和自变量 x x x 之间存在线性关系,可以通过一个线性方程来描述:
h θ ( x ) = θ T x h_\theta(x) = \theta^T x hθ(x)=θTx
其中, θ \theta θ 代表模型的参数, x x x 是特征向量。

三、模型的假设与误差的详细推导

在实际的数据分析中,模型的预测值与真实值之间通常会存在误差。为了建模这种误差,并进行合理的统计推断,通常假设误差项 ε ( i ) \varepsilon^{(i)} ε(i) 遵循某种概率分布。在线性回归模型中,最常见的假设是误差项遵循独立同分布的正态分布。

误差项的假设

假设对于所有的 i i i,误差 ε ( i ) \varepsilon^{(i)} ε(i) 独立且服从均值为0、方差为 σ 2 \sigma^2 σ2 的正态分布。这可以数学上表示为:
ε ( i ) ∼ N ( 0 , σ 2 ) \varepsilon^{(i)} \sim N(0, \sigma^2) ε(i)N(0,σ2)
这意味着误差项的概率密度函数(PDF)为:
p ( ε ( i ) ) = 1 2 π σ 2 exp ⁡ ( − ( ε ( i ) ) 2 2 σ 2 ) p(\varepsilon^{(i)}) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(\varepsilon^{(i)})^2}{2\sigma^2}\right) p(ε(i))=2πσ2 1exp(2σ2(ε(i))2)

模型的表示

在给定模型参数 θ \theta θ 和自变量 x ( i ) x^{(i)} x(i) 的条件下,响应变量 y ( i ) y^{(i)} y(i) 的表达式为:
y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)} = \theta^T x^{(i)} + \varepsilon^{(i)} y(i)=θTx(i)+ε(i)
根据误差项的分布假设,我们可以推导出给定 x ( i ) x^{(i)} x(i) y ( i ) y^{(i)} y(i) 的条件概率密度函数:
y ( i ) ∣ x ( i ) ; θ ∼ N ( θ T x ( i ) , σ 2 ) y^{(i)} \mid x^{(i)}; \theta \sim N(\theta^T x^{(i)}, \sigma^2) y(i)x(i);θN(θTx(i),σ2)
因此, y ( i ) y^{(i)} y(i) 的条件概率密度函数为:
p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ 2 exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) p(y^{(i)} \mid x^{(i)}; \theta) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y^{(i)} - \theta^T x^{(i)})^2}{2\sigma^2}\right) p(y(i)x(i);θ)=2πσ2 1exp(2σ2(y(i)θTx(i))2)

误差分布的重要性

这种假设不仅简化了模型的数学处理,还允许我们使用最小二乘法来估计参数 θ \theta θ,因为最小二乘法估计在正态误差分布的假设下是最佳线性无偏估计(BLUE)。此外,正态分布假设还支持进行各种统计推断,如置信区间和假设检验。

通过以上推导,我们看到模型的假设对于参数估计和统计分析的正确性是至关重要的。误差分布的选择基于实际数据的特性以及分析的需求,其中正态分布假设因其数学属性和中心极限定理的支持,在实践中被广泛采用。

四、似然函数与对数似然

为了找到最佳的参数 θ \theta θ,我们构造似然函数来衡量在给定参数 θ \theta θ 下数据出现的概率:
L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) L(\theta) = \prod_{i=1}^m p(y^{(i)} | x^{(i)}; \theta) L(θ)=i=1mp(y(i)x(i);θ)
对数似然函数为:
log ⁡ L ( θ ) = ∑ i = 1 m log ⁡ ( 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) ) \log L(\theta) = \sum_{i=1}^m \log \left( \frac{1}{\sqrt{2\pi}\sigma} \exp \left(-\frac{(y^{(i)} - \theta^T x^{(i)})^2}{2\sigma^2}\right) \right) logL(θ)=i=1mlog(2π σ1exp(2σ2(y(i)θTx(i))2))
展开后,我们可以得到一个关于 θ \theta θ 的函数,该函数与最小二乘法中的目标函数密切相关。

五、最小二乘法的详细推导

最小二乘法是一种广泛使用的线性回归求解方法,它通过最小化误差的平方和来估计模型参数。我们从定义目标函数开始:

J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 J(\theta) = \frac{1}{2} \sum_{i=1}^m (y^{(i)} - \theta^T x^{(i)})^2 J(θ)=21i=1m(y(i)θTx(i))2

这里, J ( θ ) J(\theta) J(θ) 表示损失函数,即所有样本的预测误差平方和的一半。 m m m 是样本数量, y ( i ) y^{(i)} y(i) 是第 i i i 个观测值, θ T x ( i ) \theta^T x^{(i)} θTx(i) 是第 i i i 个预测值。

目标函数的矩阵形式

为了方便求解,将上述求和表达式转换为矩阵形式。定义矩阵 X X X 为设计矩阵,其中包含所有样本的特征, y y y 为观测值向量。则目标函数可重写为:

J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2} (X\theta - y)^T (X\theta - y) J(θ)=21(y)T(y)

求导并求解 θ \theta θ

为了找到使 J ( θ ) J(\theta) J(θ) 最小的 θ \theta θ,需要对 θ \theta θ 求导并设置导数等于零。使用矩阵求导公式,求解过程如下:

  1. 展开目标函数:
    J ( θ ) = 1 2 ( θ T X T − y T ) ( X θ − y ) J(\theta) = \frac{1}{2} (\theta^T X^T - y^T)(X\theta - y) J(θ)=21(θTXTyT)(y)
    = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) = \frac{1}{2} (\theta^T X^T X \theta - \theta^T X^T y - y^T X \theta + y^T y) =21(θTXTθTXTyyT+yTy)

  2. θ \theta θ 求导:
    导数涉及以下几个部分的矩阵求导:

    • ∂ ∂ θ ( θ T X T X θ ) = 2 X T X θ \begin{aligned}\frac{\partial}{\partial \theta} (\theta^T X^T X \theta) = 2X^T X \theta\end{aligned} θ(θTXT)=2XT(应用了 ∂ ∂ X ( X T A X ) = ( A + A T ) X \begin{aligned}\frac{\partial}{\partial X} (X^T A X) = \left(A+A^T\right) X\end{aligned} X(XTAX)=(A+AT)X A A A 为对称矩阵)
    • ∂ ∂ θ ( θ T X T y ) = X T y \begin{aligned}\frac{\partial}{\partial \theta} (\theta^T X^T y) = X^T y\end{aligned} θ(θTXTy)=XTy(因为 ∂ ∂ θ ( θ T X ) = X \begin{aligned}\frac{\partial}{\partial \theta} (\theta^TX) = X\end{aligned} θ(θTX)=X
    • ∂ ∂ θ ( y T X θ ) = X T y \begin{aligned}\frac{\partial}{\partial \theta} (y^T X \theta) = X^T y\end{aligned} θ(yT)=XTy(因为 ∂ ∂ θ ( X θ ) = X T \begin{aligned}\frac{\partial}{\partial \theta} (X \theta) = X^T\end{aligned} θ()=XT

    综合上述导数:
    ∂ J ( θ ) ∂ θ = X T X θ − X T y \frac{\partial J(\theta)}{\partial \theta} = X^T X \theta - X^T y θJ(θ)=XTXTy

  3. 设置导数等于零求解 θ \theta θ
    X T X θ = X T y X^T X \theta = X^T y XT=XTy
    解这个方程得到 θ \theta θ 的最优解:
    θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1} X^T y θ=(XTX)1XTy

结论

通过上述推导,我们得到了线性回归的解析解,即最小二乘法的解。这种方法直接通过矩阵运算得到参数估计,避免了迭代求解的复杂性,适用于变量数量不多且设计矩阵 X X X 的列线性独立时的情形。

六、总结

通过上述推导,我们展示了如何从概率分布的角度出发,通过最大化似然函数来推导出最小二乘法,最终求解线性回归模型。这种方法不仅可以提供参数估计的统计解释,还可以通过解析解直接计算参数,使得线性回归在实际应用中非常高效。理解这些基础的数学原理有助于深入理解线性模型的工作机制及其局限性。

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C++实现最小二乘法的步骤如下: 1. 定义自变量x、因变量y和最小二乘法的系数a、b ```c++ double x[n], y[n]; double a, b; ``` 2. 输入自变量x和因变量y的数据 ```c++ for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; } ``` 3. 计算自变量和因变量的平均值 ```c++ double x_mean = accumulate(x, x + n, 0.0) / n; double y_mean = accumulate(y, y + n, 0.0) / n; ``` 4. 计算最小二乘法的系数a、b ```c++ double numerator = 0.0, denominator = 0.0; for (int i = 0; i < n; i++) { numerator += (x[i] - x_mean) * (y[i] - y_mean); denominator += pow(x[i] - x_mean, 2.0); } a = numerator / denominator; b = y_mean - a * x_mean; ``` 5. 输出最小二乘法的系数a、b ```c++ cout << "a = " << a << ", b = " << b << endl; ``` 完整代码如下: ```c++ #include <iostream> #include <numeric> #include <cmath> using namespace std; int main() { int n; cin >> n; double x[n], y[n]; double a, b; for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; } double x_mean = accumulate(x, x + n, 0.0) / n; double y_mean = accumulate(y, y + n, 0.0) / n; double numerator = 0.0, denominator = 0.0; for (int i = 0; i < n; i++) { numerator += (x[i] - x_mean) * (y[i] - y_mean); denominator += pow(x[i] - x_mean, 2.0); } a = numerator / denominator; b = y_mean - a * x_mean; cout << "a = " << a << ", b = " << b << endl; return 0; } ``` ### 回答2: 最小二乘法是一种常用的数学方法,用于拟合数据点并找出最佳的拟合曲线。该方法的目标是通过最小化数据点与拟合曲线之间的垂直距离的平方和来找出最佳拟合曲线。 在最小二乘法中,首先需要根据给定的数据点,选择一个拟合曲线的函数形式。常见的函数形式包括线性、多项式、指数等。然后,通过调整曲线的参数,使得在数据点上的拟合误差最小化。 具体而言,最小二乘法通过以下步骤进行拟合: 1. 建立函数模型:选择适当的函数形式,例如线性回归模型。 2. 建立拟合目标函数:将数据点代入函数模型中,计算实际值与拟合值之间的差距,将差距的平方和作为目标函数。 3. 最小化目标函数:通过对目标函数求偏导数,令导数等于零,求得最小化目标函数的参数值。 4. 检验结果:对拟合曲线进行验证,并计算拟合优度等指标,以评估拟合效果。 最小二乘法具有以下特点: 1. 理论基础:最小二乘法建立在最小化误差的平方和的基础上,数学性质良好。 2. 普适性:最小二乘法适用于各种拟合问题,能够在一定程度上解决非线性问题。 3. 稳定性:最小二乘法对于存在噪声或异常值的数据具有较好的稳定性。 4. 易于实现:最小二乘法的实现相对简单,可以使用各种数值方法进行求解。 总之,最小二乘法是一种常用的拟合方法,在数据分析、统计学以及工程领域中应用广泛,能够有效地找到最佳的拟合曲线。 ### 回答3: 最小二乘法是一种用于拟合数据的数学方法。它的目标是找到一条直线或曲线,使得该直线/曲线与实际数据之间的残差平方和最小。 在最小二乘法中,我们假设数据之间存在线性关系,并试图找到最佳的拟合线/曲线来表示这种关系。 最小二乘法的核心思想是通过最小化残差平方和来确定最佳拟合线/曲线。残差是每个数据点与拟合线之间的垂直距离。通过对所有数据点的残差进行平方求和,并寻找最小化该平方和的拟合线,可以找到最佳的拟合结果。 为了求解最小二乘法,我们可以使用一系列数学技巧和方程推导。其中最常用的方法是求解正规方程或使用矩阵运算进行求解。最小二乘法的求解过程涉及到对数据进行预处理、构建方程组、求解方程组和评估拟合结果等步骤。 最小二乘法在实际应用中具有广泛的应用。它可以用于回归分析、统计推断、数据拟合等领域。最小二乘法的结果通常可以通过拟合直线/曲线来预测未知数据,或者用于对数据进行模型参数的估计。此外,最小二乘法还可以用于数据去噪、信号处理、机器学习等其他领域。 总的来说,最小二乘法是一种强大的数据分析和拟合工具。通过最小化残差平方和,它可以找到最佳的拟合线/曲线,并提供了可信的模型参数估计和预测能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值