一元线性回归是一种统计方法,用于分析响应变量的条件均值与一个解释变量之间的线性关系,是多元线性回归在单一自变量时的特例。它通过拟合一条直线来最小化预测值与实际值之间的误差。具体来说,一元线性回归模型可以描述如下:
一元线性回归模型
一元线性回归模型的形式为:
y=β0+β1x+ϵ
- y 是因变量(也称为响应变量或被解释变量)。
- x 是自变量(也称为解释变量或预测变量)。
- β0 是截距项,表示当 x=0 时 y 的期望值。
- β1 是斜率项,表示 x 每增加一个单位, y 的期望值增加的单位。
- ϵ 是误差项,表示观测值与真实条件均值之间的差异;拟合之后的观测值减拟合值称为残差,两者不同,通常假设服从均值为0的正态分布,即 ϵ∼N(0,σ2)。
最小二乘法
为了估计回归系数 β0 和 β1,通常使用最小二乘法(Least Squares Method)。该方法通过最小化以下残差平方和(Residual Sum of Squares,RSS)来确定最优的回归系数:
RSS=i=1∑n(yi−(β0+β1xi))2
通过求解这个最小化问题,可以得到回归系数的估计值:
β^1=∑i=1n(xi−xˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
β^0=yˉ−β^1xˉ
其中 xˉ,yˉ 分别是样本均值,要求 Sxx=∑i(xi−xˉ)2>0,即解释变量并非全部相同。最小二乘拟合本身不要求正态分布;以下精确推断另假设给定设计 xi 时误差独立同分布于 N(0,σ2)。
模型评估
为了评估一元线性回归模型的拟合效果,常用以下几种统计量:
决定系数 (R2)
R2=1−TSSRSS
其中, TSS 是总平方和(Total Sum of Squares),表示 y 的总变异:
TSS=i=1∑n(yi−yˉ)2
当包含截距、采用样本内普通最小二乘且 TSS>0 时,R2 取值范围为0到1,值越接近1,表示模型对数据的解释能力越强;在一元线性回归中 R2 恰为相关系数的平方 r2。
均方误差 (MSE)
MSE=n1i=1∑n(yi−y^i)2
其中 y^i=β^0+β^1xi 是拟合值。这里 RSS/n 是训练误差的平均值;用于方差估计与推断的残差均方为 s2=RSS/(n−2),要求 n>2。
假设检验
为了检验回归系数是否显著,可以进行假设检验,例如:
- 检验 β1 是否为零(即自变量 x 对因变量 y 是否有显著影响)。在上述正态独立误差条件下,使用 t检验:
T=s/Sxxβ^1−β1,0∼t(n−2)在 H0:β1=β1,0 下.
采用上尾临界值时,双侧拒绝域为 ∣T∣>tα/2,n−2。斜率的 1−α 置信区间为 β^1±tα/2,n−2s/Sxx。统计显著不自动表示因果关系。
Python 实现示例
以下是使用Python实现一元线性回归的示例代码:
import numpy as np
import matplotlib.pyplot as plt
# 生成示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
# 计算均值
x_mean = np.mean(x)
y_mean = np.mean(y)
# 计算回归系数
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
# 打印回归系数
print(f'regression coefficient β0: {beta_0}')
print(f'regression coefficient β1: {beta_1}')
# 预测值
y_pred = beta_0 + beta_1 * x
# 绘制数据点和回归线
plt.scatter(x, y, color='blue', label='data scatter')
plt.plot(x, y_pred, color='red', label='regression line')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
示例的推断与预测
上面代码的数据给出 xˉ=3、yˉ=4、Sxx=10、Sxy=6,故 β^1=0.6、β^0=2.2。拟合值为 (2.8,3.4,4,4.6,5.2),残差为 (−0.8,0.6,1,−0.6,−0.2),其和及与 x 的内积均为零。
RSS=2.4、TSS=6、R2=0.6、s2=0.8。斜率标准误为 0.8/10≈0.28284,检验零斜率得到 T≈2.1213、自由度 3、双侧 p≈0.1240;95% 斜率区间约为 [−0.3001,1.5001]。因此拟合斜率为正、R2=0.6,仍不意味着在 5% 水平显著。
对给定新位置 x0,记 y^0=β^0+β^1x0。正态独立同方差模型下:
- 条件均值的置信区间为 y^0±tα/2,n−2s1/n+(x0−xˉ)2/Sxx。
- 同一模型下一个独立新观测的预测区间为 y^0±tα/2,n−2s1+1/n+(x0−xˉ)2/Sxx。
预测区间多出新误差的方差,必比均值区间宽。残差随拟合值呈曲线、漏斗形或随观测顺序相关时,分别提示均值形式、同方差或独立性可能不适合;这些图是诊断证据,不能证明假设成立。样本范围外的外推还依赖关系继续成立。