Один из подходов к этой проблеме - использовать инструменты обработки данных в пакете merTools
, чтобы создать data.frame, который имитирует отношения, которые вы хотите исследовать. Вот пример использования данных VerbAgg
из пакета lme4
, но вы должны быть в состоянии легко перенести его в свои данные и модель.
data(VerbAgg)
fmVA <- glmer(r2 ~ (Anger + Gender + btype + situ)^2 +
(1|id) + (1|item), family = binomial,
data = VerbAgg)
Мы приготовительные данные с помощью функции draw
в merTools
. Здесь мы получаем среднее наблюдение из кадра модели. Затем мы получаем wiggle
данные , расширяя размер кадра данных, чтобы включить то же самое повторение наблюдения , но с различными значениями переменной, заданными параметром . Здесь мы разворачиваем набор данных ко всем значениям btype
, situ
, и Anger
впоследствии.
# Select the average case
newData <- draw(fmVA, type = "average")
newData <- wiggle(newData, var = "btype", values = unique(VerbAgg$btype))
newData <- wiggle(newData, var = "situ", values = unique(VerbAgg$situ))
newData <- wiggle(newData, var = "Anger", values = unique(VerbAgg$Anger))
head(newData, 10)
r2 Anger Gender btype situ id item
1 N 20 F curse other 5 S3WantCurse
2 N 20 F scold other 5 S3WantCurse
3 N 20 F shout other 5 S3WantCurse
4 N 20 F curse self 5 S3WantCurse
5 N 20 F scold self 5 S3WantCurse
6 N 20 F shout self 5 S3WantCurse
7 N 11 F curse other 5 S3WantCurse
8 N 11 F scold other 5 S3WantCurse
9 N 11 F shout other 5 S3WantCurse
10 N 11 F curse self 5 S3WantCurse
В следующем шаге мы просто передать этот новый набор данных predictInterval
для того, чтобы генерировать предсказания для этих гипотетических и мы связываем эти предсказания с исходными данными.
plotdf <- predictInterval(fmVA, newdata = newData, type = "probability",
stat = "median", n.sims = 1000)
plotdf <- cbind(plotdf, newData)
Тогда мы наносим предсказанные значения по отношению к непрерывной переменной, Anger
, и фаской и группы на двух категориальных переменных situ
и btype
соответственно.
ggplot(plotdf, aes(y = fit, x = Anger, color = btype, group = btype)) +
geom_point() + geom_smooth(aes(color = btype), method = "lm") +
facet_wrap(~situ) + theme_bw() +
labs(y = "Predicted Probability")
Который производит следующий участок подогнанных значений:
Что вы пробовали? Кроме того, вы можете предоставить [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? Даммические данные в порядке. –