Trong đoạn mã sau tôi thực hiện hồi quy logistic trên dữ liệu được nhóm bằng glm và "bằng tay" bằng mle2. Tại sao hàm logLik trong R cung cấp cho tôi khả năng đăng nhập logLik (fit.glm) = - 2.336 khác với logLik (fit.ml) = - 5.514 tôi nhận bằng tay?
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
Một lý do phổ biến cho sự khác biệt đó là thực tế là khả năng chỉ được xác định theo hằng số nhân : " Chính xác hơn, hàm khả năng là bất kỳ đại diện nào từ một lớp hàm tương đương, nơi hằng số tỉ lệ là không được phép phụ thuộc vào , và bắt buộc phải giống nhau cho tất cả các chức năng khả năng sử dụng trong bất kỳ một so sánh.
—
Glen_b -Reinstate Monica
"Khả năng đăng nhập có thể lần lượt được thay đổi bởi một hằng số tùy ý. ... (ctd)
(ctd) ... Điều đó không có nghĩa là đó là lời giải thích cho sự khác biệt cụ thể này, nhưng đó là lý do phổ biến cho sự khác biệt giữa cách các chức năng khác nhau đưa ra khả năng khác nhau.
—
Glen_b -Reinstate Monica
Tôi đã giả định không chính xác rằng khả năng đăng nhập được xác định với kernel của pdf và do đó là duy nhất cho vấn đề này.
—
Tom
Tuy nhiên, nó đáng để điều tra, bởi vì đôi khi lời giải thích là một cái gì đó khác.
—
Glen_b -Reinstate Monica