Я безуспешно пытаюсь визуализировать результаты объекта nlme
. Когда я делаю это с объектом lmer
, создается правильный график. Моя цель — использовать nlme
и визуализировать подогнанную кривую роста для каждого человека с помощью ggplot2
. Функция predict()
работает по-разному с объектами nlme
и lmer
.
модель:
#AR1 with REML
autoregressive <- lme(NPI ~ time,
data = data,
random = ~time|patient,
method = "REML",
na.action = "na.omit",
control = list(maxlter=5000, opt="optim"),
correlation = corAR1())
nlme
попытка визуализации:
data <- na.omit(data)
data$patient <- factor(data$patient,
levels = 1:23)
ggplot(data, aes(x=time, y=NPI, colour=factor(patient))) +
geom_point(size=1) +
#facet_wrap(~patient) +
geom_line(aes(y = predict(autoregressive,
level = 1)), size = 1)
когда я использую:
data$fit<-fitted(autoregressive, level = 1)
geom_line(aes(y = fitted(autoregressive), group = patient))
он возвращает одинаковые подогнанные значения для каждого человека, поэтому ggplot создает одинаковую кривую роста для каждого. Выполнение test <-data.frame(ranef(autoregressive, level=1))
возвращает различные точки пересечения и наклоны в зависимости от идентификатора пациента. Интересно, что когда я сопоставляю модель с lmer
и запускаю приведенный ниже код, он возвращает правильный график. Почему predict()
работает по-разному с объектами nlme
и lmer
?
timeREML <- lmer(NPI ~ time + (time | patient),
data = data,
REML=T, na.action=na.omit)
ggplot(data, aes(x = time, y = NPI, colour = factor(patient))) +
geom_point(size=3) +
#facet_wrap(~patient) +
geom_line(aes(y = predict(timeREML)))
geom_line(aes(y = fitted(autoregressive), group = id))
или начать с добавленияdata$fit<-fitted(autoregressive)
- person Niek   schedule 13.04.2017fitted()
, но он возвращает одинаковые подходящие значения для каждого человека. Я обновил свой вопрос выше. Спасибо! - person Santi Allende   schedule 13.04.2017