是否可以用惩罚和未惩罚的协变量做一个套索模型?也就是说,我想用 进行估计Y ~ gamma * X + beta * Z
,其中 X 是受n*p
惩罚的特征,Z 是n*q
未受惩罚的连续变量或因子变量的协变量。
谢谢。
是否可以用惩罚和未惩罚的协变量做一个套索模型?也就是说,我想用 进行估计Y ~ gamma * X + beta * Z
,其中 X 是受n*p
惩罚的特征,Z 是n*q
未受惩罚的连续变量或因子变量的协变量。
谢谢。
在名为Penalty Factors的小插图中明确说明了这一点。为确保某些变量不会受到惩罚,请将penalty.factor 设置为0。您只需创建一个长度向量,其中第一个条目为1(或任何正非零数),其他条目为0。例如:ncol(X) + ncol(Z)
ncol(X)
ncol(Z)
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,因为它们永远不会受到惩罚。