3.2(下) 最小二乘法

这是一篇有关《统计学习基础》,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放在自己的个人网站上,翻译质量非常高,本博客中有关翻译的内容都是出自该学者的网页,个人解读部分才是自己经过查阅资料和其他学者的学习笔记,结合个人理解总结成的原创内容。

原文 The Elements of Statistical Learning
翻译 szcf-weiya
时间 2018-08-21
解读 Hytn Chen
更新 2020-02-12

翻译原文

从简单单变量回归到多重回归

p>1p > 1 个输入的线性模型 (3.1) 称作 多重线性回归模型.用单 (p=1p=1) 变量线性模型的估计能更好理解模型 (3.6)(3.6) 的最小二乘估计,我们将在这节中指出.

首先假设我们有一个没有截距的单变量模型,也就是

Y=Xβ+ε(3.23) Y=X\beta + \varepsilon \tag{3.23}

最小二乘估计和残差为

β^=1Nxiyi1Nxi2ri=yixiβ^(3.24) \begin{aligned} \hat{\beta}&=\dfrac{\sum_1^Nx_iy_i}{\sum_1^Nx_i^2}\\ r_i &= y_i -x_i\hat{\beta} \end{aligned} \tag{3.24}

为了简便用向量表示,我们令 y=(y1,,yN)T\mathbf{y}=(y_1,\ldots,y_N)^Tx=(x1,,xN)T\mathbf{x}=(x_1,\ldots,x_N)^T,并且定义
x,y=i=1Nxiyi=xTy(3.25) \begin{aligned} \langle\mathbf{x},\mathbf{y}\rangle &= \sum\limits_{i=1}^Nx_iy_i\\ &=\mathbf{x^Ty}\tag{3.25} \end{aligned}

x\mathbf{x}y\mathbf{y} 之间的内积,于是我们可以写成

β^=x,yx,xr=yxβ^(3.26) \begin{aligned} \hat{\beta}&=\dfrac{\langle \mathbf{x,y}\rangle}{\langle\mathbf{x,x} \rangle}\\ \mathbf{r}&=\mathbf{y}-\mathbf{x}\hat{\beta} \end{aligned} \tag{3.26}

!!! note “weiya 注:原书脚注”
The inner-product notation is suggestive of generalizations of linear regression to different metric spaces, as well as to probability spaces. 内积表示是线性回归模型一般化到不同度量空间(包括概率空间)建议的方式.

正如我们所看到的,这个简单的单变量回归提供了多重线性回归的框架 (building block).进一步假设输入变量 x1,x2,,xp\mathbf{x}_1,\mathbf{x_2,\ldots,x_p}(数据矩阵 X\mathbf{X} 的列)是正交的;也就是对于所有的 jkj\neq kxj,xk=0\langle \rm{x}_j,\rm{x}_k\rangle=0.于是很容易得到多重最小二乘估计 β^j\hat{\beta}_j 等于 xj,y/xj,xj\langle \mathbf{x}_j,\mathbf{y}\rangle/\langle\mathbf{x}_j,\mathbf{x}_j\rangle ——单变量估计.换句话说,当输入变量为正交的,它们对模型中其它的参数估计没有影响

正交输入变量经常发生于平衡的、设定好的实验(强制了正交),但是对于实验数据几乎不会发生.因此为了后面实施这一想法我们将要对它们进行正交化.进一步假设我们有一个截距和单输入 x\bf{x}.则 x\bf{x} 的最小二乘系数有如下形式

β^1=xxˉ1,yxxˉ1,xxˉ1(3.27) \hat{\beta}_1=\dfrac{\langle \mathbf{x}-\bar{x}\mathbf{1},\mathbf{y}\rangle}{\langle \mathbf{x}-\bar{x}\mathbf{1},\mathbf{x}-\bar{x}\mathbf{1}\rangle}\tag{3.27}

