1

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 轴上的因子顺序遵循因子水平的顺序。现在,我希望级别的顺序与随机效应参数的大小相对应。我能想到的最好办法是在估计模型使用随机效应参数重新排序因子水平,重新排序因子并再次估计模型。至少可以说这很笨拙,但是我无法通过 plot 方法中的一些参数来完成此操作(我对 lattice 不是很熟悉)。

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)

在此处输入图像描述

这就是我想要的,但没有使用上面笨拙的方法。我怎样才能以更明智的方式做到这一点?

4

1 回答 1

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)
于 2014-01-03T11:46:56.357 回答