lsmeans::lsmip: как правильно построить непрерывные значения?
lsmip()
команда в lsmeans
Пакет, кажется, рассматривает непрерывные предикторы на оси X как категориальные предикторы.
Если у меня есть наблюдения от моих непрерывных предикторов с дискретными, но неравномерными интервалами (например, когда вы удаляете уровень нитро 0,2 из данных Oats), 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)))
Есть ли способ установить ось х для размещения значений нитро в масштабе, подходящем для непрерывной переменной? Что означает пропустить пробел для 0.2 на первом графике или объединить точки 0,45, 0,46 на втором графике?
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)