MathLabs

概率与统计

回归分析

对变量之间的关系建模,以便由其他变量预测某一变量。

直观从一个变量预测另一个变量

假设你把一组学生的学习时长与他们的考试成绩画成散点图。这些点并不完全落在一条直线上,但明显呈上升趋势:学习时间越长,分数往往越高。回归正是把这团漂移的点云,变成一条拟合最好的直线(或曲线)的工具,从而总结趋势,并对新的学习时长预测出对应的分数。

一团呈上升趋势的散点,穿过它们的一条最佳拟合直线,展示简单线性回归的斜率与截距。
普通最小二乘线性回归:橙色直线使各观测数据点到直线的竖直残差(虚线)平方和达到最小。

大学简单线性回归模型

定义: 简单线性回归

给定成对数据 (x1,y1),…,(xn,yn)(x_1,y_1),\dots,(x_n,y_n),简单线性回归模型假设 yy 通过一条直线加随机噪声依赖于 xx:y=β0+β1x+ϵy=\beta_0+\beta_1x+\epsilon,其中 β0\beta_0 是截距,β1\beta_1 是斜率,ϵ\epsilon 是均值为0的随机误差项,吸收了直线未能捕捉到的一切。

y=β0+β1x+ϵy=\beta_0+\beta_1x+\epsilon

截距 β0\beta_0 与斜率 β1\beta_1 是未知的总体参数:我们永远无法直接观测到的固定数值。我们拥有的是 nn 个数据点组成的样本,由此计算出估计量 β^0\hat\beta_0 与 β^1\hat\beta_1。拟合直线 y^=β^0+β^1x\hat y=\hat\beta_0+\hat\beta_1x 是我们对真实直线的最佳猜测,而对每个数据点,残差 ei=yi−y^ie_i=y_i-\hat y_i 衡量拟合直线偏离该观测值的程度。

β^1=∑i=1n(xi−xˉ)(yi−yˉ)∑i=1n(xi−xˉ)2,β^0=yˉ−β^1xˉ\hat\beta_1=\dfrac{\sum_{i=1}^n (x_i-\bar x)(y_i-\bar y)}{\sum_{i=1}^n (x_i-\bar x)^2},\qquad \hat\beta_0=\bar y-\hat\beta_1\bar x

在所有直线 y=b0+b1xy=b_0+b_1x 中,使残差平方和 ∑i=1n(yi−b0−b1xi)2\sum_{i=1}^n (y_i-b_0-b_1x_i)^2 最小的选择是 b1=β^1=SxySxxb_1=\hat\beta_1=\dfrac{S_{xy}}{S_{xx}} 与 b0=β^0=yˉ−β^1xˉb_0=\hat\beta_0=\bar y-\hat\beta_1\bar x,其中 Sxy=∑i=1n(xi−xˉ)(yi−yˉ)S_{xy}=\sum_{i=1}^n(x_i-\bar x)(y_i-\bar y),Sxx=∑i=1n(xi−xˉ)2S_{xx}=\sum_{i=1}^n(x_i-\bar x)^2。

为什么成立?

残差平方和是关于 b0b_0 与 b1b_1 的光滑(二次、凸)函数,因此其最小值恰好出现在两个偏导数同时为零之处——这与通过让碗在各个方向上的坡度都为零来找到碗底是同一个思路。

证明

记 Q(b0,b1)=∑i=1n(yi−b0−b1xi)2Q(b_0,b_1)=\sum_{i=1}^n (y_i-b_0-b_1x_i)^2。对 b0b_0 求偏导并令其为零:∂Q∂b0=−2∑i=1n(yi−b0−b1xi)=0\dfrac{\partial Q}{\partial b_0}=-2\sum_{i=1}^n(y_i-b_0-b_1x_i)=0,化简得第一正规方程 ∑i=1nyi=nb0+b1∑i=1nxi\sum_{i=1}^n y_i = nb_0+b_1\sum_{i=1}^n x_i,即 b0=yˉ−b1xˉb_0=\bar y-b_1\bar x。

对 b1b_1 求偏导并令其为零:∂Q∂b1=−2∑i=1nxi(yi−b0−b1xi)=0\dfrac{\partial Q}{\partial b_1}=-2\sum_{i=1}^n x_i(y_i-b_0-b_1x_i)=0,即第二正规方程 ∑i=1nxiyi=b0∑i=1nxi+b1∑i=1nxi2\sum_{i=1}^n x_iy_i = b_0\sum_{i=1}^n x_i+b_1\sum_{i=1}^n x_i^2。

