在ggplot2中添加趋势线/箱线图(按组)

7

我有40个学科,分为两组,在15周内进行,其中有一些被测量的变量(Y)。

我希望有一个图表,其中:x轴表示时间,y轴表示T,每条线代表一个学科,颜色代表不同的组别。

我发现可以这样实现:

TIME <- paste("week",5:20)
ID <- 1:40
GROUP <- sample(c("a","b"),length(ID), replace = T)
group.id <- data.frame(GROUP, ID)
a <- expand.grid(TIME, ID)
colnames(a) <-c("TIME", "ID")
group.id.time <- merge(a, group.id)
Y <- rnorm(dim(group.id.time)[1], mean = ifelse(group.id.time$GROUP =="a",1,3) )
DATA <- cbind(group.id.time, Y)
qplot(data = DATA,
        x=TIME, y=Y, 
        group=ID,       
        geom = c("line"),colour = GROUP) 

但是现在我希望增加一些内容来展示两个组之间的差异(例如,每个组的趋势线,并带有一些CI阴影线)- 怎样才能实现呢?

我记得曾经看过ggplot2可以(轻松地)通过geom_smooth完成这项任务,但我不知道如何使其工作。

此外,我想也许可以将这些线条像盒须图那样呈现出来(每个组都有一个线条,表示不同的分位数和离群值等),但我想回答第一个问题将有助于我解决第二个问题。

谢谢。

1个回答

18

谢谢rcs。我如何将阴影SE更改为95%,而不是68%? - Tal Galili
我想指出的是,默认的平滑间隔(在我所知道的范围内)并没有考虑到被试者内部存在的自相关性。纵向数据几乎肯定会具有相关结构。我真的很喜欢这种类型的图。 - Ian Fellows
您可以在stat_smooth中使用level(默认为0.95):p+geom_smooth(level=0.95, aes(group=GROUP)) - rcs
太好了,谢谢!最后一个问题 - 你在哪里找到这些参数的? - Tal Galili
2
在相应的统计手册页面中(geom_smooth默认使用stat_smooth)。http://had.co.nz/ggplot2/stat_smooth.html - rcs
谢谢rcs!我可能弄错了,我以为geom_smooth()的默认置信区间设置为68%(+/- 1 sd)。如果您没有为geom_smooth()指定级别,它是否只是继承了它隐式调用的stat_smooth()的默认级别(即95%)? - briandk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接