最小二乘法实现二元线性回归
时间: 2023-10-01 07:11:53 浏览: 141
最小二乘法是一种常用的回归分析方法,用于确定两个变量之间的线性关系。在二元线性回归中,我们希望找到一个线性方程,将自变量 X 和因变量 Y 进行拟合。假设我们有 n 个样本数据,X 和 Y 分别表示自变量和因变量,则线性回归的模型可以表示为:
Y = β0 + β1X + ε
其中,β0 和 β1 是模型的参数,ε 表示误差项。我们的目标是找到 β0 和 β1 的最优值,使得模型可以最好地拟合数据。
最小二乘法的基本思想是,通过最小化误差平方和来估计模型参数。误差平方和(SSE)是指模型预测值与实际值之间的差异的平方和,即:
SSE = Σ(Yi - Ŷi)2
其中,Yi 表示第 i 个样本的实际值,Ŷi 表示模型预测的值。
为了最小化 SSE,我们需要对 β0 和 β1 分别求偏导,并令偏导数为 0,得到:
β1 = Σ((Xi - X̄)(Yi - Ȳ)) / Σ(Xi - X̄)2
β0 = Ȳ - β1X̄
其中,X̄ 和 Ȳ 分别表示自变量 X 和因变量 Y 的平均值。
下面是 Python 代码实现:
```python
import numpy as np
def linear_regression(x, y):
# 求 X 和 Y 的平均值
x_mean = np.mean(x)
y_mean = np.mean(y)
# 根据公式计算 β1 和 β0
numerator = np.sum((x - x_mean) * (y - y_mean))
denominator = np.sum((x - x_mean) ** 2)
beta_1 = numerator / denominator
beta_0 = y_mean - beta_1 * x_mean
return beta_0, beta_1
```
其中,x 和 y 是分别存储自变量和因变量的 numpy 数组。函数 linear_regression 返回 β0 和 β1 的值。
阅读全文