我想使用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)
以上,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)
这是我想要的,但不使用上面的笨拙方法。 我怎样才能以更明智的方式做到这一点?
答案 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)