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