其中,xˉ=ixi/N\bar{x}=\sum_ix_i/N,且 NN 维单位向量 1=x0\mathbf{1}=x_0.我们可以将式 (3.27)(3.27) 的估计看成简单回归 (3.26)(3.26) 的两次应用.这两步是:

  1. 1\bf{1} 上回归 x\bf{x} 产生残差 z=xxˉ1\mathbf{z}=\mathbf{x}-\bar{x}\mathbf{1};
  2. 在残差 z\bf{z} 上回归 y\bf{y} 得到系数 β^1\hat{\beta}_1
    在这个过程中,“在 a\bf{a} 上回归 b\bf{b}”意思是 b\bf{b}a\bf{a} 上的无截距的简单单变量回归,产生系数 γ^=a,b/a,a\hat{\gamma}=\langle\mathbf{a,b}\rangle/\langle\mathbf{a,a}\rangle 以及残差向量 bγ^a\mathbf{b}-\hat{\gamma}\mathbf{a}.我们称 b\bf{b}a\bf{a} 校正(adjusted),或者关于 a\bf{a} 正交化.

第一步对 x\mathbf{x} 作关于 x0=1\mathbf{x}_0=\mathbf{1} 的正交化.第二步是一个利用正交预测变量 1\mathbf{1}z\mathbf{z} 简单的单变量回归.图 3.4 展示了两个一般输入 x1\mathbf{x}_1x2\mathbf{x}_2 的过程.正交化不会改变由 x1\mathbf{x}_1x2\mathbf{x}_2 张成的子空间,它简单地产生一个正交基来表示子空间

ESL3.2(下)最小二乘法学习笔记(含施密特正交化,QR分解)

正交输入的最小二乘回归.向量 x2\mathbf{x}_2 在向量 x1\mathbf{x}_1 上回归,得到残差向量 z\mathbf{z}y\mathbf{y}z\mathbf{z} 上的回归给出 x2\mathbf{x}_2 的系数.把 y\mathbf{y}x1\mathbf{x}_1z\mathbf{z} 上的投影加起来给出了最小二乘拟合 y^\mathbf{\hat{y}}

这个方法可以推广到 pp 个输入的情形,如算法 3.1 所示.注意到第二步的输入 z_0,,zj1\mathbf{z}\_0,\ldots,\mathbf{z}_{j-1} 是正交的,因此这里计算得到的简单回归的系数实际上是多重回归的系数.

ESL3.2(下)最小二乘法学习笔记(含施密特正交化,QR分解)


算法 3.1 依次正交的回归(施密特正交化)

  1. 初始化 z0=x0=1\mathbf{z}_0=\mathbf{x}_0=\mathbf{1}
  2. 对于 j=1,2,,pj=1,2,\ldots,p
    z0,z1,,zj1\mathbf{z}_0,\mathbf{z}_1,\ldots,\mathbf{z}_{j-1}上对xj\mathbf{x}_j回归得到系数γ^j=z,xj/z,z,=0,,j1\hat{\gamma}_{\ell j}=\langle \mathbf{z}_{\ell},\mathbf{x}_j \rangle/\langle\mathbf{z}_{\ell},\mathbf{z}_{\ell}\rangle,\ell=0,\ldots,j-1以及残差向量zj=xjk=0j1γ^kjzk\mathbf{z}_j=\mathbf{x}_j-\sum_{k=0}^{j-1}\hat{\gamma}_{kj}\mathbf{z}_k
  3. 在残差zp\mathbf{z}_p上回归y\mathbf{y}得到系数β^p\hat{\beta}_p

(Hytn注:一步步取有用的那个向量,就是和前面向量都正交的那个分向量)

算法的结果为

β^p=zp,yzp,zp(3.28) \hat{\beta}_p=\dfrac{\langle \mathbf{z}_p,\mathbf{y} \rangle}{\langle \mathbf{z}_p,\mathbf{z}_p \rangle}\tag{3.28}

对第二步中的残差进行重排列,我们可以看到每个 xj\mathbf x_jzk,kj\mathbf z_k,k\le j 的线性组合.因为 zj\mathbf z_j 是正交的,它们形成了 X\mathbf{X} 列空间的基,从而得到最小二乘在该子空间上投影为 y^\hat{\mathbf{y}}.因为 zp\mathbf z_p仅与 xp\mathbf x_p 有关(系数为 1),则式 (3.28)(3.28) 确实是 y\mathbf{y}xp\mathbf x_p 上多重回归的系数.

