ในรหัสต่อไปนี้ฉันทำการถดถอยโลจิสติกในข้อมูลที่จัดกลุ่มโดยใช้ glm และ "ด้วยมือ" โดยใช้ mle2 ทำไมฟังก์ชั่น logLik ใน R จึงให้ความเป็นไปได้ในการบันทึก logLik (fit.glm) = - 2.336 ที่แตกต่างจากหนึ่ง logLik (fit.ml) = - 5.514 ฉันได้รับด้วยมือ?
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
เหตุผลทั่วไปสำหรับความแตกต่างคือข้อเท็จจริงที่ว่ามีความเป็นไปได้ที่จะกำหนดค่าคงที่ multiplicative เท่านั้น : " แม่นยำมากขึ้นแล้วความน่าจะเป็นหน้าที่ของผู้แทนจากการทำงานของชั้นเทียบเท่า ที่ค่าคงที่ของสัดส่วนไม่ได้รับอนุญาตให้ขึ้นอยู่กับและจะต้องเหมือนกันสำหรับฟังก์ชันโอกาสทั้งหมดที่ใช้ในการใด ๆ การเปรียบเทียบ
—
Glen_b -Reinstate Monica
"ความเป็นไปได้ของการบันทึกอาจถูกเปลี่ยนโดยค่าคงที่ตามอำเภอใจ ... (ctd)
(ctd) ... ไม่ได้หมายความว่ามันเป็นคำอธิบายสำหรับความแตกต่างนี้ แต่เป็นเหตุผลทั่วไปที่ทำให้เกิดความแตกต่างระหว่างวิธีการทำงานที่แตกต่างกันให้โอกาสที่แตกต่างกัน
—
Glen_b -Reinstate Monica
ฉันสันนิษฐานว่ามีการบันทึกความน่าจะเป็นที่ถูกต้องกับเคอร์เนลของ pdf และดังนั้นจึงไม่ซ้ำกันสำหรับปัญหานี้
—
ทอม
แม้ว่ามันจะคุ้มค่าในการตรวจสอบเพราะบางครั้งคำอธิบายก็เป็นอย่างอื่น
—
Glen_b -Reinstate Monica