将第一式 b0=yˉ−b1xˉb_0=\bar y-b_1\bar x 代入第二式:∑i=1nxiyi=(yˉ−b1xˉ)nxˉ+b1∑i=1nxi2=nxˉyˉ+b1(∑i=1nxi2−nxˉ2)\sum_{i=1}^n x_iy_i = (\bar y-b_1\bar x)n\bar x+b_1\sum_{i=1}^n x_i^2 = n\bar x\bar y+b_1\left(\sum_{i=1}^n x_i^2-n\bar x^2\right)。整理分离出 b1b_1:b1(∑i=1nxi2−nxˉ2)=∑i=1nxiyi−nxˉyˉb_1\left(\sum_{i=1}^n x_i^2-n\bar x^2\right)=\sum_{i=1}^n x_iy_i-n\bar x\bar y。

直接的代数展开表明 ∑i=1nxi2−nxˉ2=∑i=1n(xi−xˉ)2=Sxx\sum_{i=1}^n x_i^2-n\bar x^2=\sum_{i=1}^n(x_i-\bar x)^2=S_{xx},∑i=1nxiyi−nxˉyˉ=∑i=1n(xi−xˉ)(yi−yˉ)=Sxy\sum_{i=1}^n x_iy_i-n\bar x\bar y=\sum_{i=1}^n(x_i-\bar x)(y_i-\bar y)=S_{xy},故 b1=Sxy/Sxxb_1=S_{xy}/S_{xx}。代回即得 b0=yˉ−b1xˉb_0=\bar y-b_1\bar x。由于 QQ 是当 ∣b0∣,∣b1∣→∞|b_0|,|b_1|\to\infty 时无限增长的二次型平方和,这个唯一的驻点必是全局最小值。

大学拟合优度:决定系数

R2=1−SSESSTR^2=1-\dfrac{SSE}{SST}

定义: 平方和与R2R^2

把 yy 的总变差分解为三个平方和:SST=∑i=1n(yi−yˉ)2SST=\sum_{i=1}^n(y_i-\bar y)^2(总平方和)、SSR=∑i=1n(y^i−yˉ)2SSR=\sum_{i=1}^n(\hat y_i-\bar y)^2(回归解释的部分)与 SSE=∑i=1n(yi−y^i)2SSE=\sum_{i=1}^n(y_i-\hat y_i)^2(残留的残差部分)。决定系数 R2=SSR/SST=1−SSE/SSTR^2=SSR/SST=1-SSE/SST 就是直线所解释的 yy 变动所占的比例。

在简单线性回归中,SST=SSR+SSESST=SSR+SSE,因此 0≤R2≤10\le R^2\le 1;此外 R2R^2 等于 xx 与 yy 的样本相关系数 rr 的平方:R2=r2R^2=r^2。

为什么成立?

最小二乘拟合的残差总是与拟合值不相关,因为定义 β^0,β^1\hat\beta_0,\hat\beta_1 的正规方程恰恰就是强制这一点成立的条件。正是这种正交性,使得总变差能干净地分解为"被解释"部分与"剩余"部分,而没有交叉项。

证明

上面最小二乘定理给出的两个正规方程为 ∑i=1nei=0\sum_{i=1}^n e_i=0 与 ∑i=1nxiei=0\sum_{i=1}^n x_ie_i=0,其中 ei=yi−y^ie_i=y_i-\hat y_i。由于 y^i=β^0+β^1xi\hat y_i=\hat\beta_0+\hat\beta_1x_i 是 11 与 xix_i 的线性组合,两个正规方程结合给出 ∑i=1neiy^i=β^0∑i=1nei+β^1∑i=1nxiei=0\sum_{i=1}^n e_i\hat y_i=\hat\beta_0\sum_{i=1}^n e_i+\hat\beta_1\sum_{i=1}^n x_ie_i=0。再结合 ∑ei=0\sum e_i=0,得到 ∑i=1nei(y^i−yˉ)=∑eiy^i−yˉ∑ei=0\sum_{i=1}^n e_i(\hat y_i-\bar y)=\sum e_i\hat y_i-\bar y\sum e_i=0。

