निम्नलिखित कोड में मैं glle और "हाथ से" mle2 का उपयोग करके समूहीकृत डेटा पर एक लॉजिस्टिक प्रतिगमन करता हूं। R में logLik फ़ंक्शन मुझे लॉग की संभावना क्यों देता है 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
इस तरह के मतभेदों का एक सामान्य कारण यह तथ्य है कि संभावना केवल एक गुणक स्थिरांक तक परिभाषित की जाती है : " अधिक सटीक रूप से, फिर, एक संभावना कार्य किसी समतुल्य वर्ग के कार्यों का प्रतिनिधि है,
—
Glen_b -Reinstate Monica
जहां समानता के निरंतर पर निर्भर करते हैं की अनुमति नहीं है , और किसी भी एक तुलना में इस्तेमाल सभी संभावना कार्यों के लिए एक समान होना आवश्यक है। "लॉग-लाइकनेस बदले में एक मनमाना स्थिरांक द्वारा स्थानांतरित किया जा सकता है ... (ctd)
(ctd) ... यह कहना नहीं है कि यह इस विशेष अंतर के लिए स्पष्टीकरण है, लेकिन यह विभिन्न कार्यों को अलग-अलग संभावनाएं प्रदान करने के बीच अंतर का एक सामान्य कारण है।
—
Glen_b -Reinstate मोनिका
मैंने गलत तरीके से माना है कि लॉग संभावना को पीडीएफ के कर्नेल के साथ परिभाषित किया गया था और इसलिए इस समस्या के लिए अद्वितीय था।
—
टॉम
यह जांच के लायक है, हालांकि, क्योंकि कभी-कभी स्पष्टीकरण कुछ और है।
—
Glen_b -Reinstate मोनिका