这一重要结果揭示了在多重回归中输入变量相关性的影响.注意到通过对 xj\mathbf x_j 重排列,其中的任何一个都有可能成为最后一个,然后得到一个类似的结果.因此一般来说,我们已经展示了多重回归的第 jj 个系数是 y\mathbf{y}xj012...(j1)(j+1)...,p\mathbf x_{j\cdot 012...(j-1)(j+1)...,p} 的单变量回归,xj012...(j1)(j+1)...,p\mathbf x_{j\cdot 012...(j-1)(j+1)...,p}xj\mathbf x_jx0,x1,...,xj1,j+1,...,xp\mathbf x_0,\mathbf x_1,...,\mathbf x_{j-1},\mathbf{j+1},...,\mathbf{x}_p 回归后的残差向量:

多重回归系数 β^j\hat\beta_j 表示 xj\mathbf x_j 经过 x0,x1,,xj1,xj+1,,xp\mathbf x_0,\mathbf x_1,\ldots,\mathbf x_{j-1},\mathbf x_{j+1},\ldots,\mathbf x_p 调整后 xj\mathbf x_jy\mathbf y 额外的贡献

如果 xp\mathbf{x}_p 与某些 xk\mathbf{x}_k 高度相关,残差向量 zp\mathbf{z}_p 会近似等于 0,而且由(3.28)(3.28)得到的系数 β^p\hat{\beta}_p 会非常不稳定.对于相关变量集中所有的变量都是正确的.在这些情形下我们可能得到所有的 Z 分数(如表 3.2 所示)都很小——相关变量集中的任何一个变量都可以删掉——然而我们不可能删掉所有的变量.由 (3.28)(3.28) 我们也得到估计方差 (3.28)(3.28) 的另一种方法
Var(β^p)=σ2zp,zp=σ2zp2(3.29) \rm{Var}(\hat{\beta}_p)=\dfrac{\sigma^2}{\langle \mathbf{z}_p,\mathbf{z}_p \rangle}=\dfrac{\sigma^2}{\Vert\mathbf{z}_p\Vert ^2}\tag{3.29}

换句话说,我们估计 β^p\hat{\beta}_p精度取决于残差向量 zp\mathbf{z}_p 的长度;它表示 xp\mathbf{x}_p 不能被其他 xk\mathbf{x}_k 解释的程度

算法 3.1 被称作多重回归的 Gram-Schmidt 正交化,也是一个计算估计的有用的数值策略.我们从中不仅可以得到 β^p\hat{\beta}_p,而且可以得到整个多重最小二乘拟合,如练习 3.4 所示.

!!! info “weiya 注:Ex. 3.4”
已解决,详见 Issue 72: Ex. 3.4

我们可以用矩阵形式来表示算法 3.1 的第二步:

X=ZΓ(3.30) \mathbf{X=Z\Gamma}\tag{3.30}

其中 Z\mathbf{Z}zj\mathbf{z_j}(按顺序)作为列向量的矩阵,Γ\mathbf{\Gamma} 是值为 γ^kj\hat\gamma_{kj} 的上三角矩阵.引入第 jj 个对角元 Djj=zjD_{jj}=\Vert \mathbf{z}_j \Vert 的对角矩阵 D\mathbf{D},我们有
X=ZD1DΓ=QR(3.31) \begin{aligned} \mathbf{X}&=\mathbf{ZD^{-1}D\Gamma}\\ &=\mathbf{QR}\tag{3.31} \end{aligned}

称为矩阵 X\mathbf{X} 的 QR 分解.这里 Q\mathbf{Q}N×(p+1)N\times (p+1) 正交矩阵,QTQ=I\mathbf{Q^TQ=I},并且 R\mathbf{R}(p+1)×(p+1)(p+1)\times (p+1) 上三角矩阵.

