Log Lik vraisemblance pour GLM


10

Dans le code suivant, j'effectue une régression logistique sur des données groupées en utilisant glm et "à la main" en utilisant mle2. Pourquoi la fonction logLik dans R me donne-t-elle une vraisemblance logLik (fit.glm) = - 2,336 différente de celle logLik (fit.ml) = - 5,514 que je reçois à la main?

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
Une raison courante de ces différences est le fait que la probabilité n'est définie que jusqu'à une constante multiplicative : " Plus précisément, alors, une fonction de vraisemblance est tout représentant d'une classe d'équivalence de fonctions, où la constante de proportionnalité ne doit pas dépendre de , et doit être la même pour toutes les fonctions de vraisemblance utilisées dans n'importe laquelle la comparaison.L{αPθ:α>0},α>0θ "Log-vraisemblance peut à son tour être décalée d'une constante arbitraire. ... (ctd)
Glen_b -Reinstate Monica

(ctd) ... Cela ne veut pas dire que c'est l'explication de cette différence particulière, mais c'est une raison courante pour les différences entre la façon dont différentes fonctions donnent différentes probabilités.
Glen_b -Reinstate Monica

J'ai supposé à tort que la probabilité de journalisation a été définie avec le noyau du pdf et était donc unique pour ce problème.
Tom

1
Cela vaut la peine d'enquêter, cependant, car parfois l'explication est autre chose.
Glen_b -Reinstate Monica

Réponses:


9

Il semble que la fonction logLik dans R calcule ce que l'on appelle dans SAS la "fonction de vraisemblance totale", qui dans ce cas inclut le coefficient binomial. Je n'ai pas inclus le coefficient binomial dans le calcul de mle2 car il n'a aucun impact sur les estimations des paramètres. Une fois cette constante ajoutée à la vraisemblance logarithmique dans le calcul de mle2, glm et mle2 sont d'accord.


2
(+1) Merci d'avoir suivi et publié la résolution après l'avoir trouvée. À votre santé.
cardinal
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.