график lmer результат в граненом ggplot

Я анализирую некоторые данные испытаний лекарств с повторными измерениями, и я не уверен, как построить результаты lmer при использовании фасетных ggplots. Я сделал начальный график отдельных уклонов из основного набора данных, но я делаю анализ lmer отдельно по полу.

Используя общедоступные данные, в которых всего 2 группы лечения по сравнению с четырьмя, которые у меня есть, это воспроизводимый пример ниже. Он использует пакеты reshape2, lme4 и ggplot2.

CatAnx <- read.fwf(file=("http://www.stat.ufl.edu/~winner/data/cats_anxiety1.dat"),
               widths=c(-6,2,-5,3,-5,3,-7,1,-7,1,-7,1,-7,1,-7,1,-6,2,-6,2,-6,2,-6,2,-6,2))
colnames(CatAnx) <- c('ID','Weight','Age_Months','Gender','Environment','Origin','Treatment','Result','EmoTime1','EmoTime2',
                  'EmoTime3','EmoTime4','EmoTime5')
library("reshape2")
CatAnxRM <- melt(CatAnx, id.vars=c("ID", "Gender", "Treatment"), measure.vars=c("EmoTime1", "EmoTime2", "EmoTime3",
                                                                            "EmoTime4", "EmoTime5"))
CatAnxRM$Sex <- with(CatAnxRM, ifelse(Gender==1, "Neut Female", ifelse(Gender==2, "Neut Male", "Whole Female")))
CatAnxRM$Time <- with(CatAnxRM, ifelse(variable=="EmoTime1", 1, ifelse(variable=="EmoTime2", 2, ifelse(variable=="EmoTime3", 3,
                                  ifelse(variable=="EmoTime4", 4,5)))))
CatAnxRM.Male <- subset(CatAnxRM, Gender=="2")
library("lme4")
Male.lmer <- lmer(value ~ Treatment * Time + (Time + 1|ID), data=CatAnxRM.Male)
library("ggplot2")
AnxScores<-ggplot(CatAnxRM, aes(Time, value, colour=Sex))+
geom_line(aes(group = ID))+
labs(x="Time Anxiety Measured", y="Anxiety Score", title="Effect of Zylkene on Anxiety")+ 
facet_grid(. ~ Treatment)
AnxScores

Информация о наборе данных находится здесь.

Как мне построить правильную итоговую строку из lmer в обоих аспектах, которые различаются на основе Treatment?

В моем примере из реальной жизни я также буду анализировать самок, поэтому для каждой грани будет два набора линий.


person Michelle    schedule 26.04.2015    source источник


Ответы (2)


Создайте фрейм данных (например, lines.df) с переменными перехвата (например, int) и наклона (slo), где каждая строка df соответствует одному аспекту, а затем нанесите поверх:

+ geom_abline(aes(intercept = int, slope = slo), data = lines.df)
person QuishSwash    schedule 27.04.2015
comment
Поскольку у меня будет две строки на фасет, нужно ли мне добавить индикатор пола к lines.df, чтобы я мог получить правильное количество линий на фасет? - person Michelle; 27.04.2015
comment
Вы можете добавить sex к lines.df и иметь две строки для каждого аспекта с одним полом для каждого и добавить, например, colour=sex из linetype=sex в aes или добавьте второй фрейм данных и вызовите его тоже с дополнительной строкой кода - person QuishSwash; 27.04.2015
comment
Я получаю все четыре строки для печати по каждому аспекту, как мне указать ggplot, какую строку в lines.df следует рисовать по каждому аспекту? Это четыре строки, а не две, потому что я реализовал их в своей реальной работе, а не в примере. - person Michelle; 27.04.2015
comment
Думаю, я исправил это, добавив значение Обработки, и теперь он знает, в каком аспекте рисовать каждую линию. - person Michelle; 27.04.2015

Не совсем понятно, что вы имеете в виду под «правильной итоговой строкой», но я адаптировал код в этот ответ на ваши данные. Это тот результат, который вам нужен?

newdata <- with(CatAnxRM.Male, expand.grid(Treatment=unique(Treatment),
                                           Time=unique(Time), Sex = unique(Sex),
                                           ID=unique(ID)))

newdata$pred <- predict(Male.lmer, newdata)

p <- ggplot(newdata, aes(x=Time, y=pred, colour=Sex, group=ID))
p + geom_line() + ggtitle("Varying Slopes") + 
    facet_grid(. ~ Treatment)

И получите следующий вывод

График со случайным уклоном

person r.bot    schedule 26.04.2015
comment
Привет, r.bot, то, что мне нужно, - это график исходных граней, со средней линией результатов lmer, нанесенной на каждый грань. Я пытаюсь визуализировать средние показатели по группе (секс с лечением) поверх необработанных линий, чтобы получить представление об общих изменениях. Таким образом, если бы это была регрессия МНК, перекрытие было бы линией наилучшего соответствия поверх отдельных наклонов. - person Michelle; 26.04.2015