GLM에 대한 로그 가능성


10

다음 코드에서는 glm을 사용하고 mle2를 사용하여 "손으로"그룹화 된 데이터에 대해 로지스틱 회귀를 수행합니다. R의 logLik 함수가 왜 logLik (fit.ml) =-5.514와 다른 로그 가능성 logLik (fit.glm) =-2.336을 제공합니까?

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)
Glen_b-복지국 Monica

(ctd) ... 그것은 이것이 특정한 차이점에 대한 설명이라고 말하는 것이 아니라, 다른 기능이 다른 가능성을주는 방법 사이의 차이점에 대한 일반적인 이유입니다.
Glen_b-복지 주 모니카

로그 가능성이 pdf의 커널로 정의되어 있으므로이 문제에 대해 고유하다고 잘못 가정했습니다.
Tom

1
그러나 때로는 설명이 다른 것이기 때문에 조사 할 가치가 있습니다.
Glen_b-복지 주 모니카

답변:


9

R의 logLik 함수는 SAS에서 "전체 우도 함수"라고하는 것을 계산하는데,이 경우에는 이항 계수가 포함됩니다. 이항 계수는 모수 추정에 영향을 미치지 않기 때문에 mle2 계산에 포함하지 않았습니다. 이 상수가 mle2 계산에서 로그 우도에 추가되면 glm과 mle2가 동의합니다.


2
(+1) 해결 방법을 알아 낸 후 추적 및 게시 해 주셔서 감사합니다. 건배.
추기경
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.