Probabilidade de log para GLM


10

No código a seguir, realizo uma regressão logística em dados agrupados usando glm e "manualmente" usando mle2. Por que a função logLik em R me fornece uma probabilidade de log logLik (fit.glm) = - 2.336 que é diferente do logLik (fit.ml) = - 5.514 que recebo manualmente?

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
L{αPθ:α>0}, onde a constante de proporcionalidade não pode depender de e deve ser a mesma para todas as funções de probabilidade usadas em qualquer comparação.α>0θ"A probabilidade de log pode, por sua vez, ser alterada por uma constante arbitrária. ... (ctd)
Glen_b -Reinstala Monica

(ctd) ... Isso não quer dizer que seja a explicação para essa diferença específica, mas é um motivo comum para diferenças entre como funções diferentes dão probabilidades diferentes.
Glen_b -Reinstala Monica

Eu assumi incorretamente que a probabilidade do log foi definida com o kernel do pdf e, portanto, era exclusiva para esse problema.
Tom

1
Vale a pena investigar, no entanto, porque às vezes a explicação é outra coisa.
Glen_b -Reinstala Monica

Respostas:


9

Parece que a função logLik no R calcula o que é referido no SAS como a "função de probabilidade total", que neste caso inclui o coeficiente binomial. Não incluí o coeficiente binomial no cálculo mle2 porque não tem impacto nas estimativas de parâmetros. Depois que essa constante é adicionada à probabilidade do log no cálculo mle2, glm e mle2 concordam.


2
(+1) Obrigado por acompanhar e postar a resolução depois que você a descobriu. Felicidades.
cardeal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.