线性回归
1.基本概念
线性回归是一种统计方法,用于分析两个或多个变量之间的关系。其主要目的是通过建立一个线性模型来预测一个因变量(或称为目标变量)与一个或多个自变量(或称为特征变量)之间的关系。线性回归模型假设这种关系可以用直线来表示。
-
模型形式: 线性回归的基本形式为:
Y=β0+β1X1+β2X2+…+βnXn+ϵY=β0+β1X1+β2X2+…+βnXn+ϵ
其中 YY 是因变量,XiXi 是自变量,βiβi 是回归系数,ϵϵ 是误差项。
-
简单线性回归与多元线性回归:
- 简单线性回归:只有一个自变量。
- 多元线性回归:有多个自变量。
-
目标: 通过最小化残差平方和(即实际值与预测值之间的差异的平方和)来估计回归系数,从而找到最佳拟合线。
-
假设:
- 线性关系:自变量与因变量之间存在线性关系。
- 同方差性:误差项的方差在所有自变量的值上是常数。
- 正态性:误差项服从正态分布(在样本量较大时可忽略)。
- 独立性:观察值是相互独立的。
-
应用: 线性回归广泛应用于经济学、金融、社会科学、医疗等领域,用于预测、趋势分析以及因果关系探索。
2.最小二乘法
最小二乘法是一种数学优化技术,用于估计线性回归模型中未知参数的值。其核心思想是通过最小化预测值与实际观测值之间的差异的平方和,来找到最优的回归系数。
-
目标: 最小二乘法的目标是找到回归方程中的参数,使得残差平方和(即预测值与实际值之差的平方和)最小化。残差是指每个观测值与模型预测值之间的差。
-
数学表达: 对于给定的数据集 (x1,y1),(x2,y2),…,(xn,yn)(x1,y1),(x2,y2),…,(xn,yn),最小二乘法的目标是最小化以下目标函数:
S=∑i=1n(yi−yi)2S=i=1∑n(yi−yi)2
其中,yiyi 是模型的预测值。
-
求解步骤:
- 构建模型:根据线性回归模型设定形式。
- 计算残差:计算每个观测值的残差。
- 最小化目标函数:通过对目标函数求导并设置为零,求解出最优的回归系数。
-
优点:
- 简单易用:适用于线性关系的数据。
- 有效:在数据量较大且符合线性假设时,估计结果较为准确。
-
局限性:
- 对异常值敏感:因为平方项的存在,极端值会对结果产生较大影响。
- 假设线性关系:如果数据不符合线性假设,可能导致不准确的预测。
3.用代码来表示线性回归
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 生成一些示例数据
# 自变量 X
X = np.array([[1], [2], [3], [4], [5]])
# 因变量 Y
Y = np.array([1.5, 1.8, 3.2, 3.8, 5.1])
# 创建线性回归模型
model = LinearRegression()
# 拟合模型
model.fit(X, Y)
# 预测
Y_pred = model.predict(X)
# 输出模型参数
print(f'回归系数: {model.coef_[0]}')
print(f'截距: {model.intercept_}')
# 绘制结果
plt.scatter(X, Y, color='blue', label='实际数据')
plt.plot(X, Y_pred, color='red', label='拟合线')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('线性回归示例')
plt.legend()
plt.show()