是否有可能使用惩罚和非惩罚协变量进行套索模型?也就是说,我希望使用Y ~ gamma * X + beta * Z
进行估算,其中X是n*p
惩罚特征,Z是n*q
未惩罚的连续或因子变量的协变量。
感谢。
答案 0 :(得分:0)
vignette在惩罚因素一节中明确说明。要确保某些变量不受惩罚,请将penalty.factor设置为0.您只需创建一个长度为ncol(X) + ncol(Z)
的向量,其中第一个ncol(X)
条目为1(或任何正非零数字)其他ncol(Z)
条目为0.例如:
set.seed(1234)
n = 100 # number of samples
px = 5 # number of x variables
pz = 5 # number of z variables
x <- matrix(rnorm(n*px), ncol = px)
z <- matrix(rnorm(n*pz), ncol = pz)
y <- x[,1] + x[,5] + 2*z[,1] + 3*rnorm(n) # generate response
penalty <- c(rep(1, px), rep(0, pz)) # penalty factor
plot(glmnet::glmnet(cbind(x,z), y, penalty.factor = penalty))
请注意,在解决方案路径图中,5个变量永远不会为0,因为它们永远不会受到惩罚。