我想在尝试通过,或解释这些系数图时,在某些简单情况下了解它们的外观会很有帮助。特别是,当您的模型设计矩阵不相关时,以及设计中存在相关性时,它们的外观。日志(λ )Σ 我| β 我|λ日志(λ )∑一世| β一世|
为此,我创建了一些相关和不相关的数据来演示:
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处输入某物,但其路径本身是无法感知的,您只能通过其对
cyl
和wt
参数的影响来检测到它。
cyl
非常令人着迷。它进入第二,因此对于小型模型很重要。在其他变量(尤其是am
进入变量)之后,它不再那么重要了,其趋势发生了逆转,最终几乎消失了。似乎cyl
可以通过在过程结束时输入的变量完全捕获的影响。使用cyl
还是更合适的变量组,实际上取决于偏差方差的权衡。在最终模型中包含该组将显着增加其方差,但可能是较低的偏差弥补了这一点!
这只是我如何学习从这些地块中读取信息的简短介绍。我认为他们很有趣!
感谢您的出色分析。简单来说,wt,am和cyl是mpg的3个最重要的预测指标。另外,如果要创建预测模型,则将基于该数字包括哪些模型:wt,am和cyl?或其他组合。同样,您似乎不需要最佳的λ进行分析。它不像在岭回归中重要吗?
我想说的情况下wt
,并am
有明确的,他们是非常重要的。 cyl
更加微妙,在小型模型中很重要,但在大型模型中根本不相关。
我将无法仅根据该图来确定要包括的内容,这实际上必须根据您正在做的事情来回答。可以说,如果你想要一个三个预测模型,然后wt
,am
并且cyl
都是不错的选择,因为它们是在事物的宏伟计划相关的,应该结束了在一个小模型有合理的影响大小。这是基于以下假设:您有一些外部原因想要一个小的三预测变量模型。
的确,此类分析可以查看整个lambda范围,并让您了解各种模型复杂性之间的关系。也就是说,对于最终模型,我认为调整最佳Lambda非常重要。在没有其他约束的情况下,我肯定会使用交叉验证来找出最可预测的lambda在此范围内的位置,然后将该lambda用于最终模型和最终分析。
λ
在另一个方向上,有时对模型的复杂性会有外部约束(实施成本,遗留系统,解释性极简主义,业务可解释性,美学遗产),这种检查可以真正帮助您理解数据的形状,并且通过选择小于最佳模型来进行权衡。
-1
在glmnet(as.matrix(mtcars[-1]), mtcars[,1])
。