我正在使用67个观察和32个变量运行回归。我正在使用glmnet包中的cv.glmnet函数进行变量选择。我想强制一个变量进入模型。 (在正常过程中将其删除。)如何在cv.glmnet中指定此条件?
谢谢!
我的代码如下所示:
glmntfit <- cv.glmnet(mydata[,-1], mydata[,1])
coef(glmntfit, s=glmntfit$lambda.1se)
我想要的变量是mydata [,2]。
答案 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)))