如何解释岭回归图

机器算法验证 回归 多重共线性 岭回归
2022-04-04 00:47:03

以下是 MASS 包中的岭回归示例:

> head(longley)
        y     GNP Unemployed Armed.Forces Population Year Employed
1947 83.0 234.289      235.6        159.0    107.608 1947   60.323
1948 88.5 259.426      232.5        145.6    108.632 1948   61.122
1949 88.2 258.054      368.2        161.6    109.773 1949   60.171
1950 89.5 284.599      335.1        165.0    110.929 1950   61.187
1951 96.2 328.975      209.9        309.9    112.075 1951   63.221
1952 98.1 346.999      193.2        359.4    113.270 1952   63.639
> 
> mod = lm.ridge(y ~ ., longley,     lambda = seq(0,0.1,0.001))
> 
> plot(mod)

以下是剧情:

在此处输入图像描述

我如何解释它?我知道这些行是针对不同的自变量,但我想知道哪些自变量是上述数据集中 y 的重要预测因子(即我对解释感兴趣,而不是预测)。

我试图在互联网上阅读,但不明白如何进行。

编辑: 还有什么是 select(mod) 的输出:

> select(mod)
modified HKB estimator is 0.006836982 
modified L-W estimator is 0.05267247 
smallest value of GCV  at 0.006 
4个回答

我知道你说

我对解释而不是预测感兴趣

但这是一条充满危险的道路。不能很好地预测其响应的模型对解释没有用处。解释和预测不是独立的欲望,任何时候都应该在两个方向上相互补充和增强。

因此,如果您想从岭回归中得出一些解释,首先要找到最具预测性的模型。使用交叉验证或保留数据集来调整您的正则化参数,这个论坛上有很多关于如何做到这一点的绝妙建议。一旦你拥有了最具预测 ,请检查该模型的系数。如果您想要这些系数的置信区间,请在数据集上拟合您的固定模型,并根据经验估计参数的方差。λλλ

select(mod) 的输出是什么?

的文档ridgelm参差不齐,并没有说明 select 的作用,但您可以从以下方面获得一些线索:

GCV:GCV 值的向量

kHKB: 岭常数的 HKB 估计

kLW:脊常数的 LW 估计

所以看起来它正在提取这三个属性(以及第一个属性的最小值)并将它们包装在一个漂亮的显示中。我无法恢复它对最小 GCV 的值:

> min(mod$GCV) / nrow(longley)
[1] 0.007473027

所以这仍然是一个谜。

岭回归会惩罚您的系数,这样在您的估计中最不有效的系数将“缩小”最快。

想象一下,您分配了预算,并且每个系数都可以在估算中发挥作用。自然,那些更重要的人会占用更多的预算。当您增加 lambda 时,您正在减少预算,即惩罚更多。

对于您的绘图,每条线代表一个系数,当您减少预算或惩罚更多(增加 lambda)时,该系数的值将变为零。要选择最佳 lambda,您应该查阅 MSE 与 lambda 图。我会说,虽然系数收缩得越快,它在预测中的重要性就越低;例如,我认为虚线蓝色的应该比纯黑色的信息更多。尝试绘制摘要、图例和 MSE vs lambda。如果您选择最佳 lambda,然后查看您的 beta,您可以通过查看它们在最佳 lambda 处的值来了解哪些 beta 更重要。

最好检查一下?

http://www.mathworks.com/help/stats/ridge.html

有更好的图片和更多的例子......虽然我不知道你是否有Matlab......

编辑 - 命令执行

问题上的图和链接上的图像都显示了脊迹,在 x 轴上显示了 $k$ 正则化系数,在 y 轴上显示了估计的系数。k regularization coefficient on the x-axis, and the estimated coefficients on the y-axis.

作为参考,岭回归图是通过对线性回归 $b=AX$ 进行正则化来改进条件反射,通过放置一个岭(Tikhonov 正则化)矩阵 $K$: $$x_e=(A^TA+K^TK)^ {-1}A^Tb$$b=AX for improving conditioning, by placing a Ridge (Tikhonov Regularization) Matrix K:

xe=(ATA+KTK)1ATb

当 $K=kI$ 时,我们将矩阵选择简化为标量 $k^2I$,这在 Matlab 和 R 包中都完成。K=kI, we reduce the matrix selection to a scalar k2I, which is done in both Matlab and R packages.

对于相同的数据,我试图重现结果,但显然 R 不会对常数项进行正则化,而 Matlab 会这样做。或者R在骗你....

岭例二

关于这个问题,这些算法似乎都没有提供 p 值、t 检验或 MSE 轨迹,因此如果没有额外的代码,就无法立即进行系数评估......

需要注意的一件事是当系数过零时,如示例中的 Year 所做的那样。

如果您在没有正则化 $(\lambda = 0)$ 的情况下做出未来预测,那么随着时间的推移,您会出现负面趋势;然而,这是数据中多重共线性的产物。(λ=0), you have a negative trend over time; however, this is an artifact of multicollinearity in the data.

在没有太多正则化 $(\lambda > 0.005)$ 的情况下,效果会逆转,因此我们预计未来 $y$ 会增加,其他一切都相同。(λ>0.005), the effect reverses, so we would expect y to increase in the future, everything else being equal.