R glm и glmnet используют разные алгоритмы.
Я замечаю нетривиальные различия между оценочными коэффициентами, когда использую оба.
Меня интересует, когда одно является более точным, чем другое, и время, чтобы решить / точность компромисса.
В частности, я имею в виду случай, когда в glmnet-й задается значение lambda = 0, оно оценивает то же самое, что и glm.
r
generalized-linear-model
glmnet
Уилл Бошам
источник
источник
Ответы:
Glmnet для упругой регрессии сети. Это штрафует размер оценочных коэффициентов (через комбинацию штрафов L1 и L2). Он пытается объяснить как можно большую дисперсию данных в модели, сохраняя при этом малые коэффициенты модели. Я нашел эти слайды полезными, чтобы понять это.
Glm не использует штрафной термин.
Эффект, насколько я понимаю, в том, что с эластичной сеткой вы можете принять некоторое смещение в обмен на уменьшение дисперсии оценки. То, что лучше, должно зависеть от того, как вы определяете «лучшее» с точки зрения смещения и дисперсии. (Например, я знаю, что у glmnet есть преимущества, когда у вас много возможностей по сравнению с наблюдениями)
источник