Как узнать, какие коэффициенты не равны 0 в cv.glmnet

Я сделал регрессию лассо с помощью пакета glm.net. Я выбрал лямбду с помощью перекрестной проверки и теперь имею информацию о том, что оптимальная модель имеет только 6 коэффициентов, которые не равны нулю.

Как я могу узнать, какие именно коэффициенты?


person Dima Ku    schedule 01.07.2018    source источник
comment
Не могли бы вы предоставить хотя бы код и, если возможно, образец данных или результат?   -  person Roman Luštrik    schedule 02.07.2018


Ответы (1)


Поскольку вы не предоставляете никаких образцов данных, вот минимальный пример:

  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, которое дает наименьшую ошибку 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
    
person Maurits Evers    schedule 01.07.2018