Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用glmer预测新数据是固定EFCT的光栅堆栈的位置_R_Raster_Glm_Lme4 - Fatal编程技术网

使用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) 

x
predict.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)