Я строю взаимодействие фиксированных эффектов в модели смешанных эффектов на основе объекта lmer()
. Для этого я прогнозирую новые значения на основе моей модели. Это прекрасно работает, за исключением того, что из-за того, как я их генерирую, прогнозы растягиваются на весь возможный диапазон оси X. Теперь я могу ограничить предсказанные линии регрессии диапазоном их соответствующей переменной группировки, определив new.dat на основе al oop (изменить значения max и min в зависимости от переменной группировки "Variety") et c., Но - Есть ли более элегантное / простое решение для построения этого? Я что-то упускаю (я относительно новичок в R)?
Данные:
library(datasets)
data("Oats")
# manipulate data so it resembles more my actual data
Oats <- Oats %>%
filter((Variety == "Golden Rain" & nitro>=0.2) | (Variety == "Marvellous" & nitro <=0.4) | (Variety == "Victory" & nitro<=0.4 & nitro>=0.2)) #%>%
Модель и график:
mod2 <- lmer(yield ~ nitro * Variety + (1| Variety), data=Oats)
new.dat <- data.frame(nitro=seq(min(Oats$nitro),max(Oats$nitro), length.out = 48), Variety= Oats$Variety)
new.dat$pred<-predict(mod2,newdata=new.dat,re.form=~0)
ggplot(data=Oats, aes(x=nitro, y=yield, col = Variety)) +
geom_point() +
geom_line(data=new.dat, aes(y=pred)) +
geom_point(data=new.dat, aes(y=pred))
Большое спасибо за каждый намек!