Вірогідність журналу для GLM


10

У наступному коді я здійснюю логістичну регресію на згрупованих даних за допомогою glm та "від руки" за допомогою mle2. Чому функція logLik в R дає мені ймовірність журналу logLik (fit.glm) = - 2.336, що відрізняється від одного logLik (fit.ml) = - 5.514, який я отримую вручну?

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},α>0θ "Імовірність журналу може в свою чергу зміщуватися довільною постійною. ... (
ctd

(ctd) ... Це не означає, що це пояснення цієї особливої ​​різниці, але це загальна причина для відмінностей між тим, як різні функції дають різні ймовірності.
Glen_b -Встановити Моніку

Я неправильно припустив, що ймовірність журналу була визначена з ядром pdf, і тому була унікальною для цієї проблеми.
Том

1
Варто, однак, дослідити, адже іноді пояснення - це щось інше.
Glen_b -Встановіть Моніку

Відповіді:


9

Здається, що функція logLik в R обчислює те, що в SAS називається "повною функцією ймовірності", що в цьому випадку включає біноміальний коефіцієнт. Я не включав біноміальний коефіцієнт у розрахунок mle2, оскільки він не впливає на оцінки параметрів. Як тільки ця константа додається до ймовірності журналу в обчисленні mle2, glm і mle2 погоджуються.


2
(+1) Дякуємо, що стежили за публікацією резолюції та опублікували її після того, як ви її зрозуміли. Ура.
кардинал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.