Catat Kemungkinan untuk GLM

10

Dalam kode berikut ini saya melakukan regresi logistik pada data yang dikelompokkan menggunakan glm dan "dengan tangan" menggunakan mle2. Mengapa fungsi logLik di R memberi saya kemungkinan logLik (fit.glm) = - 2.336 yang berbeda dari yang logLik (fit.ml) = - 5.514 saya dapatkan dengan tangan?

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
sumber
3
Alasan umum untuk perbedaan tersebut adalah kenyataan bahwa kemungkinan hanya didefinisikan hingga konstanta multiplikasi : " Lebih tepatnya, maka fungsi kemungkinan adalah perwakilan dari kelas fungsi ekivalen, mana konstanta proporsionalitas tidak diizinkan untuk bergantung pada , dan harus sama untuk semua fungsi kemungkinan yang digunakan di salah satu perbandingan.L{αPθ:α>0},α>0θ "Kemungkinan log pada gilirannya akan digeser oleh konstanta arbitrer. ... (
ctd
...
Glen_b -Reinstate Monica
Saya salah berasumsi bahwa kemungkinan log didefinisikan dengan kernel pdf dan karena itu unik untuk masalah ini.
Tom
1
Namun, perlu diselidiki, karena terkadang penjelasannya berbeda.
Glen_b -Reinstate Monica

Jawaban:

9

Tampaknya fungsi logLik dalam R menghitung apa yang disebut dalam SAS sebagai "fungsi kemungkinan penuh", yang dalam hal ini termasuk koefisien binomial. Saya tidak memasukkan koefisien binomial dalam perhitungan mle2 karena tidak berdampak pada estimasi parameter. Setelah konstanta ini ditambahkan ke kemungkinan log dalam perhitungan mle2, glm dan mle2 setuju.

Tom
sumber
2
(+1) Terima kasih telah menindaklanjuti dan memposting resolusi setelah Anda mengetahuinya. Bersulang.
kardinal