Probabilidad de registro para GLM


10

En el siguiente código realizo una regresión logística en datos agrupados usando glm y "a mano" usando mle2. ¿Por qué la función logLik en R me da una probabilidad de registro logLik (fit.glm) = - 2.336 que es diferente del logLik (fit.ml) = - 5.514 que obtengo a mano?

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
Una razón común para tales diferencias es el hecho de que la probabilidad solo se define hasta una constante multiplicativa : " Más precisamente, entonces, una función de probabilidad es cualquier representante de una clase de funciones de equivalencia, donde no se permite que la constante de proporcionalidad dependa de , y se requiere que sea la misma para todas las funciones de probabilidad utilizadas en cualquiera comparaciónL{αPθ:α>0},α>0θ " . La probabilidad de registro a su vez puede ser desplazada por una constante arbitraria. ... (ctd)
Glen_b -Reinstate a Monica el

(ctd) ... Eso no quiere decir que sea la explicación de esta diferencia en particular, pero es una razón común para las diferencias entre cómo las diferentes funciones dan diferentes probabilidades.
Glen_b -Reinstate Monica

Asumí incorrectamente que la probabilidad de registro se definió con el núcleo del pdf y, por lo tanto, era única para este problema.
Tom

1
Sin embargo, vale la pena investigar, porque a veces la explicación es otra.
Glen_b -Reinstate Monica

Respuestas:


9

Parece que la función logLik en R calcula lo que se conoce en SAS como la "función de probabilidad completa", que en este caso incluye el coeficiente binomial. No incluí el coeficiente binomial en el cálculo de mle2 porque no tiene impacto en las estimaciones de los parámetros. Una vez que esta constante se agrega a la probabilidad logarítmica en el cálculo de mle2, glm y mle2 están de acuerdo.


2
(+1) Gracias por seguir y publicar la resolución después de resolverla. Salud.
cardenal
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.