现在展开 SST=∑i=1n(yi−yˉ)2=∑i=1n((yi−y^i)+(y^i−yˉ))2=∑ei2+2∑ei(y^i−yˉ)+∑(y^i−yˉ)2SST=\sum_{i=1}^n(y_i-\bar y)^2=\sum_{i=1}^n\big((y_i-\hat y_i)+(\hat y_i-\bar y)\big)^2=\sum e_i^2+2\sum e_i(\hat y_i-\bar y)+\sum(\hat y_i-\bar y)^2。交叉项由刚证明的正交性消去,剩下 SST=SSE+SSRSST=SSE+SSR。

由于 SSE=∑ei2≥0SSE=\sum e_i^2\ge0 且 SSR=∑(y^i−yˉ)2≥0SSR=\sum(\hat y_i-\bar y)^2\ge0,将 SST=SSR+SSESST=SSR+SSE 除以 SST>0SST>0 得 R2=SSR/SST∈[0,1]R^2=SSR/SST\in[0,1]。

最后,y^i−yˉ=β^1(xi−xˉ)\hat y_i-\bar y=\hat\beta_1(x_i-\bar x)(因为 y^i=β^0+β^1xi\hat y_i=\hat\beta_0+\hat\beta_1x_i 且 yˉ=β^0+β^1xˉ\bar y=\hat\beta_0+\hat\beta_1\bar x),故 SSR=β^12SxxSSR=\hat\beta_1^2S_{xx}。代入 β^1=Sxy/Sxx\hat\beta_1=S_{xy}/S_{xx} 得 SSR=Sxy2/SxxSSR=S_{xy}^2/S_{xx},又 SST=Syy=∑(yi−yˉ)2SST=S_{yy}=\sum(y_i-\bar y)^2,故 R2=Sxy2SxxSyy=(SxySxxSyy)2=r2R^2=\dfrac{S_{xy}^2}{S_{xx}S_{yy}}=\left(\dfrac{S_{xy}}{\sqrt{S_{xx}S_{yy}}}\right)^2=r^2,即样本相关系数的平方。

例题: 为五个数据点拟合直线

一个小数据集为 x=(1,2,3,4,5)x=(1,2,3,4,5),y=(2,4,5,4,5)y=(2,4,5,4,5)。求最小二乘直线并计算 R2R^2。

解答

均值为 xˉ=3\bar x=3,yˉ=4\bar y=4。偏差 (xi−xˉ,yi−yˉ)(x_i-\bar x, y_i-\bar y) 为 (−2,−2),(−1,0),(0,1),(1,0),(2,1)(-2,-2),(-1,0),(0,1),(1,0),(2,1),故 Sxy=4+0+0+0+2=6S_{xy}=4+0+0+0+2=6,Sxx=4+1+0+1+4=10S_{xx}=4+1+0+1+4=10。

由此 β^1=Sxy/Sxx=6/10=0.6\hat\beta_1=S_{xy}/S_{xx}=6/10=0.6,β^0=yˉ−β^1xˉ=4−0.6×3=2.2\hat\beta_0=\bar y-\hat\beta_1\bar x=4-0.6\times3=2.2,拟合直线为 y^=0.6x+2.2\hat y=0.6x+2.2。

关于 R2R^2:SST=∑(yi−yˉ)2=4+0+1+0+1=6SST=\sum(y_i-\bar y)^2=4+0+1+0+1=6,SSR=β^12Sxx=0.36×10=3.6SSR=\hat\beta_1^2S_{xx}=0.36\times10=3.6,故 R2=SSR/SST=3.6/6=0.6R^2=SSR/SST=3.6/6=0.6——该直线解释了 yy 变动的60%。

大学检验模型:残差分析

拟合一条直线很容易;要信任它则需要检验模型的假设是否真的成立。将残差 ei=yi−y^ie_i=y_i-\hat y_i 对 xix_i(或对 y^i\hat y_i)作图是标准的诊断方法:如果线性模型合适,这张残差图应呈现出围绕0的、无结构的随机散布,且波动幅度大致恒定。

解读残差图
残差图中的模式所提示的问题
围绕0随机散布,波动幅度恒定线性模型与方差恒定的假设看起来是合理的
喇叭/扇形(波动随 xx增大)异方差性:方差恒定的假设被违反
弯曲(U形或弧形)模式真实关系是非线性的;直线的形状不对

