Yalnız arı bolluğu ile ilgili çok küçük bir veri setim var, analiz etmekte zorlanıyorum. Sayım verileri ve neredeyse tüm sayımlar bir tedavide, diğer tedavide sıfırların çoğu ile. Ayrıca çok yüksek birkaç değer vardır (altı alanın ikisinde birer tane), bu nedenle sayımların dağılımı son derece uzun bir kuyruğa sahiptir. R'de çalışıyorum. İki farklı paket kullandım: lme4 ve glmmADMB.
Poisson karışık modeller uymuyordu: rasgele efektler takılmadığında modeller çok fazla dağılmıştı (glm modeli) ve rasgele efektler takıldığında modeller azaldı (glmer modeli). Bunun neden olduğunu anlamıyorum. Deneysel tasarım iç içe rastgele efektler gerektirir, bu yüzden onları dahil etmeliyim. Poisson lognormal hata dağılımı uyumu iyileştirmedi. Glmer.nb kullanarak negatif binom hata dağıtımını denedim ve sığdıramadım - glmerControl (tolPwrss = 1e-3) kullanarak toleransı değiştirdiğinde bile yineleme sınırına ulaşıldı.
Sıfırların çoğu, sadece arıları görmediğimden (genellikle küçük siyah şeyler olduklarından) kaynaklanacağından, daha sonra sıfır şişirilmiş bir model denedim. ZIP iyi uymadı. ZINB şimdiye kadarki en iyi model uyumuydu, ancak hala model uyumundan çok memnun değilim. Daha sonra ne denemek için bir kayıp var. Bir engel modelini denedim ama sıfır olmayan sonuçlara kesilmiş bir dağıtım sığdıramadı. s.bee ~ tmt + lu +: değişken uzunluklar farklıdır ('tedavi' için bulunur) ”).
Buna ek olarak, dahil ettiğim etkileşimin, katsayılar gerçekçi olmayan küçük olduğu için verilerim için garip bir şey yaptığını düşünüyorum - ancak bbmle paketinde AICctab kullanan modelleri karşılaştırdığımda etkileşimi içeren model en iyisiydi.
Ben hemen hemen benim veri kümesini yeniden bazı R komut dosyası dahil. Değişkenler aşağıdaki gibidir:
d = Jülyen tarihi, df = Jülyen tarihi (faktör olarak), d.sq = df kare (arılar yaz aylarında artar, sonra artar), st = yer, s.bee = arı sayısı, tmt = tedavi, lu = arazi kullanımı tipi, hab = çevre peyzajdaki yarı doğal habitatın yüzdesi, ba = sınır alanı yuvarlak alanları.
İyi bir model uyumu (alternatif hata dağılımları, farklı model türleri vb.) Nasıl elde edebileceğime dair herhangi bir öneri çok minnetle alınır!
Teşekkür ederim.
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