A. 线性回归(Linear Regression)模型详解(含python 代码)
线性回归模型详解与Python代码示例
线性回归是一种统计学方法,用于描述一个或多个自变量与因变量之间的线性关系。其模型定义如下:
\[
y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_mx_m + \epsilon
\]
其中:
- $y$ 是因变量
- $x_1, x_2, ..., x_m$ 是自变量
- $\beta_0, \beta_1, ..., \beta_m$ 是回归系数
- $\epsilon$ 是误差项
线性回归模型的假设包括:
1. **线性关系**:因变量与自变量之间应满足线性关系。
2. **同方差性**:误差项的方差在自变量变化时保持一致。
3. **独立观察**:样本数据独立采集。
4. **无或微弱共线性**:自变量之间不存在强相关性。
5. **残差独立且服从正态分布**:残差应服从均值为0的正态分布且相互独立。
分类:
- 当$m=1$时,称为简单线性回归。
- 当$m>1$时,称为多元线性回归。
简单线性回归模型定义为:
\[
y = \alpha + \beta x + \epsilon
\]
其中:
- $y$ 是因变量
- $x$ 是自变量
- $\alpha$ 是截距(或常数项)
- $\beta$ 是斜率(或回归系数)
参数估计采用最小二乘法。目标是求解使SSE(误差平方和)最小的$\alpha$和$\beta$。通过求导并解方程组,可以得到最小二乘估计:
\[
\alpha = \bar{y} - \beta \bar{x}
\]
\[
\beta = \frac{\sum(x-\bar{x})(y-\bar{y})}{\sum(x-\bar{x})^2}
\]
其中,$\bar{x}$和$\bar{y}$分别是$x$和$y$的均值。
统计检验通过t-test进行,计算出$t$值和P值来评估$\beta$的显着性。
示例代码实现简单线性回归:
python
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf
# 示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
# 添加常数项
x = sm.add_constant(x)
# 模型拟合
model = smf.ols('y ~ x', data={'x': x, 'y': y})
result = model.fit()
# 输出回归系数
print(result.params)
# 绘制回归线
plt.scatter(x[:,1], y)
plt.plot(x[:,1], result.params[0] + result.params[1]*x[:,1], 'r')
plt.show()
以上示例展示了如何使用Python中的`statsmodels`库实现简单线性回归。对于多元线性回归的详细内容将在后续文章中介绍。