Это немного длинный вопрос, так что спасибо, что выдержали меня.
Вот мои данные
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
. Но, как видите, я получаю следующий график, в котором нет квадратичной кривой. Может ли кто-нибудь сказать мне, что я делаю неправильно здесь?