【发布时间】:2017-09-03 06:16:12
【问题描述】:
这是一个有点长的问题,所以感谢您的耐心。
这是我的数据
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 的二次函数。但正如您所看到的,我得到以下没有任何二次曲线的图。谁能告诉我我在这里做错了什么?
【问题讨论】:
-
是的。我有。
-
我刚刚修改了我的问题以反映我过去使用 merTools 预测的内容
-
这让我有点困惑。如果我从 mod 中提取 x5 的系数并自己绘制二次方,是否可以解释其他预测变量保持不变的事实。对不起,我的数学/统计有点弱。因此混乱。
-
您是否可以将此作为解决方案发布,以便我可以标记它,看看我是否做对了。谢谢
-
plot(data$x5, 49.59507 + data$x5 * -1.09963 + data$x5^2 * -1.28696)
标签: r regression lme4 quadratic