Quel est glm ou glmnet plus précis?

10

R glm et glmnet utilisent des algorithmes différents.

Je remarque des différences non triviales entre les coefficients estimés lorsque j'utilise les deux.

Je m'intéresse au moment où l'un est plus précis qu'un autre, et au moment de résoudre le compromis / l'exactitude.

Plus précisément, je fais référence au cas où l'on définit lambda = 0 dans glmnet st, il estime la même chose que glm.

Will Beauchamp
la source
1
Vous vous interrogez sur les différences de performances et de précision lorsque lambda = 0, où les deux devraient théoriquement être identiques. Je pense que vous devriez ajouter cela à votre question.
smci

Réponses:

14

Glmnet est pour la régression nette élastique. Cela pénalise la taille des coefficients estimés (via un mix de pénalités L1 et L2). Il essaie d'expliquer autant de variance dans les données que possible à travers le modèle tout en gardant les coefficients du modèle petits. J'ai trouvé ces diapositives utiles pour le comprendre.

Glm n'utilise pas de terme de pénalité.

L'effet, si je comprends bien, avec un filet élastique, vous pouvez accepter un certain biais en échange d'une réduction de la variance de l'estimateur. Le meilleur choix dépend donc de la façon dont vous définissez le meilleur en termes de biais et de variance. (Par exemple, je sais que glmnet a des avantages lorsque vous avez de nombreuses fonctionnalités par rapport aux observations)

conjectures
la source
le lien semble rompu
ndoogan
le lien fonctionne maintenant
smci
Eh bien, vous expliquez simplement ce que fait glmnet - mais l'OP faisait référence à la situation lorsque vous définissez lambda = 0 dans glmnet, auquel cas le résultat devrait en principe retourner la même chose qu'un glm (non pénalisé) (à l'exception de quelques petits chiffres différences liées à la méthode d'ajustement de descente de coordonnées cycliques utilisée dans glmnet).
Tom Wenseleers