线性回归是统计学中最基础且广泛使用的预测分析方法之一。它用于建模和分析两个变量之间的关系:一个因变量和一个或多个自变量。线性回归的目的是找到最佳拟合直线(在二维空间中)或超平面(在多维空间中),这条直线(或超平面)可以用来预测输出值。
简单线性回归(Simple Linear Regression)
简单线性回归只涉及一个自变量和一个因变量。其模型形式为:
y = \beta_0 + \beta_1 x + \epsilon
其中:
- ( y ) 是因变量(我们想要预测的变量)。
- ( x ) 是自变量。
- ( \beta_0 ) 是截距项。
- ( \beta_1 ) 是斜率,表示每单位 ( x ) 的变化对 ( y ) 的影响。
- ( \epsilon ) 是误差项,表示模型无法解释的随机变异。
多元线性回归(Multiple Linear Regression)
多元线性回归涉及两个或多个自变量。其模型形式为:
[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \ldots + \beta_n x_n + \epsilon ]
其中:
- ( y ) 是因变量。
- ( x_1, x_2, \ldots, x_n ) 是自变量。
- ( \beta_0 ) 是截距项。
- ( \beta_1, \beta_2, \ldots, \beta_n ) 是各自变量的系数。
- ( \epsilon ) 是误差项。
线性回归模型的参数估计
线性回归模型的参数(( \beta ) 系数)通常通过最小化实际观测值和模型预测值之间的差异来估计。最常见的方法是最小二乘法(Least Squares Method),它通过最小化残差平方和来找到最佳拟合线。
线性回归的假设
为了确保线性回归模型的有效性和可靠性,需要满足以下几个假设:
- 线性关系:自变量和因变量之间应存在线性关系。
- 独立性:自变量之间相互独立,不存在多重共线性。
- 同方差性(Homoscedasticity):对于所有的观测值,误差项具有恒定的方差。
- 正态分布:误差项呈正态分布。
- 无异常值:数据中不应存在异常值或极端值。
模型评估
线性回归模型的好坏通常通过以下几个指标来评估:
- R-squared(决定系数):衡量模型解释的变异性的比例。
- Adjusted R-squared:对R-squared进行调整,以考虑模型中变量的数量。
- F-statistic:用于检验模型中所有自变量作为一个整体对因变量的显著性。
- p-values:每个自变量的显著性检验。
- 残差图:用于检测模型假设的违反情况。
线性回归的应用
线性回归在许多领域都有应用,包括:
- 经济学:分析经济指标之间的关系。
- 金融:预测股票价格或评估资产的风险。
- 生物学:研究不同因素对生物体的影响。
- 工程学:优化设计参数。
- 社会科学:研究社会现象和行为。
代码示例
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
# 示例数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 2, 1.3, 3.75, 2.25])
# 创建线性回归模型实例
model = LinearRegression()
# 拟合模型
model.fit(X, y)
# 预测
X_pred = np.array([[6], [7]])
y_pred = model.predict(X_pred)
# 可视化
plt.scatter(X, y, color='blue') # 绘制原始数据点
plt.plot(X, model.predict(X), color='red') # 绘制拟合线
plt.scatter(X_pred, y_pred, color='green') # 绘制预测点
plt.show()
这段代码首先创建了一个线性回归模型,然后使用fit方法拟合数据,接着使用predict方法进行预测,并最终通过matplotlib库将数据点和拟合线可视化。