मैं सामान्यीकृत रैखिक मॉडल को गिनती डेटा के कुछ सेटों में फिट करने की कोशिश कर रहा हूं जो कि अतिविशिष्ट नहीं हो सकते हैं। EVON और विचरण के साथ दो विहित वितरण जो यहां लागू होते हैं, पोइसन और नकारात्मक द्विपद (नेगबिन) हैं
जिसे क्रमशः R उपयोग glm(..,family=poisson)
और glm.nb(...)
, में फिट किया जा सकता है। quasipoisson
परिवार भी है , जो मेरी समझ में एक ही ईवी और भिन्नता के साथ एक समायोजित पॉसों है
,
पोइसन और नेगबिन के बीच में कहीं गिरना। कैसिपोइसन परिवार के साथ मुख्य समस्या यह है कि इसके लिए कोई संगत संभावना नहीं है, और इसलिए बहुत उपयोगी सांख्यिकीय परीक्षण और फिट उपाय (एआईसी, एलआर वगैरह) उपलब्ध नहीं हैं।
यदि आप QP और Negbin संस्करण की तुलना करते हैं, तो आप ध्यान दे सकते हैं कि आप उन्हें डालकर बराबरी कर सकते हैं । इस तर्क को जारी रखते हुए, आप नेसिपोनिसन वितरण को नेगबिन के विशेष मामले के रूप में व्यक्त करने का प्रयास कर सकते हैं:
,
यानी साथ एक नेगिनिन एक रैखिक रूप से पर निर्भर करता है । मैंने उपरोक्त फॉर्मूले के अनुसार संख्याओं का एक यादृच्छिक क्रम उत्पन्न करके और इसके साथ फिटिंग करके इस विचार को सत्यापित करने का प्रयास किया :glm
#fix parameters
phi = 3
a = 1/50
b = 3
x = 1:100
#generating points according to an exp-linear curve
#this way the default log-link recovers the same parameters for comparison
mu = exp(a*x+b)
y = rnbinom(n = length(mu), mu = mu, size = mu/(phi-1)) #random negbin generator
#fit a generalized linear model y = f(x)
glmQP = glm(y~x, family=quasipoisson) #quasipoisson
glmNB = glm.nb(y~x) #negative binomial
> glmQP
Call: glm(formula = y ~ x, family = quasipoisson)
Coefficients:
(Intercept) x
3.11257 0.01854
(Dispersion parameter for quasipoisson family taken to be 3.613573)
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 2097
Residual Deviance: 356.8 AIC: NA
> glmNB
Call: glm.nb(formula = y ~ x, init.theta = 23.36389741, link = log)
Coefficients:
(Intercept) x
3.10182 0.01873
Degrees of Freedom: 99 Total (i.e. Null); 98 Residual
Null Deviance: 578.1
Residual Deviance: 107.8 AIC: 824.7
दोनों फिट पैरामीटर को पुन: पेश करते हैं, और कैसिपोइसन लिए एक 'उचित' अनुमान देता है । अब हम कैसिपोइसन के लिए AIC मान को भी परिभाषित कर सकते हैं:
df = 3 # three model parameters: a,b, and phi
phi.fit = 3.613573 #fitted phi value copied from summary(glmQP)
mu.fit = glmQP$fitted.values
#dnbinom = negbin density, log=T returns log probabilities
AIC = 2*df - 2*sum(dnbinom(y, mu=mu.fit, size = mu.fit/(phi.fit - 1), log=T))
> AIC
[1] 819.329
(मुझे मैन्युअल रूप से फिट किए गए मान को कॉपी करना था , क्योंकि मैं इसे ऑब्जेक्ट में नहीं पा सकता था )summary(glmQP)
glmQP
- क्या यह विचार समझ में आता है? क्या मेरा सत्यापन परिपत्र तर्क पर आधारित है?
- किसी के लिए भी मुख्य प्रश्न यह है कि किसी चीज़ को 'इनवॉइस' किया जाए जो एक अच्छी तरह से स्थापित विषय से गायब लगता है: यदि यह विचार समझ में आता है, तो इसे पहले से ही क्यों लागू नहीं किया गया है
glm
?
संपादित करें: आंकड़ा जोड़ा गया