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])
Tom
quelle
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.

Tom
quelle
2
(+1) Vielen Dank, dass Sie die Auflösung weiterverfolgt und veröffentlicht haben, nachdem Sie sie herausgefunden haben. Prost.
Kardinal