如何查看 cv.glmnet 中哪些系数不为 0

How to see which coefficients are not 0 in cv.glmnet

我使用 glm.net 包进行了套索回归。我通过交叉验证选择了我的 lambda,现在得到的信息是最优模型只有 6 个不为零的系数。

我怎样才能知道哪些系数是正确的?

由于您没有提供任何样本数据,这里是一个最小的例子:

  1. 生成一些示例数据

    set.seed(2017);
    x1 <- seq(1:100);
    x2 <- 2 * x1;
    y <- 3 * x1 + 6 * x2 + rnorm(100);
    
  2. 使用 CV 拟合模型

    fit <- cv.glmnet(cbind(x1, x2), y);
    
  3. 然后coef(fit)给出不同lambda值的参数估计值。我们可以提取 lambda 值的参数估计值,从而导致最小的 CV 误差

    coef(fit, s = "lambda.min")
    #3 x 1 sparse Matrix of class "dgCMatrix"
    #                       1
    #(Intercept) 2.439590e+01
    #x1          1.451704e+01
    #x2          5.723395e-16