R cv.glmnet岭回归lambda.min=lambda.1se?

R cv.glmnet岭回归lambda.min=lambda.1se?,r,lambda,regression,cross-validation,glmnet,R,Lambda,Regression,Cross Validation,Glmnet,我目前正在使用glmnet包在R中运行岭回归,但是,我最近遇到了一个新问题,希望在解释我的结果时得到一些帮助。我的数据可以在这里找到: 我的数据由26531x428观察矩阵x和26531x1响应向量y组成。我正在尝试确定lambda.min的最佳值,以及运行代码的时间 >lambda=cv.glmnet(x=x,y=y,weights=weights,alpha=0,nfolds=10,standarized=FALSE) 我明白了 $lambda.min [1] 2.123479 $lambd

我目前正在使用
glmnet
包在R中运行岭回归,但是,我最近遇到了一个新问题,希望在解释我的结果时得到一些帮助。我的数据可以在这里找到:

我的数据由26531x428观察矩阵
x
和26531x1响应向量
y
组成。我正在尝试确定
lambda.min
的最佳值,以及运行代码的时间

>lambda=cv.glmnet(x=x,y=y,weights=weights,alpha=0,nfolds=10,standarized=FALSE)

我明白了

$lambda.min
[1] 2.123479
$lambda.1se
[1] 619.0054

这是我所期望的结果。然而,我想对这种回归做一点小小的调整。我事先知道我的428个系数中的每一个,我不想像岭回归那样将每个系数收缩到0,而是希望将每个系数收缩到0以外的特定值。与
glmnet
的创建者之一特雷弗·黑斯蒂博士联系后,他告诉我,用
y2
替换
y
后运行相同的代码可以实现这一点,其中
y2=y-x%*%d
d
是系数先验的428x1向量。他说,然后将
d
添加到我的新系数中,这将给我事先知道的系数。在重新运行代码之后

>lambda=cv.glmnet(x=x,y=y2,weights=weights,alpha=0,nfolds=10,standarized=FALSE)

不幸的是,我

$lambda.min
[1] 220.3026
$lambda.1se
[1] 220.3026

plot(lambda)
的结果如下所示


有人知道为什么
glmnet
找不到合适的
lambda.min
?可能是因为我的先验向量包含的估计值太远了吗?任何帮助都将不胜感激

这是一个有趣的问题,但我认为它更适合接受统计建议;我已经投票决定将ot改为实际上,刚才注意到你能提供你的数据(包括先验系数)以便我重现这个问题吗?@tguzella文件可以在这里下载,让我知道这对你是否有效这是一个有趣的问题,但我认为它更适合接受统计建议;我已经投票决定将ot改为实际上,刚才注意到你能提供你的数据(包括先验系数)让我重现这个问题吗?@tguzella文件可以在这里下载,让我知道这是否适合你