Как построить отдельные траектории модели lme

У меня есть пример данных и модель

x<-rep(seq(0,100,by=1),10)
y<-15+2*rnorm(1010,10,4)*x+rnorm(1010,20,100)
id<-NULL
for (i in 1:10){
  id<-c(id, rep(i,101))}
dtfr<-data.frame(x=x,y=y, id=id)
library(nlme)
with (dtfr, summary(lme((y)~x,random=~1+x|id, na.action=na.omit  )))
model.mx<-with (dtfr, (lme((y)~x,random=~1+x|id, na.action=na.omit  )))
pd<-predict(model.mx, newdata=data.frame(x=0:100),level=0)
with (dtfr, plot(x, y))
lines(0:100,predict(model.mx, newdata=data.frame(x=0:100),level=0), col="darkred", lwd=7)

Как я могу извлечь смоделированные пересечение и наклон каждого отдельного идентификатора и построить отдельные траектории каждого идентификатора?


person ECII    schedule 26.05.2013    source источник
comment
Разве это не то, что вернул coef(model.mx)?   -  person joran    schedule 26.05.2013


Ответы (1)


Не уверен, что вы хотите сделать, потому что все ваши коэффициенты почти идентичны:

> coef(model.mx)
   (Intercept)        x
1     54.88302 19.18001
2     54.88298 19.18000
3     54.88299 19.18000
4     54.88299 19.18000
5     54.88302 19.18001
6     54.88300 19.18000
7     54.88301 19.18000
8     54.88300 19.18000
9     54.88299 19.18000
10    54.88300 19.18000

Возможно, ваши реальные данные дают вам более разные результаты. Если это так, я бы использовал abline внутри вызова mapply:

with (dtfr, plot(x, y))
mapply(abline,a=coef(model.mx)[,1],b=coef(model.mx)[,2], col=1:10)

Вот результат. Поскольку все коэффициенты почти одинаковы, линии наносятся друг на друга. Вы видите только последний. введите здесь описание изображения

person Pierre Lapointe    schedule 26.05.2013
comment
именно тот ответ, который я искал. Спасибо и за подсказку с маппли. - person ECII; 27.05.2013