ggplot 的置信区间

Confidence intervals for ggplot

如果您有两组数据要绘制在同一张图上,有没有什么方法可以只获取其中一个数据集的置信区间,而不获取另一个数据集的置信区间?例如,回归仅对数据组 A 显示显着,但对数据组 B 不显着,但您仍希望在同一图表中直观地描述 A 和 B 的数据,并且仅在显着组 A 周围设置置信区间。

您可以有选择地选择要传递给回归绘图仪的数据。

考虑这个例子:

set.seed(10)

#Make sample data
df <- data.frame(
  group=rep(c("A","B"), each=10),
  X = rep(1:10, 2))
df$Y <- 2*df$X + runif(20, -20, 20)  #Create y values with lots of noise

#Reduce the noise for group A
df[df$group == "A", "Y"] <- 2*df[df$group == "A", "X"] + rnorm(10)

#Compare regression p-values
coef(summary(lm(Y ~ X, data=df[df$group == "A", ])))[, 4] #p < 0.05 for group A
# (Intercept)            X 
#1.577943e-01 5.411004e-09 

coef(summary(lm(Y ~ X, data=df[df$group == "B", ])))[, 4] #p > 0.05 for group B
#(Intercept)           X 
#  0.7338232   0.1309030

#Graph all points, coloring by group.  Add a regression line for group A only.
ggplot(df, aes(x=X, y=Y, colour= group)) + theme_bw() + 
   geom_point(size=2.5) + 
   geom_smooth(data = df[df$group == "A",], method="lm")