创建了GLMM模型,并绘制了每个因素的预测概率。但是,我无法理解如何使用BootMer函数创建置信区间。我一直收到不能从非整数先验权重模拟的错误信息。我希望有人能帮上忙?提前谢谢。
glmm1 <- glmer(cbind(Total_Dead, Total_Collected - Total_Dead) ~
Species + timeseries + (1|Location),
data = dat, family= "binomial")
dat$timeseries <- dat$Study_Date - 1998
plot(predict(glmm1, data.frame(Species="An. Arab", timeseries= dat$timeseries),
type="response", re.form = NA) ~
dat$timeseries, frame=FALSE, bty="n", pch="", xaxt="n", ylim=c(0, 0.5),
ylab="Predicted mortality", xlab="Year",
main = "Predicted mortality by species",
cex.lab=1.6, yaxt="n")
axis(1, at=c(1:17), labels=1999:2015, cex.axis=1.8)
axis(2, las=2, at=seq(0, 1, 0.2), labels=seq(0, 1, 0.2), cex.axis=1.8)
COLS <- c("blue", "red", "purple", "aquamarine3", "orange")
PCH <- c(17, 15, 19, 20, 5)
for(i in 1:length(unique(levels(dat$Species)))){
points((dat$Total_Dead[dat$Species == levels(dat$Species)[i]] /
dat$Total_Collected[dat$Species == levels(dat$Species)[i]]) ~
dat$timeseries[dat$Species == levels(dat$Species)[i]],
pch=PCH[i], col=COLS[i])
lines(predict(glmm1, data.frame(Species=levels(dat$Species)[i],
timeseries = dat$timeseries), type="response",
re.form = NA) ~ dat$timeseries, lty=4, col=COLS[i])
}
bootstrap <- bootMer(x=glmm1, FUN= fixef, nsim=200) 发布于 2016-09-05 06:59:42
出于某种原因,Bootmer在这方面遇到了问题,您必须使用mertools包
library(merTools)
preds <- predictInterval(glmm1, newdata = your.datarame, n.sims = 1000)然后我会使用preds data.frame来绘制,得到的data.frame有拟合,上下限,然后你可以使用geom_ribbon来绘制它,如果你需要更多的帮助,请让我知道。
现在请耐心听我说,您实际上想为您的图形创建一个新的标准化数据集。如果你使用下面的代码,它将会工作:
glmm1 <- glmer(cbind(Total_Dead, Total_Collected - Total_Dead) ~
Species + timeseries + (1|Location),
data = dat,family= "binomial")拟合模型,然后创建新的数据集,这将使每个物种的时间序列从1到16,在您的第一个位置(Akron),请注意,您必须为每个位置执行此操作如果您想要每个位置的图表,您只需将[]之间的数字从1更改为2,直到您的17个位置
new.data <-data.frame(timeseries = rep(1:16, times = 5), Species = rep(unique(dat$Species), each = 16), Location = rep(unique(dat$Location)[1], each = 80))然后预测此类数据集的值和间隔
preds <- predictInterval(glmm1, newdata = new.data, n.sims = 1000)现在将此预测加入到您的new.data中
new.data <- cbind(new.data, preds)最后为每个物种绘制不同的颜色
ggplot(new.data, aes(x = timeseries, y = fit)) + geom_ribbon(aes(ymax=upr, ymin =lwr, fill=Species), alpha = 0.9)+ geom_line(aes(color=Species))如果你不理解某件事,请毫不犹豫地继续询问,目前你的标准错误相当大,所以首先检查一下你是否更喜欢它
ggplot(new.data, aes(x = timeseries, y = fit)) + geom_line(aes(color=Species))https://stackoverflow.com/questions/39322111
复制相似问题