Log Likelihood für GLM


10

Im folgenden Code führe ich eine logistische Regression für gruppierte Daten mit glm und "von Hand" mit mle2 durch. Warum gibt mir die logLik-Funktion in R eine Log-Wahrscheinlichkeit logLik (fit.glm) = - 2.336, die sich von der logLik (fit.ml) = - 5.514 unterscheidet, die ich von Hand erhalte?

library(bbmle)

#successes in first column, failures in second
Y <- matrix(c(1,2,4,3,2,0),3,2)

#predictor
X <- c(0,1,2)

#use glm
fit.glm <- glm(Y ~ X,family=binomial (link=logit))
summary(fit.glm)

#use mle2
invlogit <- function(x) { exp(x) / (1+exp(x))}
nloglike <- function(a,b) {
  L <- 0
  for (i in 1:n){
     L <- L + sum(y[i,1]*log(invlogit(a+b*x[i])) + 
               y[i,2]*log(1-invlogit(a+b*x[i])))
  }
 return(-L) 
}  

fit.ml <- mle2(nloglike,
           start=list(
             a=-1.5,
             b=2),
           data=list(
             x=X,
             y=Y,
             n=length(X)),
           method="Nelder-Mead",
           skip.hessian=FALSE)
summary(fit.ml)

#log likelihoods
logLik(fit.glm)
logLik(fit.ml)


y <- Y
x <- X
n <- length(x)
nloglike(coef(fit.glm)[1],coef(fit.glm)[2])
nloglike(coef(fit.ml)[1],coef(fit.ml)[2])

3
Ein häufiger Grund für solche Unterschiede ist die Tatsache, dass die Wahrscheinlichkeit nur bis zu einer multiplikativen Konstante definiert wird : " Genauer gesagt ist eine Wahrscheinlichkeitsfunktion ein Vertreter einer Äquivalenzklasse von Funktionen, wobei die Proportionalitätskonstante nicht von abhängen darf und für alle in einer verwendeten Wahrscheinlichkeitsfunktionen gleich sein muss Vergleich.L{αPθ:α>0},α>0θ "Die Log-Wahrscheinlichkeit kann wiederum um eine beliebige Konstante verschoben werden. ... (ctd)
Glen_b -Rate State Monica

(ctd) ... Das heißt nicht, dass dies die Erklärung für diesen besonderen Unterschied ist, aber es ist ein häufiger Grund für Unterschiede, wie unterschiedliche Funktionen unterschiedliche Wahrscheinlichkeiten ergeben.
Glen_b -State Monica

Ich habe fälschlicherweise angenommen, dass die Protokollwahrscheinlichkeit mit dem Kernel des PDF definiert wurde und daher für dieses Problem eindeutig war.
Tom

1
Es lohnt sich jedoch, dies zu untersuchen, da die Erklärung manchmal etwas anderes ist.
Glen_b -State Monica

Antworten:


9

Es scheint, dass die logLik-Funktion in R berechnet, was in SAS als "Vollwahrscheinlichkeitsfunktion" bezeichnet wird, die in diesem Fall den Binomialkoeffizienten enthält. Ich habe den Binomialkoeffizienten nicht in die mle2-Berechnung einbezogen, da er keinen Einfluss auf die Parameterschätzungen hat. Sobald diese Konstante zur logarithmischen Wahrscheinlichkeit in der mle2-Berechnung addiert wird, stimmen glm und mle2 überein.


2
(+1) Vielen Dank, dass Sie die Auflösung weiterverfolgt und veröffentlicht haben, nachdem Sie sie herausgefunden haben. Prost.
Kardinal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.