R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化

在本课程中,我们将考虑一些线性模型的替代拟合方法,除了通常的  普通最小二乘法

由Kaizong Ye,Liao Bao撰写

这些替代方法有时可以提供更好的预测准确性和模型可解释性

概述和定义

  • 预测精度:线性,普通最小二乘估计将具有低偏差。OLS也表现良好,  n  >>  p。但是,如果  n  不比p大很多  ,则拟合可能会有很多可变性,从而导致拟合过度和/或预测不佳。如果  p  >  n,则不再有唯一的最小二乘估计,并且根本无法使用该方法。

通过  限制  和  缩小  估计的系数,我们通常可以大大减少方差,因为偏差的增加可忽略不计,这通常会导致准确性的显着提高。

  • 模型的可解释性:不相关的变量导致结果模型不必要的复杂性。通过删除它们(设置系数= 0),我们得到了一个更容易解释的模型。但是,使用OLS使得系数极不可能为零。
    • 子集选择:我们使用子集特征的最小二乘拟合模型。

尽管我们讨论了这些技术在线性模型中的应用,但它们也适用于其他方法,例如分类。


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

详细方法

子集选择

最佳子集选择

在这里,我们为p个  预测变量的每种可能组合拟合单独的OLS回归  ,然后查看结果模型拟合。这种方法的问题在于,  最佳模型  隐藏在2 ^ p种  可能性之内。该算法分为两个阶段。(1)拟合所有包含k个预测变量的模型  ,其中  k  是模型的最大长度。(2)使用交叉验证的预测误差选择一个模型。下面将讨论更具体的预测误差方法,例如AIC和BIC。

这适用于其他类型的模型选择,例如逻辑回归,但我们根据选择选择的得分会有所变化。对于逻辑回归,我们将使用  偏差  而不是RSS和R ^ 2。

选择最佳模型

上面提到的三种算法中的每一种都需要我们手动确定哪种模型效果最好。如前所述,使用训练误差时,具有最多预测值的模型通常具有最小的RSS和最大的R ^ 2。为了选择测试  误差最大的模型  ,我们需要估计测试误差。有两种计算测试误差的方法。

  1.  通过对训练误差进行和调整来间接估计测试误差,以解决过度拟合的偏差。
  2.  使用验证集或交叉验证方法直接估计测试错误。

验证和交叉验证

通常,交叉验证技术是对测试的更直接估计,并且对基础模型的假设更少。此外,它可以用于更广泛的模型类型选择中。

岭回归

岭回归与最小二乘相似,不同之处在于系数是通过最小化略有不同的数量来估算的。像OLS一样,Ridge回归寻求降低RSS的系数估计,但是当系数接近于零时,它们也会产生收缩损失。这种损失的作用是将系数估计值缩小到零。参数λ控制收缩的影响。λ= 0的行为与OLS回归完全相同。当然,选择一个好的λ值至关重要,应该使用交叉验证进行选择。岭回归的要求是预测变量  X的  中心定为 mean = 0,因此必须事先对数据进行标准化。

为什么岭回归比最小二乘更好?

优势在偏差方差中显而易见  。随着λ的增加,脊回归拟合的灵活性降低。这导致方差减小,偏差增加较小。固定的OLS回归具有较高的方差,但没有偏差。但是,最低的测试MSE往往发生在方差和偏差之间的交点处。因此,通过适当地调整λ获取较少的方差,我们可以找到较低的潜在MSE。

在最小二乘估计具有高方差的情况下,岭回归最有效。Ridge回归比任何子集方法都具有更高的计算效率  ,因为可以同时求解所有λ值。

套索

岭回归具有至少一个缺点。它包括 最终模型中的所有  p个预测变量。惩罚项将使其中许多接近零,但永远不会  精确  为零。对于预测准确性而言,这通常不是问题,但会使模型更难以解释结果。Lasso克服了这个缺点,并且能够将s  足够小地强制将某些系数设为零  。由于  s  = 1导致常规的OLS回归,因此当  s  接近0时,系数将缩小为零。因此,套索回归也执行变量选择。

降维方法

到目前为止,我们所讨论的方法已经通过使用原始变量的子集或将其系数缩小到零来控制了方差。现在,我们探索一类模型, 这些模型可以  转换预测变量,然后使用转换后的变量拟合最小二乘模型。降维将估计  p  +1个系数的问题简化为M  +1个系数的简单问题  ,其中  M  <  p。这项任务的两种方法是  主成分回归  和  偏最小二乘

主成分回归(PCA)

可以将PCA描述为一种从大量变量中导出低维特征集的方法。

在回归中,我们构造  M个  主成分,然后在使用最小二乘的线性回归中将这些成分用作预测变量。通常,与普通最小二乘法相比,我们有可能拟合出更好的模型,因为我们可以减少过度拟合的影响。

偏最小二乘

我们上面描述的PCR方法涉及鉴定 最能代表预测变量的X的线性组合  。

PLS通过对与因变量最密切相关的变量赋予更高的权重来实现此目的。

实际上,PLS的性能不比岭回归或PCR好。这是因为即使PLS可以减少偏差,它也有可能增加方差,因此总体收益并没有真正的区别。

解释高维结果

我们必须始终谨慎对待报告获得的模型结果的方式,尤其是在高维设置中。在这种情况下,多重共线性问题非常严重,因为模型中的任何变量都可以写为模型中所有其他变量的线性组合。

范例

子集选择方法

最佳子集选择

我们希望根据上一年的各种统计数据来预测棒球运动员Salary 的情况  。

事实证明,大约有18%的数据丢失。我们将省略丢失的数据。

执行最佳子集选择,使用RSS进行量化。

星号表示变量包含在相应的模型中。

在这个19变量模型中,  R ^ 2单调增加。

我们可以使用内置的绘图功能来绘制RSS,adj R ^ 2,  C p,AIC和BIC。

注意:上面显示的拟合度是(除R ^ 2以外)所有测试误差的估计。

前进和后退逐步选择

我们可以在这里看到1-6个变量模型对于最佳子集  和  正向选择是相同的  。

岭回归和套索

开始交叉验证方法

我们还将在正则化方法中应用交叉验证方法。

验证集

R ^ 2  C p和BIC估计测试错误率,我们可以使用交叉验证方法。我们必须仅使用训练观察来执行模型拟合和变量选择的所有方面。然后通过将训练模型应用于测试或验证  数据来计算测试错误  。

k交叉验证

使用  k交叉验证选择最佳的lambda。

为了进行交叉验证,我们将数据分为测试和训练数据。

因此,薪水的平均误差约为33000。回归系数似乎并没有真正趋向于零,但这是因为我们首先对数据进行了标准化。

现在,我们应该检查一下这是否比常规lm() 模型更好  。

如我们所见,这种岭回归拟合当然具有较低的RMSE和较高的  R ^ 2。

套索

在套索中,我们看到许多系数已被强制为零。即使RMSE比脊线回归高一点,它也比线性回归模型具有简单的优势。

PCR和PLS

主成分回归

该算法将CV报告为RMSE,并将训练数据报告为R ^ 2。通过将MSE作图可以看出,我们实现了最低的MSE。这表明与最小二乘法相比有了很大的改进,因为我们能够仅使用3个分量而不是19个分量来解释大部分方差。

测试数据集上执行。

比套索/线性回归的RMSE低。

选择2个成分的最佳模型

但是,PCR结果不容易解释。

偏最小二乘

最好的  M  为2。评估相应的测试误差 。

与PCR相比,在这里我们可以看到RMSE有所改善。

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498