2014-01-03 4 views
1

Я хочу создать график случайных эффектов, используя метод построения графика для ranef объектов (plot.ranef.lme).упорядочить график случайных эффектов по размеру оценок параметров (используя nlme)

library(nlme) 

x <- Orthodont 
# change factor to unordered for this example 
x$Subject <- factor(x$Subject, ordered=FALSE) 

m <- lme(distance ~ age, x, random = ~ 1 | Subject) 
re <- ranef(m) 
plot(re) 

enter image description here

Выше, порядок фактора на оси у соответствует порядку уровней факторов. Теперь я хочу, чтобы порядок уровней соответствовал размеру параметров случайного эффекта. Лучшее, что я мог придумать, это изменить порядок уровней факторов, используя параметры случайных эффектов после, оценивая модель, изменив порядок и снова оценив модель. Это неудобно, если не сказать больше, но мне не удалось это сделать с помощью некоторых аргументов в методе построения (я не очень хорошо разбираюсь в решетке).

o <- order(re[, 1]) 
x$Subject <- factor(x$Subject, levels=levels(x$Subject)[o]) 
m <- lme(distance ~ age, x, random = ~ 1 | Subject) 
re <- ranef(m) 
plot(re) 

enter image description here

Это то, что я хочу, но без использования неуклюжего подхода выше. Как я могу сделать это более разумно?

ответ

1

Я не думаю, что teher является параметром, который может использоваться для изменения уровня заказа. Вы должны сделать это вручную.

Сказали, что вы можете построить свой собственный dotplot с использованием объекта re и использовать reorder для заказа фактора.

library(lattice) 
dat = data.frame(x= row.names(re),y=re[,attr(re,'effectName')]) 
dotplot(reorder(x,y)~y,data=dat) 

 Смежные вопросы

  • Нет связанных вопросов^_^