Bei einer multiplen linearen Regression kann der Koeffizient mit der folgenden Formel ermittelt werden.
beta = solve(t(X) %*% X) %*% (t(X) %*% Y) ; beta
Zum Beispiel:
> y <- c(9.3, 4.8, 8.9, 6.5, 4.2, 6.2, 7.4, 6, 7.6, 6.1)
> x0 <- c(1,1,1,1,1,1,1,1,1,1)
> x1 <- c(100,50,100,100,50,80,75,65,90,90)
> x2 <- c(4,3,4,2,2,2,3,4,3,2)
> Y <- as.matrix(y)
> X <- as.matrix(cbind(x0,x1,x2))
> beta = solve(t(X) %*% X) %*% (t(X) %*% Y);beta
[,1]
x0 -0.8687015
x1 0.0611346
x2 0.9234254
> model <- lm(y~+x1+x2) ; model$coefficients
(Intercept) x1 x2
-0.8687015 0.0611346 0.9234254
Ich würde gerne in der gleichen "manuellen" Weise die Beta für eine logistische Regression berechnen. Wobei das y natürlich 1 oder 0 ist. Angenommen, ich verwende die Binomialfamilie mit einem Logit-Link.
Antworten:
Der OLS-Schätzer im linearen Regressionsmodell hat nur selten die Eigenschaft, dass er in geschlossener Form dargestellt werden kann, ohne dass er als Optimierer einer Funktion ausgedrückt werden muss. Es ist jedoch ein Optimierer einer Funktion - die Restfunktion der Quadrate - und kann als solche berechnet werden.
Das MLE im logistischen Regressionsmodell ist auch der Optimierer einer geeignet definierten Log-Likelihood-Funktion, da es jedoch nicht in einem geschlossenen Ausdruck verfügbar ist, muss es als Optimierer berechnet werden.
Die meisten statistischen Schätzer können nur als Optimierer für entsprechend konstruierte Funktionen der Daten ausgedrückt werden, die als Kriteriumsfunktionen bezeichnet werden. Solche Optimierer erfordern die Verwendung geeigneter numerischer Optimierungsalgorithmen. Optimierer von Funktionen können in R unter Verwendung der
optim()
Funktion berechnet werden , die einige allgemeine Optimierungsalgorithmen oder eines der spezialisierteren Pakete wie zoptimx
. Es ist entscheidend zu wissen, welcher Optimierungsalgorithmus für verschiedene Modelltypen und statistische Kriterienfunktionen verwendet werden muss.Restquadratsumme der linearen Regression
Die OLS Schätzer als Optimierer des bekannten Restquadratsumme definiert ist
Bei einer doppelt differenzierbaren, konvexen Funktion wie der Restsumme der Quadrate leisten die meisten gradientenbasierten Optimierer gute Arbeit. In diesem Fall verwende ich den BFGS-Algorithmus.
Dies ergibt:
Logistische Regressionslog-Wahrscheinlichkeit
Die dem MLE im logistischen Regressionsmodell entsprechende Kriteriumsfunktion ist die Log-Likelihood-Funktion.
Ich zeige, wie man die Kriteriumsfunktion mit der
optim()
Funktion wieder unter Verwendung des BFGS-Algorithmus konstruiert und optimiert .Dies ergibt
Beachten Sie als Einschränkung, dass numerische Optimierungsalgorithmen eine sorgfältige Verwendung erfordern oder dass Sie am Ende alle möglichen pathologischen Lösungen haben. Bis Sie sie gut verstanden haben, sollten Sie die verfügbaren Paketoptionen verwenden, mit denen Sie sich auf die Angabe des Modells konzentrieren können, anstatt sich Gedanken darüber zu machen, wie die Schätzungen numerisch berechnet werden.
quelle
-sum(vY%*%(mX%*%vBeta)-log(1+exp(mX%*%vBeta)))
Sie können von hier nicht dorthin gelangen. Die Lösungen sowohl für das allgemeine lineare Modell als auch für das logistische Modell ergeben sich aus der Lösung der jeweiligen Maximum-Likelihood-Gleichungen, aber nur das lineare Modell hat eine geschlossene Lösung.
Wenn Sie das Buch von McCullagh und Nelder lesen, erfahren Sie, wie die Lösungen im logistischen Fall (oder einem anderen verallgemeinerten Modell) erzielt werden. Tatsächlich werden die Lösungen iterativ erstellt, wobei für jede Iteration eine gewichtete lineare Regression gelöst wird. Die Gewichte hängen zum Teil von der Verbindungsfunktion ab.
quelle