Если у вас есть два набора данных, которые вы хотите построить на одном графике, есть ли способ получить доверительные интервалы только для одного из наборов данных, а не для другого? например, регрессии обнаруживаются только для группы данных A, но не B, но вы все же хотите визуально отображать данные для A & B на том же графике с доверительными интервалами вокруг значительной группы A.Доверительные интервалы для ggplot
0
A
ответ
3
Вы можете выборочно выбирать, какие данные нужно передать регрессионному плоттеру.
Рассмотрим следующий пример:
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")
Отлично! Спасибо! – Raven