按参数估计的大小排序随机效应图(使用nlme)

时间:2014-01-03 10:02:45

标签: r nlme

我想使用ranef个对象(plot.ranef.lme)的绘图方法制作随机效果图。

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

以上,y轴上因子的顺序遵循因子水平的顺序。 现在,我希望级别的顺序与随机效果参数的大小相对应。我能想到的最好的方法是在估算模型后使用随机效应参数重新排序因子水平,重新排序因子并再次估计模型。这至少可以说是笨拙的,但是我无法通过绘图方法中的一些参数来完成这个(我对格子不是很熟悉)。

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 个答案:

答案 0 :(得分: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)