使用glmer预测新数据是固定EFCT的光栅堆栈的位置
我已经在使用glmer预测新数据是固定EFCT的光栅堆栈的位置,r,raster,glm,lme4,R,Raster,Glm,Lme4,我已经在glmer中构建了模型,并希望在表示模型中固定效应的光栅堆栈上预测这些模型。我的glmer型号为: m1<-glmer(Severity ~ x1 + x2 + x3 + (1 | Year) + (1 | Ecoregion), family=binomial( logit )) 你的问题很简单,没有说明你遇到了什么麻烦。这似乎是“开箱即用”的方法,但在你的情况下可能不行。有关选项,请参见?光栅::预测 library(raster) # example data. Se
glmer
中构建了模型,并希望在表示模型中固定效应的光栅堆栈上预测这些模型。我的glmer
型号为:
m1<-glmer(Severity ~ x1 + x2 + x3 + (1 | Year) + (1 | Ecoregion), family=binomial( logit ))
你的问题很简单,没有说明你遇到了什么麻烦。这似乎是“开箱即用”的方法,但在你的情况下可能不行。有关选项,请参见?光栅::预测
library(raster)
# example data. See ?raster::predict
logo <- brick(system.file("external/rlogo.grd", package="raster"))
p <- matrix(c(48, 48, 48, 53, 50, 46, 54, 70, 84, 85, 74, 84, 95, 85,
66, 42, 26, 4, 19, 17, 7, 14, 26, 29, 39, 45, 51, 56, 46, 38, 31,
22, 34, 60, 70, 73, 63, 46, 43, 28), ncol=2)
a <- matrix(c(22, 33, 64, 85, 92, 94, 59, 27, 30, 64, 60, 33, 31, 9,
99, 67, 15, 5, 4, 30, 8, 37, 42, 27, 19, 69, 60, 73, 3, 5, 21,
37, 52, 70, 74, 9, 13, 4, 17, 47), ncol=2)
xy <- rbind(cbind(1, p), cbind(0, a))
v <- data.frame(cbind(pa=xy[,1], extract(logo, xy[,2:3])))
v$Year <- sample(2000:2001, nrow(v), replace=TRUE)
library(lme4)
m <- lmer(pa ~ red + blue + (1 | Year), data=v)
# here adding Year as a constant, as it is not a variable (RasterLayer) in the RasterStack object
x <- predict(logo, m, const=(data.frame(Year=2000)))
库(光栅)
#示例数据。见?光栅::预测
logo如果没有随机效果,只需在predict
调用中使用re.form=~0
即可在总体级别进行预测:
x <- predict(logo, m, re.form=~0)
xpredict.merMod
获取数据帧并返回向量。你能举一个可重复的例子吗?我不太熟悉光栅堆栈
s;也许其他人可以告诉你如何来回转换。PS:你使用glmer
而不是lmer
(因为你没有family
参数,所有glmer
的最新版本都应该给你一个警告)你可以用作为.data.frame
来转换光栅堆栈,但对于非常大的光栅数据集,这可能不是一个好方法。在这种情况下,使用graster::predict
(参见下面的答案)更好(但有时更复杂一些),我已经更新了我的问题。问题是在没有随机效应层的情况下使用预测随机效应模型。两个答案都适用于我的数据,这正是我想要的。我猜接下来会出现一个问题,即预测中不包括随机效应是否会显著影响结果图/预测。我知道这可能是一个不同的问题。但是我很感激你的想法…但是如果你只想使用两个随机效应中的一个。例如,在我的例子中,如果我想在预测中使用“生态区域”随机效应,而不是“年”,我将如何配置re.form
参数?我已经尝试过了,但是re.form=~ecoregion
不起作用,而re.form=(~1 | ecoregion)
起作用。然而,我在glmer
中的随机效果配置是这样的…(0+x1 | ecoregion)+(1 | ecoregion)
。考虑到“ecoregion”中的级别是因素,我应该说~1 | ecoregion
。如果使用re.form=NULL
(其默认设置),您可以对所有随机效应设置条件。(如果你有一个更详细的问题,你可能想发布一个新的问题…re.form=NULL
将起作用,就像上面在这个特殊情况下解释的那样,我只想使用两个随机效应中的一个..两者都是按照上面解释的方式构造的..在这种情况下,我想使用“生态区域”随机效应,而不是“年”。。
x <- predict(logo, m, re.form=~0)