前言
在多元线性回归中曾经提到,经典线性回归模型的估计结果:
\begin{equation} \boldsymbol{\hat{\beta}}=\left(\boldsymbol{X'}\boldsymbol{X}\right)^{-1}\boldsymbol{X'}\boldsymbol{Y} \end{equation}
上述估计量的方差为:
\begin{equation} \begin{aligned} \operatorname{Var}(\hat{\beta})&=\operatorname{Var}\left(\left(\boldsymbol{X'}\boldsymbol{X}\right)^{-1}\boldsymbol{X'}\boldsymbol{Y}\right)\\ &=\left(\left(\boldsymbol{X'}\boldsymbol{X}\right)^{-1}\boldsymbol{X'}\right)^T\operatorname{Var}(Y)\left(\boldsymbol{X'}\boldsymbol{X}\right)^{-1}\boldsymbol{X'}\\ &=\left(\boldsymbol{X'}\boldsymbol{X}\right)^{-1}\sigma^2 \end{aligned} \end{equation}
其中为随机误差项的残差(最后一步的证明用到了随机扰动项同方差不相关的假设),这也就是说当模型的解释变量之间存在多重共线的情况时,即使的逆存在,模型参数的估计的方差也会因为的存在而变得很大,进而导致模型的预测能力下降
完全多重共线情况下,模型的的估计结果会直接不存在
岭回归就是为了解决上述存在的问题而提出的一种很直观的方法——直接从的逆的存在性入手,通过引入对的逆进行调整,将原估计结果变为:
\begin{equation} \boldsymbol{\hat{\beta}}=\left(\boldsymbol{X'}\boldsymbol{X}+\lambda \operatorname{I}\right)^{-1}\boldsymbol{X'}\boldsymbol{Y} \end{equation}
模型
在经典线性模型的估计中,若使用最小二乘估计则可以把模型看为一个简单的优化问题,即:
\begin{equation} \begin{aligned} \hat{\beta}&=\operatorname{argmin} \left||Y-\beta^T X\right||_2^2\\ &s.t. ||\beta||_2=1 \end{aligned} \end{equation}
假定上述优化问题的解是,可以通过线性变换证明岭回归的估计结果为下述规划问题的解:
\begin{equation} \begin{aligned} \hat{\beta}^{Ridge}&=\operatorname{argmin}\, ||Y-\beta^T X||_2^2+\lambda\sum_{\boldsymbol{i}=\boldsymbol{1}}^p \beta_i^2\\ &s.t. ||\beta||_2=1 \end{aligned} \end{equation}
上述约束问题等价如下的对偶问题(目标函数是凸函数):
\begin{equation} \begin{aligned} \hat{\beta}^{Ridge}&=\operatorname{argmin}\,||Y-\beta^T X||_2^2\\ &s.t. \sum_{\boldsymbol{i}=\boldsymbol{1}}^p \beta_i^2<t \end{aligned} \end{equation}
其中和都是一个用来调整估计结果的一个超参数,一般情况下,越大,越小,模型估计得到的系数会越小,估计的误差会越大(可通过SVD进一步说明)。
- 从式(6)不难看出,t越小,优化问题的可行域相较于OLS问题就越小,因此岭回归方法本质上是一种对参数估计结果的压缩方法(Shrinkage method),需要注意的是岭回归方法虽然会对参数进行压缩,但是并不能将参数压缩为0。
对样本矩阵作PCA分解,岭回归对方差小的主成分压缩程度更大,主要避免的就是在方差小的主成分上的潜在高方差变量的问题, Ridge regression protects against the potentially high variance of gradients estimated in the short directions(esl)
- 从式5来看,岭回归方法的估计结果对于输入的标度变化是敏感的,所以一般在岭回归前应先做标准化
- 从式5来看,模型并未引入的平方项,主要是为了防止模型的估计结果受到的影响,一般会对样本阵作中心化处理消除截距项。
The ridge solutions are not equivariant under scaling of the inputs, and so one normally standardizes the inputs before solving(esl).
除此以外,从偏差方差分解的角度来看,岭回归方法是一种舍弃偏差降低方差的一种方法,与最小二乘估计结果相比:
- 岭回归估计得到的结果是有偏的,OLS估计结果是无偏的
- 岭回归的估计结果方差比OLS估计的方差更小(OLS估计是无偏估计里方差最小的)
在考虑估计方差的情况下,无偏估计未必就是最好的。
正则化
从机器学习的视角来看,岭回归模型可以看成是线性回归模型平方损失策略下的l2正则化方法,关于正则化的介绍具体可以看文章Regularization。
超参数选择
岭回归的模型中含有需要提前设置好的超参数——或者,一般来说选择该超参数的方法有两种:
- 传统的交叉验证法
- 信息准则法,借助AIC和BIC准则对超参数进行选择,BIC方法更多用于Lasso回归(BIC对变量个数的惩罚力度更大),这里注意模型的自由度问题,因为模型对参数做了收缩,所以其自由度不是像线性回归模型一样为
在拿到一个数据集之后,我们一般会将数据集按一定比例随机拆分为训练集和测试集用于模型的训练与拟合效果的评估,同时再将训练集按一定比例拆分出验证集,用于模型的超参数选择。简单来说,数据集主要用来训练模型,验证集主要用来选择模型的超参数,测试集主要用来评估模型的预测能力。
交叉验证法是将数据集分为k份,以k-1份为训练集(如果有验证集,则这里需按照一定比例将训练集拆出一部分作为验证集),1份为测试集,重复对模型训练k次,并取训练结果中模型参数的平均值作为模型参数的最优值。以Ridge为例,三个数据集在这个过程中的使用如下:
- 训练集:用于训练模型,即在训练集上获得模型的参数
- 验证集:对模型的超参数()进行选择,对所有可能的,在训练集上使用给定的训练模型,然后在验证集上计算模型的预测误差,选择预测误差最小的作为模型的超参数
- 测试集:用于评估模型的预测能力,将最优的超参数代入模型,使用训练集训练模型,然后在测试集上计算模型的预测误差,作为模型的拟合程度
一般按照75%:15%:10%的比例将数据集拆分为训练集、验证集和测试集
最后,由于有些模型对数据集的量纲比较敏感,需要对数据集做标准化处理,对于交叉验证法,数据集的处理如下:
\begin{align} X_{train}'=\frac{X_{train}-Mean_{train}}{\sigma_{train}}\\ X_{val}'=\frac{X_{val}-Mean_{train}}{\sigma_{train}}\\ X_{test}'=\frac{X_{test}-Mean_{train}}{\sigma_{train}} \end{align}
注意这里无论是训练集、测试集还是验证集,在作处理的时候都是与训练集的均值作差然后除以训练集的标准差,本质上来看其实是对训练集作标准化,验证集和测试集则依据训练集做了一个变换
最大后验估计
可以证明,当权重向量的先验分布为高斯分布且噪声服从高斯分布时,可通过最大后验导出岭回归方法
图片来源见视频白板推导