lsmeans::lsmip: 如何正确绘制连续值?
lsmeans::lsmip: how to plot continuous values correctly?
lsmeans
包中的 lsmip()
命令似乎将 x 轴上的连续预测变量视为分类预测变量。
如果我的连续预测变量以离散但不均匀的间隔进行观察(例如当您从燕麦数据中删除 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 轴设置为 space nitro 的值以适合连续变量的比例?意思是在第一个图中为 0.2 跳过 space,或者在第二个图中将 0.45、0.46 的点聚集在一起?
您可以将绘制的数据保存在数据框中,然后根据需要绘制这些结果。在您的示例中:
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)
lsmeans
包中的 lsmip()
命令似乎将 x 轴上的连续预测变量视为分类预测变量。
如果我的连续预测变量以离散但不均匀的间隔进行观察(例如当您从燕麦数据中删除 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 轴设置为 space nitro 的值以适合连续变量的比例?意思是在第一个图中为 0.2 跳过 space,或者在第二个图中将 0.45、0.46 的点聚集在一起?
您可以将绘制的数据保存在数据框中,然后根据需要绘制这些结果。在您的示例中:
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)