【问题标题】:How does glmnet() handle with both penalized and unpenalized covariates?glmnet() 如何处理惩罚和未惩罚的协变量?
【发布时间】:2015-12-08 14:01:15
【问题描述】:

是否可以使用惩罚和未惩罚协变量创建套索模型?也就是说,我想用 Y ~ gamma * X + beta * Z 进行估计,其中 X 是 n*p 惩罚特征,Z 是 n*q 未惩罚的连续或因子变量协变量。

谢谢。

【问题讨论】:

    标签: glmnet lasso-regression


    【解决方案1】:

    在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,因为它们永远不会受到惩罚。

    【讨论】:

      猜你喜欢
      • 2017-05-27
      • 1970-01-01
      • 2016-01-12
      • 2021-06-13
      • 2019-07-10
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多