我正在尝试创建一个栅格,并使用glmmTMB对模型进行预测。这是基于一个模型,和一个光栅堆栈。我将光栅堆栈转换为数据帧,因为我认为这是函数predict.glmmTMB运行的必要条件。
模型
model6 <- glmmTMB(Used~scale(Road_density)+scale(nonforprop)+scale(devprop)+
scale(forprop)+scale(nonfordist_cap3000)+scale(fordist_cap3000)+
scale(agridist_cap3000)+scale(devdist_cap3000)+(1|animal_ID),
data=rasterpoints3,na.action=na.omit,family=binomial(link="logit"))包含要预测的栅格堆栈值的数据帧。
predstack <- as.data.frame(stack2)误差
glmmTMB:::predict.glmmTMB(model6,predstack,re.form=NA)eval中的错误(predvars,data,env):找不到对象'animal_ID‘
我希望更有经验的人能帮我解决这个问题。animal_ID是我的glmmTMB对象模型6中的随机拦截。我使用这个包,而不是例如raster::predict,因为它应该能够处理随机效应。据我所知,re.form=NA应该处理这个问题吗?
发布于 2022-06-23 16:25:29
关于这一点有一个开放的问题,但是解决方法应该很简单:定义
predstack$animal_ID <- NA数据中必须存在随机效应变量,但没有使用它。(由于glmmTMB的内部结构,在包级别上修复这个问题并不容易。)
发布于 2022-06-23 20:07:01
考虑到本的回答,这也应该适用于raster或terra包:
p <- predict(stack2, model6, const=data.frame(animal_ID=NA), re.form=NA)(但在没有例子的情况下,我无法检查它)
https://stackoverflow.com/questions/72733103
复制相似问题