用一条线做预测:最小二乘回归
目标:根据配对数据拟合一条最小二乘直线,并解释斜率、残差和决定系数。
上一课确认五天客流与销量大体呈直线关系。现在问得更具体:「预计客流 350 人时,销量大约多少?」相关系数只描述关系强弱,预测还需要一条有单位的函数。
继续使用 x=1、2、3、4、5 百人,y=2、4、4、5、7 十杯。拟合形式 ŷ=a+bx,ŷ 是预测值,a 为截距,b 为斜率。第 i 个点的残差是 eᵢ=yᵢ−ŷᵢ,即观察值减预测值。
为什么是平方误差
若只把残差相加,正负会抵消,错误很大的直线也可能合计为零。最小二乘选择使 SSE=Σ(y−ŷ)² 最小的 a、b。它给大残差较大的惩罚,也因此对异常点敏感。
用上一课已经算出的三个和,把公式写短一些:
Sxx = Σ(x−x̄)² = 10
Sxy = Σ(x−x̄)(y−ȳ) = 11
Syy = Σ(y−ȳ)² = 13.2
b = Sxy/Sxx = 1.1
a = ȳ−bx̄ = 4.4−1.1×3 = 1.1
所以 ŷ = 1.1+1.1x
这也常写为 ŷ=b0+b1x,或用 α、β 表示总体参数,用带帽符号表示估计值。符号变了,截距与斜率的角色没有变。公式还保证拟合直线经过 (x̄,ȳ)。
把每个残差算出来
| x | y | ŷ | 残差 y−ŷ | 残差平方 |
|---|---|---|---|---|
| 1 | 2 | 2.2 | −0.2 | 0.04 |
| 2 | 4 | 3.3 | 0.7 | 0.49 |
| 3 | 4 | 4.4 | −0.4 | 0.16 |
| 4 | 5 | 5.5 | −0.5 | 0.25 |
| 5 | 7 | 6.6 | 0.4 | 0.16 |
| 合计 | 0 | 1.10 |
若忽略客流,总是预测平均销量 4.4,平方误差和是 Syy=13.2。使用直线后降为 1.1。因此决定系数 R²=1−SSE/Syy=1−1.1/13.2≈0.9167。
含截距的一元最小二乘回归中,R² 等于 r²。它表示在这批数据中,相比恒预测均值,直线解释了约 91.7% 的 y 总平方变差;不是 91.7% 的天数预测正确,也不是已证明 91.7% 的销量由客流造成。
把数值翻译回业务
x 增加 1 单位,也就是客流增加 100 人,模型预测销量平均增加 1.1 十杯,即 11 杯。截距 1.1 十杯对应 x=0,但样本客流最低为 100 人,零客流超出观测范围;不要把截距解释为已验证的「无人经过也能卖 11 杯」。
客流 350 人对应 x=3.5,预测 1.1+1.1×3.5=4.95 十杯,即 49.5 杯。准备多少整数杯还要结合损耗、缺货成本与预测不确定性;点预测不能单独决定库存。
跟着做:检查方向
- 用 x=4 算预测与残差,和表格核对。
- 将销售单位从十杯改为杯,写出新回归式。
- 判断 r 与 R² 是否改变。
核对答案
预测 5.5 十杯,实际 5,残差 −0.5 十杯。换成杯为 ŷ=11+11x。r 和 R² 不变,因为只换了正比例单位,残差平方和与总平方和都乘 100,比值保持不变。
独立练习
数据 x=1、2、3、y=2、4、6。求斜率、截距、三个残差与 R²;再解释为什么 R²=1 仍不能保证未来所有点都精确落在线上。
参考答案
x̄=2、ȳ=4,Sxx=2、Sxy=4,所以 b=2、a=0,残差都为零,R²=1。这只是三点的样本内拟合结果;未来可能出现新机制、误差或范围变化。也不能把回归 y 对 x 的直线直接反解成最小二乘 x 对 y:两者最小化的方向不同,只有特殊情形才重合。
若残差和不接近零,先核对截距、四舍五入与预测值;若 Sxx=0,所有 x 相同,斜率无法估计。下一课会检视拟合之后仍剩下的误差。