我在ggplot2中显示我的lmer模型的结果时遇到了一些困难。我特别感兴趣的是在观察数据之上显示预测的回归线。我对这个(语音)数据运行的模型11聚物这里是下面:使用ggplot2覆盖混合效果模型结果
lmer.declination <- lmer(zlogF0_m60~Center.syll*Tone + (1|Trial) + (1+Tone|Speaker) + (1|Utterance.num), data=data)
这里的因变量是基频(F0),标准化和跨音节的中间60%的平均值。固定效果是音节数(Center.syll),从句子末尾向后计数(例如-2是句子中最后一个音节)。这里的数据来自词汇音调语言,所以音调(所有低音/ 1 /,所有中音/ 3 /和所有高音/ 4 /)都是离散的固定效果。实验问题是F0是否落在这种语言的句子中,如果是这样,多少,以及语调是否重要。对我来说想想一种在这里生产玩具数据集的方法有点困难,但是可以下载这些数据(文件为437K)here。
为了提取模型拟合,我使用了效果包并将输出转换为数据帧。
ex <- Effect(c("Center.syll","Tone"),lmer.declination)
ex.df <- as.data.frame(ex)
我绘制使用GGPLOT2中的数据,用下面的代码:
t.plot <- ggplot(data, aes(factor(Center.syll), zlogF0_m60, group=Tone, color=Tone)) + stat_summary(fun.data = mean_cl_boot, geom = "smooth") + ylab("Normalized log(F0)") + xlab("Syllable number") + ggtitle("F0 change across utterances with identical level tones, medial 60% of vowel") + geom_pointrange(data=ex.df, mapping=aes(x=Center.syll, y=fit, ymin=lower, ymax=upper)) + theme_bw()
t.plot
这将产生以下情节:
Predicted trajectories and observed trajectories
预测值出现的左观察到的数据,不覆盖数据本身。无论我如何尝试,我都无法让它们在观察到的数据上重叠。理想情况下,我希望绘制一条线而不是一个点范围,但是当我尝试使用geom_line时,默认情况下线是从一个点的上界连接到下一个点的下界(而不是中点/中点)。感谢您的帮助。
谢谢你的评论,安德鲁。按照您的建议,我可以很好地工作。我没有意识到,通过分解原始数据中的参数(但不是拟合的数据),我将无法重叠绘图。我想你可能错过了我包括我的数据集的事实(通过我的文章第二段中的链接)。再次感谢。 –
对不起!我编辑了答案,指出了这一点。 –