다음 코드에서는 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
이러한 차이의 일반적인 이유는 가능성이 곱셈 상수 까지만 정의 된다는 사실입니다 . " 더 정확하게 말하면, 가능성 함수는 동등성 함수 클래스의 대표자입니다.
—
Glen_b-복지국 Monica
여기서 비례 상수 은 에 의존 할 수 없으며, 하나의 비교에 사용 된 모든 우도 함수에 대해 동일해야합니다. "로그 가능성은 임의의 상수에 의해 바뀔 수 있습니다. ... (ctd)
(ctd) ... 그것은 이것이 특정한 차이점에 대한 설명이라고 말하는 것이 아니라, 다른 기능이 다른 가능성을주는 방법 사이의 차이점에 대한 일반적인 이유입니다.
—
Glen_b-복지 주 모니카
로그 가능성이 pdf의 커널로 정의되어 있으므로이 문제에 대해 고유하다고 잘못 가정했습니다.
—
Tom
그러나 때로는 설명이 다른 것이기 때문에 조사 할 가치가 있습니다.
—
Glen_b-복지 주 모니카