从该套索图得出的结论(glmnet)


19

以下是使用mtcarsR中设置的数据mpg作为DV以及其他变量作为预测变量的具有默认alpha(1,因此为lasso)的glmnet的图。

glmnet(as.matrix(mtcars[-1]), mtcars[,1])

在此处输入图片说明

我们可以从这个图得出什么结论对于不同的变量,尤其是amcylwt(红色,黑色和淡蓝色线)?我们将如何用输出表达要发布的报告中的内容?

我想到了以下几点:

  1. wt是的最重要的预测指标mpg。它对产品产生负面影响mpg

  2. cyl是的弱否定指标mpg

  3. am可能是的积极预测指标mpg

  4. 其他变量不是的可靠预测指标mpg

感谢您对此的想法。

(注意:cyl是黑线,直到非常接近它才达到0。)

编辑:以下是plot(mod,xvar ='lambda'),它按与上图相反的顺序显示x轴:

在此处输入图片说明

(附言:如果您发现此问题有趣/重要,请对其进行投票;)


它看起来像你之前忘了一个逗号-1glmnet(as.matrix(mtcars[-1]), mtcars[,1])
理查德·哈迪

如果未使用逗号,则R会将数字假定为列号,因此可以使用。
rnso 2015年

很好,以前我没有。
理查德·哈迪

2
@RichardHardy要小心;对于数据帧和矩阵,此行为是不同的。数据帧是一个列表,并且每个列是列表的元素,所以my_data_frame[1]返回一个数据帧有一列,而my_data_frame[[1]]my_data_frame[, 1]这两个返回一个载体,其是 “包含”由数据帧。矩阵,但是,实际上是用一个特殊的属性,让R键访问他们像一个网格,所以只平向量my_matrix[1]my_matrix[1, 1]my_matrix[[1]]将全部返回第一个元素my_matrixmy_matrix[, 1]返回第一列。
Shadowtalker,2015年

2
我只是提到,plotmo包中的plot_glmnet函数提供了稍微更好的系数图,因为它可以处理标签过度绘制和其他一些细节。示例可以在第6章的小插图中找到
史蒂芬·米尔博罗

Answers:


39

我想在尝试通过,或解释这些系数图时,在某些简单情况下了解它们的外观会很有帮助。特别是,当您的模型设计矩阵不相关时,以及设计中存在相关性时,它们的外观。日志λ Σ | β |λ日志λ一世|β一世|

为此,我创建了一些相关和不相关的数据来演示:

x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]

sigma <- matrix(c(  1, -.5,   0,
                  -.5,   1, -.5,
                    0, -.5,   1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]

数据x_uncorr具有不相关的列

> round(cor(x_uncorr), 2)
     [,1]  [,2]  [,3]
[1,] 1.00  0.01  0.00
[2,] 0.01  1.00 -0.01
[3,] 0.00 -0.01  1.00

x_corr列之间具有预设的相关性

> round(cor(x_corr), 2)
      [,1]  [,2]  [,3]
[1,]  1.00 -0.49  0.00
[2,] -0.49  1.00 -0.51
[3,]  0.00 -0.51  1.00

现在,让我们看看这两种情况的套索图。首先是不相关的数据

gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)

在此处输入图片说明

几个功能脱颖而出

  • 预测变量按其真实线性回归系数的大小顺序进入模型。
  • 每个特征的系数路径是一条线(相对于)是分段线性的,并且仅当新的预测变量进入模型时才发生变化。这仅适用于关于,这是一个优于其他方式的好理由。i | β |一世|β一世|一世|β一世|
  • 当新的预测变量进入模型时,它将以确定性的方式影响模型中所有预测变量的系数路径的斜率。例如,当第二预测变量进入模型时,第一系数路径的斜率将减半。当第三个预测变量进入模型时,系数路径的斜率为其原始值的三分之一。

这些都是适用于套索回归且数据不相关的一般事实,都可以通过手工证明(良好的锻炼!),也可以在文献中找到。

现在让我们做相关的数据

gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)

在此处输入图片说明

通过将其与不相关的案例进行比较,您可以了解该图的一些信息

  • 第一和第二预测变量路径具有与不相关情况相同的结构,直到第三预测变量进入模型为止,即使它们是相关的。这是两个预测​​变量情况的一个特殊功能,如果有兴趣,我可以在另一个答案中进行解释,这会使我距离当前的讨论有点遥远。
  • 另一方面,一旦第三个预测变量进入模型,我们会发现如果所有三个特征都不相关,则可以从图片中看到偏差。第二个特征的系数变平,第三个特征的系数上升到最终值。请注意,第一个特征的斜率不受影响,如果没有相关性,我们将无法预期!从本质上讲,花在三个或三个以上的组中的系数上的资源可能会“交易”,直到分配最小的被发现。|β一世|

