【发布时间】:2015-12-08 14:01:15
【问题描述】:
是否可以使用惩罚和未惩罚协变量创建套索模型?也就是说,我想用 Y ~ gamma * X + beta * Z 进行估计,其中 X 是 n*p 惩罚特征,Z 是 n*q 未惩罚的连续或因子变量协变量。
谢谢。
【问题讨论】:
是否可以使用惩罚和未惩罚协变量创建套索模型?也就是说,我想用 Y ~ gamma * X + beta * Z 进行估计,其中 X 是 n*p 惩罚特征,Z 是 n*q 未惩罚的连续或因子变量协变量。
谢谢。
【问题讨论】:
在vignette 的惩罚因素部分下明确说明了这一点。为确保某些变量不会受到惩罚,请将penalty.factor 设置为0。您只需要创建一个长度为ncol(X) + ncol(Z) 的向量,其中第一个ncol(X) 条目为1(或任何非零正数),另一个@ 987654326@ 条目为 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,因为它们永远不会受到惩罚。
【讨论】: