Aşağıdaki kodda glm ve "elle" mle2 kullanarak gruplandırılmış veriler üzerinde lojistik regresyon gerçekleştiriyorum. Neden R'deki logLik işlevi bana bir günlük olasılığı verir logLik (fit.glm) = - 2.336 birinden farklı logLik (fit.ml) = - 5.514 Elle alıyorum?
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
Bu tür farklılıkların ortak bir nedeni, olasılığın sadece çarpımsal bir sabite kadar tanımlanmasıdır : " Daha doğrusu, bir olasılık fonksiyonu, bir denklik fonksiyon sınıfının herhangi bir temsilcisidir, burada orantılılık sabiti bağlı olmasına izin verilmez ve herhangi bir karşılaştırmada kullanılan tüm olasılık fonksiyonları için aynı olması gerekir. "Log-belki de keyfi bir sabit tarafından kaydırılabilir. (
—
Ctd
(ctd) ... Bu, bu özel farkın açıklaması değil, farklı işlevlerin farklı olasılıklar arasında nasıl bir fark olduğu için yaygın bir neden.
—
Glen_b
Yanlışlıkla günlük olasılığının pdf'in çekirdeği ile tanımlandığını ve bu nedenle bu sorun için benzersiz olduğunu varsaydım.
—
Tom
Yine de araştırmaya değer, çünkü bazen açıklama başka bir şeydir.
—
Glen_b