Đăng nhập khả năng cho GLM


10

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.L{αPθ:α>0},α>0θ "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)
Glen_b -Reinstate Monica

(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

1
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

Câu trả lời:


9

Dường như hàm logLik trong R tính toán những gì được gọi trong SAS là "hàm khả năng đầy đủ", trong trường hợp này bao gồm hệ số nhị thức. Tôi không bao gồm hệ số nhị thức trong tính toán mle2 vì nó không ảnh hưởng đến các ước tính tham số. Khi hằng số này được thêm vào khả năng đăng nhập trong tính toán mle2, glm và mle2 đồng ý.


2
(+1) Cảm ơn bạn đã theo dõi và đăng độ phân giải sau khi bạn tìm ra nó. Chúc mừng.
hồng y
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.