看见:残差正方形的总面积
红色正方形总面积最小的直线
图 19 个蓝点是样本数据,橙色实线是一条随手画的直线 $y=0.056x+5.972$,绿色虚线是最小二乘直线 $\hat y=0.765x+1.453$,空心圆圈是样本中心 $(\bar x,\bar y)$。红色竖线是各点到橙色直线的残差,淡红色正方形以残差为边长,面积就是残差平方 $e_i^2$。橙线离数据很远,正方形又大又多;虚线穿过点群中央,同样的作图会使正方形总面积最小。
残差平方和 $Q(a,b)$
上图中橙色直线 $y=0.056x+5.972$ 的残差平方和 $Q=40.288$;最小二乘直线 $\hat y=0.765x+1.453$ 的最小值 $Q_{\min}=1.582$。前者是后者的 $25.47$ 倍。
$$
\begin{aligned}
\text{橙色直线:}\ & y=0.056x+5.972\\
\text{最小二乘直线:}\ & \hat y=0.765x+1.453
\end{aligned}
$$
橙色直线在各个 $x$ 处的残差 $e$ 为:
| $x$ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| $e$ |
$-3.83$ |
$-2.68$ |
$-3.04$ |
$-1.59$ |
$-0.35$ |
$-0.91$ |
$0.64$ |
$0.88$ |
$2.13$ |
这条直线的残差之和为 $-8.75$;而最小二乘直线的残差之和恒为 $0$。
思路为什么用竖直距离?回归是“已知 $x$ 预测 $y$”,误差出现在 $y$ 方向。为什么用平方?绝对值不好求导配方;平方和能直接配方得到唯一的最小点,而且大残差被放大,直线不会对远离的点置之不理。
推导:配方求 $\hat a$、$\hat b$
对 $a$ 配方,再对 $b$ 配方
- 目标:选 $a,b$ 使
$$Q(a,b)=\sum_{i=1}^n\big(y_i-bx_i-a\big)^2$$
最小。
$Q$ 是残差平方和:第一节里红色正方形的总面积
- 先固定 $b$,把 $Q$ 看成 $a$ 的二次函数。记 $u_i=y_i-bx_i$,$\bar u=\bar y-b\bar x$:
$$Q=\sum(u_i-a)^2=\sum(u_i-\bar u)^2+n(\bar u-a)^2$$
交叉项 $2(\bar u-a)\sum(u_i-\bar u)=0$,因为偏差之和为 0
- 所以对每个 $b$,最优的 $a$ 是
$$\hat a=\bar u=\bar y-b\bar x\iff \bar y=b\bar x+\hat a$$
回归直线必过样本中心 $(\bar x,\bar y)$。
也可以求导:$\dfrac{\partial Q}{\partial a}=-2\sum(y_i-bx_i-a)=0\Rightarrow a=\bar y-b\bar x$
- 代回:$u_i-\bar u=(y_i-\bar y)-b(x_i-\bar x)$,于是只剩 $b$:
$$Q(b)=\sum\big[(y_i-\bar y)-b(x_i-\bar x)\big]^2=S_{xx}b^2-2S_{xy}b+S_{yy}$$
$S_{xx}=\sum(x_i-\bar x)^2$,$S_{xy}=\sum(x_i-\bar x)(y_i-\bar y)$,$S_{yy}=\sum(y_i-\bar y)^2$
- 开口向上的二次函数,对称轴处最小:
$$\hat b=\frac{S_{xy}}{S_{xx}}=\frac{\sum(x_i-\bar x)(y_i-\bar y)}{\sum(x_i-\bar x)^2}=\frac{\sum x_iy_i-n\bar x\bar y}{\sum x_i^2-n\bar x^2}$$
- 最小值:
$$Q_{\min}=S_{yy}-\frac{S_{xy}^2}{S_{xx}}=S_{yy}\Big(1-\frac{S_{xy}^2}{S_{xx}S_{yy}}\Big)=S_{yy}(1-r^2)$$
与上一模块的 $r$ 联系起来:$|r|$ 越接近 1,残差平方和越小,拟合越好;$|r|=1$ 时 $Q_{\min}=0$,点全在直线上
- 两个副产品:$\hat b$ 与 $r$ 同号(分子都是 $S_{xy}$);残差之和
$$\sum\hat e_i=\sum(y_i-\hat b x_i-\hat a)=n(\bar y-\hat b\bar x-\hat a)=0$$
$\hat b=r\cdot\dfrac{s_y}{s_x}$:$r$ 决定方向,标准差之比决定陡峭程度
$Q$ 只看 $b$ 时是一条抛物线($a$ 已取最优)
图 2按显示的多项式 $Q(b)=60b^2-91.8b+36.7$ 作图;绿色实心点为最低点 $b=0.765$,橙点为 $b=0.30$。按该多项式计算 $Q_{\min}=1.5865$、$Q(0.30)=14.560$;与正文原始样本所报数值存在舍入差异。
数据与第一节相同,计算如下:
$$
\begin{aligned}
&S_{xx}=60,\quad S_{xy}=45.9,\quad S_{yy}=36.7\\
&Q(b)=60b^2-91.8b+36.7,\qquad Q(0.30)=14.556\\
&\hat b=\frac{S_{xy}}{S_{xx}}=0.765\\
&Q_{\min}=S_{yy}(1-r^2)=36.7\times(1-0.9569)=1.582
\end{aligned}
$$
$R^2$ 与残差分析
拟合效果:散点图与残差图
下面两张图的数据由真实关系 $y=2+0.8x$ 加随机噪声($\sigma=0.8$)生成。
图 3散点图:蓝点为样本,橙色实线是最小二乘直线 $\hat y=0.771x+2.032$,灰色虚线是 $y=\bar y$。点均匀地落在直线两侧。
图 4残差图:红点是各样本点的残差 $\hat e$,橙色水平线是 $\hat e=0$。残差在 0 两侧无规律地、均匀地分布在一条水平带内,说明线性模型合适。
总偏差 = 回归解释的部分 + 残差
图 5三条横条对应同一组数据的三个平方和:灰色是总偏差 $S_{yy}=109.4$,绿色是回归平方和 $\sum(\hat y_i-\bar y)^2=99.3$,红色是残差平方和 $\sum(y_i-\hat y_i)^2=10.1$。总偏差等于后两者之和。
$$
\begin{aligned}
&\hat y=0.771x+2.032\\
&R^2=1-\frac{10.09}{109.38}=0.9078,\qquad r^2=0.9078
\end{aligned}
$$
总偏差分解与 $R^2$$$\underbrace{\sum(y_i-\bar y)^2}_{S_{yy}\ \text{总偏差平方和}}=\underbrace{\sum(\hat y_i-\bar y)^2}_{\text{回归平方和}}+\underbrace{\sum(y_i-\hat y_i)^2}_{\text{残差平方和}}$$
$$R^2=1-\frac{\sum(y_i-\hat y_i)^2}{\sum(y_i-\bar y)^2}$$
$R^2$ 表示 $y$ 的波动中能被 $x$ 的线性关系解释的比例;一元线性回归中 $R^2=r^2$(由推导一节 $Q_{\min}=S_{yy}(1-r^2)$)。
注意若真实关系是“弯曲”的(见下一小节)且噪声为 0,$R^2$ 仍然很高,但残差图呈明显的 U 形——$R^2$ 高不等于模型选对了。残差应当在 0 两侧无规律、均匀地分布在一条水平带内。
真实关系为弯曲 $y=1+0.12x^2$ 时
图 6无噪声对照:20 个等距点来自 $y=1+0.12x^2$;左图蓝点与灰色真实曲线、橙色最小二乘直线 $\hat y=1.2x-0.8947$ 和灰色虚线 $y=\bar y$;右图为同一组数据的残差,清晰呈 U 形。此图为独立无噪声示意,下面的系数与平方和仍来自课件原始样本。
$$
\begin{aligned}
&\hat y=1.18x-1.009\\
&R^2=1-\frac{23.2}{255.55}=0.9092,\qquad r^2=0.9092
\end{aligned}
$$
此时总偏差平方和为 $255.6$,回归平方和为 $232.3$,残差平方和为 $23.2$。$R^2$ 高达 $0.9092$,但残差图已显示出弯曲的规律。
非线性回归:换元
换元:把曲线拉直,再用最小二乘
先用换元把非线性关系化成线性关系,再对新变量做最小二乘;最后把结果还原。下面分别看指数、对数、反比例三种常见模型。
指数模型 $y=c\,e^{dx}$
图 7原始坐标:蓝点是样本,橙色曲线是还原后的 $\hat y=2.069\,e^{0.3491x}$,灰色虚线是直接用直线拟合的结果,曲线明显更贴合。
图 8换元后坐标:横轴 $x$、纵轴 $z=\ln y$,蓝点几乎排成一条直线,橙色直线是 $\hat z=0.3491x+0.7269$。
原式 $y=c\,e^{dx}$ 两边取自然对数:$\ln y=\ln c+dx$。令 $z=\ln y$:
$$z=dx+\ln c\quad(\text{关于 }x\text{ 的线性函数})$$
对 $(x_i,z_i)$ 做最小二乘:$\hat z=0.3491x+0.7269$。还原:$\hat d=0.3491$,$\hat c=e^{0.7269}\approx2.069$,
$$\hat y=2.069\,e^{0.3491x}$$
换元后线性回归的 $R^2=0.9942$;直接用直线 $y=bx+a$ 的 $R^2=0.8606$。
注意指数模型取对数后,最小二乘是对 $\ln y$ 做的,它让 $\sum(\ln y_i-\widehat{\ln y_i})^2$ 最小,不是让原始的 $\sum(y_i-\hat y_i)^2$ 最小。高中题目都按换元后的线性回归计算即可。
对数模型 $y=b\ln x+a$(例 2 的数据)
图 9蓝点是例 2 的 8 组数据($x$ 为投入,$y$ 为收益),橙色曲线是 $\hat y=5.568\ln x-0.075$,灰色虚线是直接用直线拟合的结果。数据“先快后慢”,曲线比直线贴合得更好。
令 $v=\ln x$,$y=bv+a$ 就是关于 $v$ 的线性回归。用真实的 $\ln x_i$ 计算:$\hat y=5.568\ln x-0.075$。例 2 按附表的近似和($\sum v_i=29$ 等)算得 $\hat y=5\ln x+2$;两者的差别来自附表的四舍五入,见例 2 的“易错点”。
换元后线性回归的 $R^2=0.9778$;直接用直线 $y=bx+a$ 的 $R^2=0.9162$。
反比例模型 $y=a+\dfrac bx$
图 10蓝点是样本,橙色曲线是 $\hat y=1.936+\dfrac{6.171}{x}$,灰色虚线是直接用直线拟合的结果。数据先陡降后趋于平缓,直线明显拟合不了。
令 $t=\dfrac1x$,则 $y=a+bt$ 是关于 $t$ 的线性函数。对 $(t_i,y_i)$ 做最小二乘:$\hat y=1.936+6.171t$,即
$$\hat y=1.936+\frac{6.171}{x}$$
换元后线性回归的 $R^2=0.9954$;直接用直线 $y=bx+a$ 的 $R^2=0.5518$。
例题精讲
例 1原创例题
某店广告费 $x$(万元)与销售额 $y$(万元)的数据如下:
| $x$ |
1 |
2 |
3 |
4 |
5 |
| $y$ |
3 |
4 |
6 |
7 |
10 |
(1)求 $y$ 关于 $x$ 的经验回归方程;(2)求 $x=4$ 处的残差,并求残差平方和与 $R^2$;(3)预测广告费为 6 万元时的销售额。
建模思路$\hat b=\dfrac{\sum(x_i-\bar x)(y_i-\bar y)}{\sum(x_i-\bar x)^2}$,$\hat a=\bar y-\hat b\bar x$。残差 = 观测值 − 预测值。一元线性回归中 $R^2=r^2$。
解析
(1)经验回归方程
- $\bar x=3,\ \bar y=6$;偏差 $x_i-\bar x=-2,-1,0,1,2$,$y_i-\bar y=-3,-2,0,1,4$。
- $S_{xy}=6+2+0+1+8=17$,$S_{xx}=10$,$\hat b=\dfrac{17}{10}=1.7$。
- $\hat a=\bar y-\hat b\bar x=6-1.7\times3=0.9$,所以 $\hat y=1.7x+0.9$。
回归直线一定过样本中心 $(\bar x,\bar y)=(3,6)$
答案:$\hat y=1.7x+0.9$
(2)残差、残差平方和与 $R^2$
- $x=4$ 时 $\hat y=7.7$,残差 $\hat e=7-7.7=-0.7$。
残差 = 观测 − 预测;负数表示点在直线下方
- 五个残差:$0.4,\,-0.3,\,0,\,-0.7,\,0.6$(和为 0),$\sum\hat e_i^2=0.16+0.09+0+0.49+0.36=1.1$。
残差之和为 0 是最小二乘的必然结果,可用于检查计算
- $S_{yy}=9+4+0+1+16=30$,
$$R^2=1-\frac{1.1}{30}=\frac{28.9}{30}\approx0.963$$
- 验证:$r=\dfrac{17}{\sqrt{10\times30}}\approx0.981$,$r^2=\dfrac{289}{300}\approx0.963=R^2$。
推导一节:$Q_{\min}=S_{yy}(1-r^2)$
答案:残差 $-0.7$;$\sum\hat e_i^2=1.1$;$R^2\approx0.963$
(3)预测
- $\hat y=1.7\times6+0.9=11.1$(万元)。
“预测值”是估计的平均水平,不是一定等于 $11.1$
答案:约 $11.1$ 万元
易错点残差写成“预测 − 观测”会全部反号;预测时 $x$ 离样本范围太远(如 $x=50$),线性关系可能不再成立。
例 22024 温州二模
年投入资金 $x$(万元)与年收益 $y$(万元)的 8 组数据:
| $x$ |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
| $y$ |
12.8 |
16.5 |
19 |
20.9 |
21.5 |
21.9 |
23 |
25.4 |
附:$\sum y_i=161,\ \sum\ln x_i=29,\ \sum x_i^2=20400,\ \sum(\ln x_i)^2=109,\ \sum y_i\ln x_i=603$;$\ln2\approx0.7,\ \ln5\approx1.6$。
(1)用 $y=b\ln x+a$ 拟合,求回归方程;
(2)新研发药用淀粉,收益为投入的 10%。计划共投入 200 万元生产两种淀粉,求年收益的最大值(精确到 0.1 万元)。
建模思路散点“先快后慢”增长,像对数曲线。换元 $v=\ln x$,$y=bv+a$ 就是关于 $v$ 的线性回归,直接套最小二乘公式。
解析
(1)求回归方程
- 令 $v_i=\ln x_i$,则 $\bar v=\dfrac{29}8$,$\bar y=\dfrac{161}8$,$n=8$。
附表里 $\sum(\ln x_i)^2$ 与 $\sum y_i\ln x_i$ 就是 $\sum v_i^2$ 与 $\sum v_iy_i$;$\sum x_i^2$ 是干扰项
- $$\hat b=\frac{\sum v_iy_i-n\bar v\bar y}{\sum v_i^2-n\bar v^2}=\frac{603-\frac{29\times161}8}{109-\frac{29^2}8}=\frac{4824-4669}{872-841}=\frac{155}{31}=5$$
分子分母同乘 8 化成整数再算
- $\hat a=\bar y-\hat b\bar v=\dfrac{161-145}8=2$,所以 $\hat y=5\ln x+2$。
答案:$\hat y=5\ln x+2$
(2)收益最大值
- 设食品淀粉投入 $x$ 万元,药用淀粉 $200-x$ 万元($0<x\le200$):
$$f(x)=5\ln x+2+0.1(200-x)=5\ln x-0.1x+22$$
- $f'(x)=\dfrac5x-0.1=\dfrac{50-x}{10x}$:$(0,50)$ 上 $f'>0$,$(50,200)$ 上 $f'<0$。
- $$f(50)=5\ln50+17=5(2\ln5+\ln2)+17\approx5\times3.9+17=36.5$$
按题给 $\ln2\approx0.7$、$\ln5\approx1.6$ 计算。若用真实值 $\ln50\approx3.912$,则 $f(50)\approx36.6$:题目约定的近似值决定了答案
答案:投入食品淀粉 50 万元时年收益最大,约 $36.5$ 万元
易错点附表中的和是四舍五入的(真实 $\sum\ln x_i\approx29.03$,$\sum(\ln x_i)^2\approx108.77$)。分母 $\sum v_i^2-n\bar v^2$ 是两个相近大数之差,对舍入极敏感:用真实值算得 $\hat b\approx5.57$。考试中必须按附表数据计算,但这提醒我们:分母本质是 $\sum(v_i-\bar v)^2$,计算时尽量少做“大数相减”。
课堂小测
课堂小测
已知 $\bar x=4,\ \bar y=10$,经验回归方程 $\hat y=\hat bx+3$,则 $\hat b$ 为
查看答案与解析
答案B
解析回归直线过 $(\bar x,\bar y)$:$10=4\hat b+3\Rightarrow\hat b=\dfrac74$。
辨析- A:把 $\bar x$、$\bar y$ 位置弄反了,应为 $10=4\hat b+3$
- C:$\dfrac{10}4$ 忽略了截距 3
- D:条件足够,样本中心一定在回归直线上。
课堂小测
查看答案与解析
答案D
解析最小二乘只保证残差平方和最小,并不要求直线经过任何一个样本点;它一定经过的是样本中心 $(\bar x,\bar y)$,而样本中心通常不是样本点。
辨析- A:正确,由 $\sum\hat e_i=n(\bar y-\hat b\bar x-\hat a)=0$
- B:正确,$\hat b$ 与 $r$ 的分子都是 $S_{xy}$
- C:正确,$Q_{\min}=S_{yy}(1-r^2)$。
课堂小测
用 $y=c\,e^{dx}$ 拟合数据,令 $z=\ln y$ 得 $\hat z=0.3x+1.2$,则
查看答案与解析
答案A
解析$\ln y=1.2+0.3x\Rightarrow y=e^{1.2}\cdot e^{0.3x}$,所以 $c=e^{1.2}$,$d=0.3$。
辨析- B:截距 $1.2$ 是 $\ln c$,要取指数才是 $c$
- C:斜率对应 $d$,截距对应 $\ln c$,位置弄反了
- D:斜率 $0.3$ 本身就是 $d$,不需要再取对数。