QR\mathbf{QR} 分解表示了 X\mathbf{X} 列空间的一组方便的正交基.举个例子,很容易可以看到,最小二乘的解由下式给出
β^=R1QTyy^=QQTy(3.33) \begin{aligned} \hat{\beta}&=\mathbf{R^{-1}Q^Ty} \\ \hat{\mathbf{y}}&=\mathbf{QQ^Ty}\tag{3.33} \end{aligned}

等式 (3.32) 很容易求解,因为 R\mathbf{R} 为上三角(练习 3.4

!!! info “weiya 注:Ex. 3.4”
已解决,详见 Issue 72: Ex. 3.4

个人解读

首先对于参数β^\hat \beta的估计源于下面式子的变形:
(XTX)1=(i=1Nxi2)1 and XTY=i=1Nxiyi \left(X^{T} X\right)^{-1}=\left(\sum_{i=1}^{N} x_{i}^{2}\right)^{-1} \quad \text { and } \quad X^{T} Y=\sum_{i=1}^{N} x_{i} y_{i}
结合前面章节一直提及的有关β^\hat \beta的表达式,很容易得出式(3.24)(3.24)

那么如何进一步分析该式,其细节的推导如下所示:
XTX=[x1Tx2TxpT][x1x2xp]=[x1Tx1x1Tx2x1Txpx2Tx1x2Tx2x2TxpxpTx1xpTx2xpTxp]=[x1Tx1000x2Tx2000xpTxp]=D \begin{aligned} X^{T} X &=\left[\begin{array}{c} {x_{1}^{T}} \\ {x_{2}^{T}} \\ {\vdots} \\ {x_{p}^{T}} \end{array}\right]\left[\begin{array}{llll} {x_{1}} & {x_{2}} & {\cdots} & {x_{p}} \end{array}\right]\\ &=\left[\begin{array}{cccc} {x_{1}^{T} x_{1}} & {x_{1}^{T} x_{2}} & {\cdots} & {x_{1}^{T} x_{p}} \\ {x_{2}^{T} x_{1}} & {x_{2}^{T} x_{2}} & {\cdots} & {x_{2}^{T} x_{p}} \\ {\vdots} & {\vdots} & {\cdots} & {\vdots} \\ {x_{p}^{T} x_{1}} & {x_{p}^{T} x_{2}} & {\cdots} & {x_{p}^{T} x_{p}} \end{array}\right]\\ &=\left[\begin{array}{cccc} {x_{1}^{T} x_{1}} & {0} & {\cdots} & {0} \\ {0} & {x_{2}^{T} x_{2}} & {\cdots} & {0} \\ {\vdots} & {\vdots} & {\cdots} & {\vdots} \\ {0} & {0} & {\cdots} & {x_{p}^{T} x_{p}} \end{array}\right]=D \end{aligned}
那么β^\hat \beta的估计值就是:
β^=D1(XTY)=D1[x1Tyx2TyxpTy]=[x1Tyx1Tx1x2Tyx2Tx2xpTyxpTxp] \begin{aligned} \hat{\beta}&=D^{-1}\left(X^{T} Y\right)\\ &=D^{-1}\left[\begin{array}{c} {x_{1}^{T} y} \\ {x_{2}^{T} y} \\ {\vdots} \\ {x_{p}^{T} y} \end{array}\right]=\left[\begin{array}{c} {\frac{x_{1}^{T} y}{x_{1}^{T} x_{1}}} \\ {\frac{x_{2}^{T} y}{x_{2}^{T} x_{2}}} \\ {\vdots} \\ {\frac{x_{p}^{T} y}{x_{p}^{T} x_{p}}} \end{array}\right] \end{aligned}
之后的文字看似复杂,其实总结起来做的事情就是:如何把yy直接回归到X\rm{X}张成的空间上去?直接进行最小二乘回归可以,如果X\rm{X}线性无关但不正交(两者区别要明确,举例就是分别在平行两个平面里的两条直线,线性无关但不一定正交),那么每一组X\rm{X}则有可能互相影响彼此项的系数。这时候就对X\rm{X}张成的空间提取出该空间的正交基,就是所有基向量。如何实现这样的提取呢?就是采用施密特正交化。图3.4例举了yy如何通过正交化之后的向量投影到二维空间上,多维也是如此思想。

施密特正交有助于帮助我们这样来估计函数值:
f^(x)=i=0pβ^i(ziTx) \hat{f}(\mathbf{x})=\sum_{i=0}^{p} \hat{\beta}_{i}\left(\mathbf{z}_{i}^{T} \mathbf{x}\right)
最终方差的计算式推导过程为
Var(β^p)=Var(zpTyzp,zp)=zpTVar(y)zpzp,zp2=zpT(σ2I)zpzp,zp2=σ2zp,zp \begin{aligned} \operatorname{Var}\left(\hat{\beta}_{p}\right) &=\operatorname{Var}\left(\frac{z_{p}^{T} y}{\left\langle z_{p}, z_{p}\right\rangle}\right)=\frac{z_{p}^{T} \operatorname{Var}(y) z_{p}}{\left\langle z_{p}, z_{p}\right\rangle^{2}}=\frac{z_{p}^{T}\left(\sigma^{2} I\right) z_{p}}{\left\langle z_{p}, z_{p}\right\rangle^{2}} \\ &=\frac{\sigma^{2}}{\left\langle z_{p}, z_{p}\right\rangle} \end{aligned}
对于QR分解部分还有第二种解读,首先需要明确施密特正交化的原理。对可逆矩阵A的列向量组α1,α2,αn\alpha_{1}, \alpha_{2}, \ldots \alpha_{n}进行施密特正交化,最终标准正交向量的值是这样的:
ε1=β1β1=t11α1ε2=β2β2=t12α1+t22α2εj=βjβj=t1jα1+t2jα2++tj1,jαj1+tj,jαj \begin{aligned} \varepsilon_{1} &=\frac{\beta_{1}}{\left\|\beta_{1}\right\|}=t_{11} \alpha_{1} \\ \varepsilon_{2} &=\frac{\beta_{2}}{\left\|\beta_{2}\right\|}=t_{12} \alpha_{1}+t_{22} \alpha_{2} \\ & \vdots \\ \varepsilon_{j} &=\frac{\beta_{j}}{\left\|\beta_{j}\right\|}=t_{1 j} \alpha_{1}+t_{2 j} \alpha_{2}+\ldots+t_{j-1, j} \alpha_{j-1}+t_{j, j} \alpha_{j} \end{aligned}
用矩阵的形式表达就是:
(ε1,ε2,,εj)=(α1,α2,αn)[t11t1ntnn] \left(\varepsilon_{1}, \varepsilon_{2}, \ldots, \varepsilon_{j}\right)=\left(\alpha_{1}, \alpha_{2}, \ldots \alpha_{n}\right)\left[\begin{array}{ccc} {t_{11}} & {\cdots} & {t_{1 n}} \\ {} & {\ddots} & {\vdots} \\ {} & {} & {t_{nn}} \end{array}\right]

A=(α1,α2,αn),Q=(ε1,ε2,,εj) A=\left(\alpha_{1}, \alpha_{2}, \ldots \alpha_{n}\right), Q=\left({\varepsilon_{1}}, \varepsilon_{2}, \ldots, \varepsilon_{j}\right)
再记R=T1R=T^{-1},即可得出结果A=QRA=QR,这里TT的逆矩阵仍然是上三角阵。这里需要注意书中的逻辑是用减号,这里的QQ得是标准正交基,因此书中采用DD来给QQ进行标准化。

求解得到QQRR之后,再推导最小二乘的系数和预测值的过程就比较简单,具体如下:
β^=(XTX)1XTy=(RTQTQR)1RTQTy=(RTR)1RTQTy=R1RTRTQTy=R1QTy \begin{aligned} \hat{\beta} &=\left(X^{T} X\right)^{-1} X^{T} \mathbf{y} \\ &=\left(R^{T} Q^{T} Q R\right)^{-1} R^{T} Q^{T} \mathbf{y} \\ &=\left(R^{T} R\right)^{-1} R^{T} Q^{T} \mathbf{y} \\ &=R^{-1} R^{-T} R^{T} Q^{T} \mathbf{y} \\ &=R^{-1} Q^{T} \mathbf{y} \end{aligned}
以及
y^=Xβ^=QRR1QTy=QQTy \hat{\mathbf{y}}=X \hat{\beta}=Q R R^{-1} Q^{T} \mathbf{y}=Q Q^{T} \mathbf{y}
证毕。

多重输出

假设有多重输出 Y1,Y2,,YKY_1,Y_2,\ldots,Y_K,我们希望通过输入变量 X0,X1,X2,,XpX_0,X_1,X_2,\ldots,X_p 去预测.我们假设对于每一个输出变量有线性模型

Yk=β0k+j=1pXjβjk+εk=fk(X)+εk(3.35) \begin{aligned} Y_k&=\beta_{0k}+\sum\limits_{j=1}^pX_j\beta_{jk}+\varepsilon_k \\ &= f_k(X)+\varepsilon_k \tag{3.35} \end{aligned}

NN 个训练情形时我们可以将模型写成矩阵形式

Y=XB+E(3.36) \mathbf{Y=XB+E}\tag{3.36}

这里 Y\mathbf{Y}N×KN\times K 的响应矩阵,ikik 处值为 yiky_{ik}X\mathbf{X}N×(p+1)N\times (p+1) 的输入矩阵,B\mathbf{B}(p+1)×K(p+1)\times K 的系数矩阵 E\mathbf{E}N×KN\times K 的误差矩阵.单变量损失函数 \eqref{3.2} 的直接推广为
RSS(B)=k=1Ki=1N(yikfk(xi))2=tr[(YXB)T(YXB)](3.38) \begin{aligned} \rm{RSS}(\mathbf{B})&=\sum\limits_{k=1}^K\sum\limits_{i=1}^N(y_{ik}-f_k(x_i))^2\\ &= \rm{tr}[\mathbf{(Y-XB)^T(Y-XB)}]\tag{3.38} \end{aligned}

最小二乘估计有和前面一样的形式

B^=(XTX)1XTY(3.39) \mathbf{\hat{B}=(X^TX)^{-1}X^TY}\tag{3.39}

因此第 kk 个输出的系数恰恰是 yk\mathbf{y}_kx0,x1,,xp\mathbf{x}_0,\mathbf{x}_1,\ldots,\mathbf{x}_p 上回归的最小二乘估计.多重输出不影响其他的最小二乘估计

如果式 \eqref{3.34} 中的误差 ε=(ε1,,εK)\varepsilon = (\varepsilon_1,\ldots,\varepsilon_K) 相关,则似乎更恰当的方式是修正 \eqref{3.37} 来改成多重变量版本.特别地,假设 Cov(ε)=Σ\rm{Cov}(\varepsilon)=\Sigma,则 多重变量加权准则

RSS(B;Σ)=i=1N(yif(xi))TΣ1(yif(xi))(3.40) \rm{RSS}(\mathbf{B;\Sigma})=\sum\limits_{i=1}^N(y_i-f(x_i))^T\Sigma^{-1}(y_i-f(x_i))\tag{3.40}

这可以由 多变量高斯定理 自然得出.这里 f(x)f(x) 为向量函数 (f1(x),,fK(x))(f_1(x),\ldots,f_K(x)),而且 yiy_i 为观测值 iiKK 维响应向量.然而,可以证明解也是由式 \eqref{3.39} 给出;KK 个单独的回归忽略了相关性(练习 3.11).如果 Σi\Sigma_i 对于不同观测取值不同,则不再是这种情形,而且关于 B\mathbf{B} 的解不再退化 (decouple).

!!! info “weiya 注:Ex. 3.11”
已解决,详见 Issue 73: Ex. 3.11

在 3.7 节我们继续讨论多重输出的问题,并且考虑需要合并回归的情形.

相关文章:

  • 2021-07-25
  • 2022-01-03
  • 2021-07-30
  • 2021-07-12
  • 2021-12-11
  • 2021-04-08
  • 2022-02-09
  • 2021-11-25
猜你喜欢
  • 2021-06-21
  • 2022-02-02
  • 2022-02-19
  • 2021-09-17
  • 2022-01-11
  • 2021-11-21
相关资源
相似解决方案