如何预测R中具有随机效应的gam模型?

如何预测R中具有随机效应的gam模型?,r,plotly,predict,gam,random-effects,R,Plotly,Predict,Gam,Random Effects,我正致力于预测具有随机效应的gam模型,通过plot\u ly生成三维曲面图 这是我的密码 x <- runif(100) y <- runif(100) z <- x^2 + y + rnorm(100) r <- rep(1,times=100) # random effect r[51:100] <- 2 # replace 1 into 2, making two groups df <- data.frame(x, y, z, r) gam_fit

我正致力于预测具有随机效应的
gam
模型,通过
plot\u ly
生成三维曲面图

这是我的密码

x <- runif(100)
y <- runif(100)
z <- x^2 + y + rnorm(100)
r <- rep(1,times=100) # random effect
r[51:100] <- 2 # replace 1 into 2, making two groups
df <- data.frame(x, y, z, r)

gam_fit <- gam(z ~ s(x) + s(y) + s(r,bs="re"), data = df) # fit

#create matrix data for `add_surface` function in `plot_ly`
newx <- seq(0, 1, len=20)
newy <- seq(0, 1, len=30)
newxy <- expand.grid(x = newx, y = newy)
z <- matrix(predict(gam_fit, newdata = newxy), 20, 30) # predict data as matrix
多亏了前面的答案,我确信上述代码不会产生随机效应,如中所示


如何预测具有随机效应的gam模型?

假设您希望曲面以随机效应为条件(但不是针对特定水平的随机效应),有两种方法

第一种方法是为随机效应提供一个级别,但使用
exclude
参数
predict.gam()
将该项从预测值中排除。第二种方法是再次使用
exclude
,但这次不要为随机效应提供任何数据,而是停止
predict.gam()
使用参数
newdata.guaranged=TRUE
检查
newdata

备选案文1:
newxy1非常感谢您!
Error in model.frame.default(ff, data = newdata, na.action = na.act) : 
   variable lengths differ (found for 'r')
In addition: Warning message:
In predict.gam(gam_fit, newdata = newxy) :
  not all required variables have been supplied in  newdata!
> all.equal(z1, z2)
[1] TRUE
expand.grid(x = newx, y = newy,
            r = with(df, factor(2, levels = levels(r))))