1

包中的lsmip()命令lsmeans似乎将 x 轴上的连续预测变量视为分类预测变量。

如果我以离散但不均匀的间隔从我的连续预测变量中观察到(例如,当您从 Oats 数据中删除 0.2 水平的硝基时),lsmip 无论如何都会以均匀的间隔绘制它们。

data("Oats", package = "nlme")
Oats.lmer2sub <- lmer(log(yield) ~ Variety + poly(nitro,2)
               + (1|Block/Variety),  data = subset(Oats, nitro!=0.2))
lsmip(Oats.lmer2sub, Variety ~ nitro, ylab = "Predicted log(yield)", cov.reduce=FALSE)

在此处输入图像描述

如果我想在实际观察数据的硝基水平上显示模型预测,这对我来说似乎很重要。从理论上讲,我应该能够显示任何硝基水平的预测值。

lsmip(Oats.lmer2sub, Variety ~ nitro, ylab = "Predicted log(yield)", at=list(nitro=c(0, 0.2, 0.4, 0.45, 0.46,  0.6)))

在此处输入图像描述

有没有办法设置 x 轴以将硝基的值间隔到适合连续变量的比例?意思是在第一张图中跳过 0.2 的空格,或者在第二张图中将 0.45、0.46 的点聚集在一起?

4

1 回答 1

1

您可以将绘制的数据保存在数据框中,然后根据需要绘制这些结果。在您的示例中:

plotdf <- lsmip(Oats.lmer2sub, Variety ~ nitro, 
          at=list(nitro=c(0, 0.2, 0.4, 0.45, 0.46,  0.6)), 
          plotit = FALSE)

library(lattice)
xyplot(lsmean ~ nitro, groups = ~Variety, 
       type = "o", ylab = "Predicted log(yield)", data = plotdf)

结果图

于 2017-04-08T03:38:05.447 回答