Как я могу заставить cv.glmnet не отбрасывать одну конкретную переменную?

Я выполняю регрессию с 67 наблюдениями и 32 переменными. Я делаю выбор переменных с помощью функции cv.glmnet из пакета glmnet. Есть одна переменная, которую я хочу вставить в модель. (Отбрасывается во время обычной процедуры.) Как я могу указать это условие в cv.glmnet?

Спасибо!

Мой код выглядит следующим образом:

glmntfit <- cv.glmnet(mydata[,-1], mydata[,1])
coef(glmntfit, s=glmntfit$lambda.1se)

И переменной, которую я хочу, является mydata [, 2].

Ответ 1

Это может быть достигнуто путем предоставления вектора penalty.factor, как описано в ?glmnet. Фактор штрафа 0 указывает, что "переменная всегда включена в модель", а 1 - по умолчанию.

glmntfit <- cv.glmnet(mydata[,-1], mydata[, 1], 
                      penalty.factor=c(0, rep(1, ncol(mydata) - 2)))