如何强制cv.glmnet不丢弃一个特定的变量?

时间:2014-06-10 18:54:50

标签: r regression linear-regression glmnet

我正在使用67个观察和32个变量运行回归。我正在使用glmnet包中的cv.glmnet函数进行变量选择。我想强制一个变量进入模型。 (在正常过程中将其删除。)如何在cv.glmnet中指定此条件?

谢谢!

我的代码如下所示:

glmntfit <- cv.glmnet(mydata[,-1], mydata[,1])
coef(glmntfit, s=glmntfit$lambda.1se)

我想要的变量是mydata [,2]。

1 个答案:

答案 0 :(得分:17)

这可以通过提供penalty.factor向量来实现,如?glmnet中所述。惩罚因子0表示&#34;变量始终包含在模型&#34;中,而1是默认值。

glmntfit <- cv.glmnet(mydata[,-1], mydata[, 1], 
                      penalty.factor=c(0, rep(1, ncol(mydata) - 2)))