大学实际应用与典型例题

回归是应用科学中使用最广泛的工具之一:经济学家用它估计一只股票与整体市场联动的强弱,生物学家用它把动物的体型与代谢率联系起来,工程师用它把仪器与已知基准进行校准,流行病学家用它把药物剂量与所测反应联系起来。在每一种情形下,都会出现同样的两个问题:拟合有多好(R2R^2),以及残差图是否暴露了某种隐藏的问题?

例题: 根据气温预测冰淇淋销量

某商店记录了五天的日气温 xx(°C)与冰淇淋销量 yy(件):x=(20,25,30,35,40)x=(20,25,30,35,40),y=(30,45,55,65,80)y=(30,45,55,65,80)。拟合一条回归直线,并用它预测 x=32x=32°C 时的销量。

解答

均值为 xˉ=30\bar x=30,yˉ=55\bar y=55。由偏差得 Sxy=(−10)(−25)+(−5)(−10)+0+5×10+10×25=250+50+0+50+250=600S_{xy}=(-10)(-25)+(-5)(-10)+0+5\times10+10\times25=250+50+0+50+250=600,Sxx=100+25+0+25+100=250S_{xx}=100+25+0+25+100=250,故 β^1=600/250=2.4\hat\beta_1=600/250=2.4,β^0=55−2.4×30=−17\hat\beta_0=55-2.4\times30=-17:拟合直线为 y^=2.4x−17\hat y=2.4x-17。

当 x=32x=32 时:y^=2.4×32−17=76.8−17=59.8\hat y=2.4\times32-17=76.8-17=59.8,商店应预计卖出约60件。

检验拟合优度:SST=625+100+0+100+625=1450SST=625+100+0+100+625=1450,SSR=β^12Sxx=5.76×250=1440SSR=\hat\beta_1^2S_{xx}=5.76\times250=1440,故 R2=1440/1450≈0.993R^2=1440/1450\approx0.993——此处气温解释了销量约99.3%的变动,这是现实数据中异常紧密的拟合。

例题: 高R2R^2仍掩盖着问题的例子

一位工程师通过在多个压力值下,将 reading=β0+β1⋅true pressure\text{reading}=\beta_0+\beta_1\cdot\text{true pressure} 与参考仪器拟合来校准一个新的压力传感器,得到 R2=0.95R^2=0.95——看起来非常出色。但把残差对真实压力作图后,却出现明显的U形曲线:低压和高压处残差为正,中间处残差为负。这说明了什么?工程师该怎么做?

解答

高 R2R^2 只能说明直线很好地跟随了总体趋势,并不能证明关系是线性的。这种系统性的U形残差模式,正是上面诊断表中"弯曲模式"的标志:它意味着读数与压力之间的真实关系存在直线未能捕捉到的弯曲——传感器很可能确实存在二次(或其他非线性)响应。

由于这种模式是系统性的而非随机的,在相同压力下再收集更多数据也无法解决问题——出问题的是模型本身设定错误,而不只是噪声。残差既(因具有明显模式而)有信息量,数值上又(因给出高 R2R^2 而)偏小,这说明在以精度为核心目标的校准应用中,仅依赖 R2R^2 是一个错误。

解决办法是更换模型,而不仅仅是重新拟合直线:加入二次项(拟合 reading=β0+β1⋅pressure+β2⋅pressure2\text{reading}=\beta_0+\beta_1\cdot\text{pressure}+\beta_2\cdot\text{pressure}^2),或对传感器响应应用某种已知的物理变换,然后再检查新的残差图是否呈现无结构的噪声,之后才能信任这次校准。

某数据集有 Sxy=50S_{xy}=50,Sxx=25S_{xx}=25,求 β^1\hat\beta_1。

若某回归的 R2=0.81R^2=0.81,线性模型未能解释的 yy 变动比例是多少?

一张残差图呈现出随 xx 增大而变宽的明显喇叭形。这说明了什么?

某房地产模型拟合 price=β^0+β^1⋅sqft\text{price}=\hat\beta_0+\hat\beta_1\cdot\text{sqft}(价格单位为千美元),其中 β^0=20\hat\beta_0=20,β^1=0.15\hat\beta_1=0.15。对一栋1500平方英尺的房屋,该模型预测的价格是多少?