On peut effectuer une régression logit dans R en utilisant un tel code:
> library(MASS)
> data(menarche)
> glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age,
+ family=binomial(logit), data=menarche)
> coefficients(glm.out)
(Intercept) Age
-21.226395 1.631968
Il semble que l'algorithme d'optimisation ait convergé - il existe des informations sur le nombre d'étapes de l'algorithme de notation du pêcheur:
Call:
glm(formula = cbind(Menarche, Total - Menarche) ~ Age, family = binomial(logit),
data = menarche)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0363 -0.9953 -0.4900 0.7780 1.3675
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -21.22639 0.77068 -27.54 <2e-16 ***
Age 1.63197 0.05895 27.68 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3693.884 on 24 degrees of freedom
Residual deviance: 26.703 on 23 degrees of freedom
AIC: 114.76
Number of Fisher Scoring iterations: 4
Je suis curieux de savoir de quel algorithme optim il s'agit? S'agit-il d'un algorithme de Newton-Raphson (descente de gradient de second ordre)? Puis-je définir certains paramètres pour utiliser l'algorithme de Cauchy (descente de gradient de premier ordre)?
r
generalized-linear-model
optimization
algorithms
logit
Marcin Kosiński
la source
la source
Newton's method
s'agit d'une méthode de descente de gradient de second ordre.Réponses:
Vous serez intéressé de savoir que la documentation de
glm
, accessible via?glm
fournit de nombreuses informations utiles:method
nous trouvons ci- dessous que les moindres carrés itérativement repondérés sont la méthode par défaut pourglm.fit
, qui est la fonction de cheval de bataille pourglm
. En outre, la documentation mentionne que des fonctions définies par l'utilisateur peuvent être fournies ici, au lieu de la valeur par défaut.la source
glm
oufit.glm
à l'R
invite pour étudier le code source.glm.fit
qui ne sera pas entièrement reproductible puisqu'il repose sur le code CC_Cdqrls
.La méthode utilisée est mentionnée dans la sortie elle-même: c'est le Fisher Scoring. Cela équivaut à Newton-Raphson dans la plupart des cas. L'exception étant les situations où vous utilisez des paramétrisations non naturelles. La régression du risque relatif est un exemple d'un tel scénario. Là, les informations attendues et observées sont différentes. En général, Newton Raphson et Fisher Scoring donnent des résultats presque identiques.
Une autre formulation de la notation de Fisher est celle des moindres carrés itérativement repondérés. Pour donner une certaine intuition, les modèles d'erreur non uniformes ont le modèle des moindres carrés pondérés par la variance inverse comme modèle "optimal" selon le théorème de Gauss Markov. Avec les GLM, il existe une relation moyenne-variance connue. Un exemple est la régression logistique où la moyenne est et la variance estp p(1−p) Fisher Scoring. De plus, il donne une belle intuition à l'algorithme EM qui est un cadre plus général pour estimer les probabilités compliquées.
L'optimiseur général par défaut dans R utilise des méthodes numériques pour estimer un second moment, essentiellement basé sur une linéarisation (attention à la malédiction de la dimensionnalité). Donc, si vous vouliez comparer l'efficacité et le biais, vous pourriez mettre en œuvre une routine de naïveté logistique naïve avec quelque chose comme
Donne moi
la source
nlm
estimer numériquement le gradient puis applique Newton Raphson. Dans BFGS, je pense que le gradient est requis comme avec Newton Raphson, mais les étapes successives sont évaluées en utilisant une approximation de second ordre qui nécessite une estimation de la Hesse. BFGS est bon pour les optimisations hautement non linéaires. Mais pour les GLM, ils se comportent généralement très bien.Pour mémoire, une implémentation pure R simple de l'algorithme glm de R, basée sur le score de Fisher (moindres carrés itérativement repondérés), comme expliqué dans l'autre réponse, est donnée par:
Exemple:
Une bonne discussion des algorithmes d'ajustement GLM, y compris une comparaison avec Newton-Raphson (qui utilise la Hesse observée par opposition à la Hesse attendue dans l'algorithme IRLS) et les algorithmes hybrides (qui commencent par IRLS, car ils sont plus faciles à initialiser, mais ensuite terminer avec une optimisation supplémentaire en utilisant Newton-Raphson) peut être trouvé dans le livre "Generalized Linear Models and Extensions" par James W. Hardin & Joseph M. Hilbe .
la source