Что является более точным glm или glmnet?

10

R glm и glmnet используют разные алгоритмы.

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

Меня интересует, когда одно является более точным, чем другое, и время, чтобы решить / точность компромисса.

В частности, я имею в виду случай, когда в glmnet-й задается значение lambda = 0, оно оценивает то же самое, что и glm.

Уилл Бошам
источник
1
Вы спрашиваете о различиях в производительности и точности, когда лямбда = 0, где эти два теоретически должны быть идентичны. Я думаю, вы должны добавить это в свой вопрос.
smci

Ответы:

14

Glmnet для упругой регрессии сети. Это штрафует размер оценочных коэффициентов (через комбинацию штрафов L1 и L2). Он пытается объяснить как можно большую дисперсию данных в модели, сохраняя при этом малые коэффициенты модели. Я нашел эти слайды полезными, чтобы понять это.

Glm не использует штрафной термин.

Эффект, насколько я понимаю, в том, что с эластичной сеткой вы можете принять некоторое смещение в обмен на уменьшение дисперсии оценки. То, что лучше, должно зависеть от того, как вы определяете «лучшее» с точки зрения смещения и дисперсии. (Например, я знаю, что у glmnet есть преимущества, когда у вас много возможностей по сравнению с наблюдениями)

гипотезы
источник
ссылка, кажется, сломана
ndoogan
ссылка работает сейчас
smci
Ну, вы просто объясняете, что делает glmnet - но OP имел в виду ситуацию, когда вы устанавливаете lambda = 0 в glmnet, и в этом случае результат в принципе должен возвращать то же самое, что и (nonpenalized) glm (за исключением небольшого числа различия, связанные с методом подбора циклического координатного спуска, который используется в glmnet).
Том Wenseleers