Mit folgendem Code kann eine logit-Regression in R durchgeführt werden:
> 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
Es sieht so aus, als ob der Optimierungsalgorithmus konvergiert hat - es gibt Informationen über die Schrittanzahl des Fisher-Scoring-Algorithmus:
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
Ich bin gespannt, um welchen Optimierungsalgorithmus es sich handelt. Ist es ein Newton-Raphson-Algorithmus (Gradientenabstieg zweiter Ordnung)? Kann ich einige Parameter für die Verwendung des Cauchy-Algorithmus einstellen (Gradientenabstieg erster Ordnung)?
r
generalized-linear-model
optimization
algorithms
logit
Marcin Kosiński
quelle
quelle
Newton's method
eine Gradientenabstiegsmethode zweiter Ordnung ist.Antworten:
Es wird Sie interessieren, ob die Dokumentation für
glm
, auf die über zugegriffen?glm
wird, viele nützliche Einblicke bietet: Untermethod
finden wir, dass iterativ gewichtete kleinste Quadrate die Standardmethode für istglm.fit
, für die die Arbeitspferdefunktion istglm
. Darüber hinaus wird in der Dokumentation erwähnt, dass benutzerdefinierte Funktionen anstelle der Standardfunktionen bereitgestellt werden können.quelle
glm
oderfit.glm
an derR
Eingabeaufforderung den Quellcode untersuchen.glm.fit
das nicht vollständig reproduzierbar sein wird, da es auf C-Code basiertC_Cdqrls
.Die verwendete Methode wird in der Ausgabe selbst erwähnt: Es handelt sich um Fisher Scoring. Dies entspricht in den meisten Fällen Newton-Raphson. Die Ausnahme bilden Situationen, in denen Sie nicht-natürliche Parametrisierungen verwenden. Die relative Risikorückführung ist ein Beispiel für ein solches Szenario. Dort sind die erwarteten und beobachteten Informationen unterschiedlich. Im Allgemeinen liefern Newton Raphson und Fisher Scoring nahezu identische Ergebnisse.
Der standardmäßige allgemeine Optimierer in R verwendet numerische Methoden zum Schätzen eines zweiten Moments, die im Wesentlichen auf einer Linearisierung basieren (Vorsicht vor dem Fluch der Dimensionalität). Wenn Sie also die Effizienz und Verzerrung vergleichen möchten, können Sie eine naive logistische Maximum-Likelihood-Routine mit so etwas wie implementieren
gibt mir
quelle
nlm
schätzt den Gradienten numerisch und wendet dann Newton Raphson an. In BFGS ist der Gradient meines Erachtens wie bei Newton Raphson erforderlich, aber aufeinanderfolgende Schritte werden unter Verwendung einer Approximation zweiter Ordnung bewertet, die eine Schätzung des Hessischen erfordert. BFGS eignet sich für hochgradig nichtlineare Optimierungen. Aber für GLMs sind sie in der Regel sehr gut benommen.Für die Aufzeichnung ist eine einfache reine R-Implementierung des glm-Algorithmus von R basierend auf der Fisher-Wertung (iterativ gewichtete kleinste Quadrate) wie in der anderen Antwort erklärt gegeben durch:
Beispiel:
Eine gute Diskussion der GLM-Anpassungsalgorithmen, einschließlich eines Vergleichs mit Newton-Raphson (der das beobachtete Hessische im Gegensatz zum erwarteten Hessischen im IRLS-Algorithmus verwendet) und hybriden Algorithmen (die mit IRLS beginnen, da diese dann leichter zu initialisieren sind) Finishing mit weiterer Optimierung unter Verwendung von Newton-Raphson) finden Sie im Buch "Generalized Linear Models and Extensions" von James W. Hardin & Joseph M. Hilbe .
quelle