因此,现在让我们从汽车数据集中查看您的地块,并阅读一些有趣的内容(我在此处复制了您的地块,因此该讨论更易于阅读):

提个警告:我在以下假设的前提下进行了分析,即曲线显示了标准化系数,在本例中没有。非标准化系数不是无量纲的,也不是可比较的,因此就预测重要性而言,无法从中得出任何结论。为了使以下分析有效,请假装该图是标准化系数的,请对标准化系数路径进行自己的分析。

在此处输入图片说明

  • 正如您所说,wt预测变量似乎非常重要。它首先进入模型,并缓慢而稳定地下降到最终值。它确实具有一些相关性,使其行驶有些颠簸,am特别是当它进入时似乎产生了巨大的影响。
  • am也很重要 它稍后出现,并与关联wt,因为它wt以剧烈的方式影响的斜率。它也与carb和关联qsec,因为当坡度进入时我们看不到坡度的可预测的软化。在输入了这四个变量之后,我们确实看到了很好的不相关模式,因此它似乎与最后的所有预测变量都不相关。
  • 在x轴上约2.25处输入某物,但其路径本身是无法感知的,您只能通过其对cylwt参数的影响来检测到它。
  • cyl非常令人着迷。它进入第二,因此对于小型模型很重要。在其他变量(尤其是am进入变量)之后,它不再那么重要了,其趋势发生了逆转,最终几乎消失了。似乎cyl可以通过在过程结束时输入的变量完全捕获的影响。使用cyl还是更合适的变量组,实际上取决于偏差方差的权衡。在最终模型中包含该组将显着增加其方差,但可能是较低的偏差弥补了这一点!

这只是我如何学习从这些地块中读取信息的简短介绍。我认为他们很有趣!

感谢您的出色分析。简单来说,wt,am和cyl是mpg的3个最重要的预测指标。另外,如果要创建预测模型,则将基于该数字包括哪些模型:wt,am和cyl?或其他组合。同样,您似乎不需要最佳的λ进行分析。它不像在岭回归中重要吗?

我想说的情况下wt,并am有明确的,他们是非常重要的。 cyl更加微妙,在小型模型中很重要,但在大型模型中根本不相关。

我将无法仅根据该图来确定要包括的内容,这实际上必须根据您正在做的事情来回答。可以说,如果你想要一个三个预测模型,然后wtam并且cyl都是不错的选择,因为它们是在事物的宏伟计划相关的,应该结束了在一个小模型有合理的影响大小。这是基于以下假设:您有一些外部原因想要一个小的三预测变量模型。

的确,此类分析可以查看整个lambda范围,并让您了解各种模型复杂性之间的关系。也就是说,对于最终模型,我认为调整最佳Lambda非常重要。在没有其他约束的情况下,我肯定会使用交叉验证来找出最可预测的lambda在此范围内的位置,然后将该lambda用于最终模型和最终分析。

λ

在另一个方向上,有时对模型的复杂性会有外部约束(实施成本,遗留系统,解释性极简主义,业务可解释性,美学遗产),这种检查可以真正帮助您理解数据的形状,并且通过选择小于最佳模型来进行权衡。


感谢您的出色分析。简单来说,wt,am和cyl是mpg的3个最重要的预测指标。另外,如果要创建预测模型,则将基于该数字包括哪些模型:wt,am和cyl?或其他组合。同样,您似乎不需要最佳的λ进行分析。它不像在岭回归中重要吗?
rnso 2015年

@rnso我在回答后附加了回复。
马修·德鲁里

也许“遗产”应该是“简约”?
Hatshepsut

@Matthew Drury,我对此不太确定,我很感谢您的澄清,#您写了“例如,当第二个预测变量进入时”我如何从情节中知道第二个预测变量或第三个预测变量/输入变量。##我什么时候可以说这个预测变量很重要。###最后,我该如何选择适合这种情况的最佳模型。此外,图例/标签是否自动包含在内。(我已经在R中实现了此示例)
jeza

5
+6,当它出来时,我显然错过了它。真的很好。
gung-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.