这是一个很长的问题,所以感谢与我的关系。
这是我的数据
https://www.dropbox.com/s/jo22d68a8vxwg63/data.csv?dl=0
我构建了一个混合效果模型
library(lme4)
mod <- lmer(sqrt(y) ~ x1 + I(x1^2) + x2 + I(x2^2) + x3 + I(x3^2) + x4 + I(x4^2) + x5 + I(x5^2) +
x6 + I(x6^2) + x7 + I(x7^2) + x8 + I(x8^2) + (1|loc) + (1|year), data = data)
所有预测变量都是标准化的,我很想知道y
如何随x5
的变化而变化,同时保持其他变量的平均值(等于0,因为所有变量都是标准化的)。
我就是这样做的。
# make all predictors except x5 equal to zero
data$x1<-0
data$x2<-0
data$x3<-0
data$x4<-0
data$x6<-0
data$x7<-0
data$x8<-0
# Use the predict function
library(merTools)
fitted <- predictInterval(merMod = mod, newdata = data, level = 0.95, n.sims = 1000,stat = "median",include.resid.var = TRUE)
现在我想将拟合图绘制为x5
的二次函数。我这样做:
i<-order(data$x5)
plot(data$x5[i],fitted$fit[i],type="l")
我希望这会产生y
作为x5
的二次函数的图。但正如您所看到的,我得到的是下面没有任何二次曲线的图。谁能告诉我这里做错了什么?