मेरे पास एकान्त मधुमक्खी बहुतायत पर एक बहुत छोटा डेटा सेट है जिसका मुझे विश्लेषण करने में परेशानी हो रही है। यह डेटा की गणना है, और लगभग सभी गणना एक उपचार में हैं जिनमें से अधिकांश शून्य अन्य उपचार में हैं। बहुत उच्च मूल्यों के एक जोड़े भी हैं (छह साइटों में से प्रत्येक पर एक), इसलिए काउंट्स के वितरण में एक बहुत लंबी पूंछ है। मैं आर में काम कर रहा हूं। मैंने दो अलग-अलग पैकेजों का उपयोग किया है: lme4 और glmmADMB।
पॉइसन मिश्रित मॉडल फिट नहीं थे: जब यादृच्छिक प्रभाव फिट नहीं किए गए थे (मॉडल मॉडल), और यादृच्छिक प्रभाव (ग्लैमर मॉडल) फिट किए गए थे, तो मॉडल बहुत अधिक थे। मुझे समझ नहीं आता कि ऐसा क्यों है। नेस्टेड रैंडम प्रभावों के लिए प्रायोगिक डिज़ाइन कॉल करता है इसलिए मुझे उन्हें शामिल करने की आवश्यकता है। एक पॉइसन लॉगनॉर्मल एरर डिस्ट्रीब्यूशन ने फिट में सुधार नहीं किया। मैंने glmer.nb का उपयोग करते हुए नकारात्मक द्विपद त्रुटि वितरण की कोशिश की और इसे फिट करने के लिए नहीं मिल सका - पुनरावृत्ति सीमा तक पहुंच गया, यहां तक कि जब glmerControl (tolPwrss = 1e-3) का उपयोग करके सहिष्णुता बदल गई।
क्योंकि बहुत सारे शून्य इस तथ्य के कारण होंगे कि मैंने बस मधुमक्खियों को नहीं देखा था (वे अक्सर छोटी काली चीजें हैं), मैंने अगली बार एक शून्य-फुलाया मॉडल की कोशिश की। जिप अच्छी तरह से फिट नहीं था। ZINB अब तक का सबसे अच्छा मॉडल फिट था, लेकिन मैं अभी भी मॉडल फिट से बहुत खुश नहीं हूं। मैं एक नुकसान पर हूँ कि आगे क्या करने की कोशिश की जाए। मैंने एक बाधा मॉडल की कोशिश की, लेकिन गैर-शून्य परिणामों के लिए एक काट-छाँट वितरण को फिट नहीं कर सका- मुझे लगता है कि इतने सारे शून्य नियंत्रण उपचार में हैं (त्रुटि संदेश "model.frame.default (सूत्र में त्रुटि) = s.bee ~ tmt + lu +: परिवर्तनशील लंबाई भिन्न होती है ('उपचार' के लिए पाया जाता है) ")।
इसके अलावा, मुझे लगता है कि मैंने जो इंटरेक्शन शामिल किया है वह मेरे डेटा के लिए कुछ अजीब कर रहा है क्योंकि गुणांक unrealistically छोटे हैं - हालांकि इंटरेक्शन वाला मॉडल सबसे अच्छा था जब मैंने पैकेज bbmle में AICctab का उपयोग करके मॉडल की तुलना की थी।
मैं कुछ आर स्क्रिप्ट को शामिल कर रहा हूं जो मेरे डेटा सेट को बहुत पुन: पेश करेंगे। चर इस प्रकार हैं:
d = जूलियन तिथि, df = जूलियन तिथि (कारक के रूप में), d.sq = df वर्ग (मधुमक्खियों की संख्या बढ़ जाती है, फिर गर्मियों में गिरती है), st = site, s.bee = मधुमक्खियों की गिनती, tmt - उपचार, lu = भूमि उपयोग के प्रकार, आस-पास के परिदृश्य में बाब = अर्ध प्राकृतिक आवास का प्रतिशत, बा = सीमा क्षेत्र गोल खेत।
कैसे मैं एक अच्छा मॉडल फिट (वैकल्पिक त्रुटि वितरण, विभिन्न प्रकार के मॉडल आदि) प्राप्त कर सकता हूं के रूप में कोई भी सुझाव बहुत आभार प्राप्त होगा!
धन्यवाद।
d <- c(80, 80, 121, 121, 180, 180, 86, 86, 116, 116, 144, 144, 74, 74, 143, 143, 163, 163, 71, 71,106, 106, 135, 135, 162, 162, 185, 185, 83, 83, 111, 111, 133, 133, 175, 175, 85, 85, 112, 112,137, 137, 168, 168, 186, 186, 64, 64, 95, 95, 127, 127, 156, 156, 175, 175, 91, 91, 119, 119,120, 120, 148, 148, 56, 56)
df <- as.factor(d)
d.sq <- d^2
st <- factor(rep(c("A", "B", "C", "D", "E", "F"), c(6,12,18,10,14,6)))
s.bee <- c(1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,3,0,0,0,0,5,0,0,2,0,50,0,10,0,4,0,47,3)
tmt <- factor(c("AF","C","C","AF","AF","C","AF","C","AF","C","C","AF","AF","C","AF","C","AF","C","AF","C",
"C","AF","AF","C","AF","C","C","AF","AF","C","AF","C","AF","C","AF","C","AF","C","AF","C",
"C","AF","AF","C","AF","C","AF","C","AF","C","C","AF","C","AF","C","AF","AF","C","AF","C",
"AF","C","AF","C","AF","C"))
lu <- factor(rep(c("p","a","p","a","p"), c(6,12,28,14,6)))
hab <- rep(c(13,14,13,14,3,4,3,4,3,4,3,4,3,4,15,35,37,35,37,35,37,35,37,0,2,1,2,1,2,1),
c(1,2,2,1,1,1,1,2,2,1,1,1,1,1,18,1,1,1,2,2,1,1,1,14,1,1,1,1,1,1))
ba <- c(480,6520,6520,480,480,6520,855,1603,855,1603,1603,855,855,12526,855,5100,855,5100,2670,7679,7679,2670,
2670,7679,2670,7679,7679,2670,2670,7679,2670,7679,2670,7679,2670,7679,1595,3000,1595,3000,3000,1595,1595,3000,1595
,3000,4860,5460,4860,5460,5460,4860,5460,4860,5460,4860,4840,5460,4840,5460,3000,1410,3000,1410,3000,1410)
data <- data.frame(st,df,d.sq,tmt,lu,hab,ba,s.bee)
with(data, table(s.bee, tmt) )
# below is a much abbreviated summary of attempted models:
library(MASS)
library(lme4)
library(glmmADMB)
library(coefplot2)
###
### POISSON MIXED MODEL
m1 <- glmer(s.bee ~ tmt + lu + hab + (1|st/df), family=poisson)
summary(m1)
resdev<-sum(resid(m1)^2)
mdf<-length(fixef(m1))
rdf<-nrow(data)-mdf
resdev/rdf
# 0.2439303
# underdispersed. ???
###
### NEGATIVE BINOMIAL MIXED MODEL
m2 <- glmer.nb(s.bee ~ tmt + lu + hab + d.sq + (1|st/df))
# iteration limit reached. Can't make a model work.
###
### ZERO-INFLATED POISSON MIXED MODEL
fit_zipoiss <- glmmadmb(s.bee~tmt + lu + hab + ba + d.sq +
tmt:lu +
(1|st/df), data=data,
zeroInflation=TRUE,
family="poisson")
# has to have lots of variables to fit
# anyway Poisson is not a good fit
###
### ZERO-INFLATED NEGATIVE BINOMIAL MIXED MODELS
## BEST FITTING MODEL SO FAR:
fit_zinb <- glmmadmb(s.bee~tmt + lu + hab +
tmt:lu +
(1|st/df),data=data,
zeroInflation=TRUE,
family="nbinom")
summary(fit_zinb)
# coefficients are tiny, something odd going on with the interaction term
# but this was best model in AICctab comparison
# model check plots
qqnorm(resid(fit_zinb))
qqline(resid(fit_zinb))
coefplot2(fit_zinb)
resid_zinb <- resid(fit_zinb , type = "pearson")
hist(resid_zinb)
fitted_zinb <- fitted (fit_zinb)
plot(resid_zinb ~ fitted_zinb)
## MODEL WITHOUT INTERACTION TERM - the coefficients are more realistic:
fit_zinb2 <- glmmadmb(s.bee~tmt + lu + hab +
(1|st/df),data=data,
zeroInflation=TRUE,
family="nbinom")
# model check plots
qqnorm(resid(fit_zinb2))
qqline(resid(fit_zinb2))
coefplot2(fit_zinb2)
resid_zinb2 <- resid(fit_zinb2 , type = "pearson")
hist(resid_zinb2)
fitted_zinb2 <- fitted (fit_zinb2)
plot(resid_zinb2 ~ fitted_zinb2)
# ZINB models are best so far
# but I'm not happy with the model check plots