Как нарисовать доверительные границы, чтобы лучше продемонстрировать доверительный интервал на ggplot2? - PullRequest
0 голосов
/ 29 мая 2018

Этот код рисует линию регрессии, доверительный интервал и интервал прогнозирования.Доверительный интервал окрашен в серый цвет.Мне нужно добавить код, чтобы нарисовать доверительные границы, чтобы лучше продемонстрировать доверительный интервал.

library(ggplot2)
x<-Allele<- c(4,4,5,5,5,7,9,11,11,11,13,14,15,15,16,17,17,19,19,19)
y<-SR<- c(5.5,5.6,5.7,6,6.1,8,8,12,12.1,13,14,14,16,16.5,17,17,
17.1,18,19,20)
D3S = data.frame(Allele, SR)
Mod <- lm(SR ~ Allele) 
pred.int <- predict(Mod, interval = "prediction")
mydata <- cbind(D3S, pred.int)
# Regression line + confidence interval
p <- ggplot(mydata, aes(Allele, SR)) +
geom_point(size=3) +
stat_smooth(method = lm, color="black")
# Add prediction intervals
myplot= p + geom_line(aes(y = lwr), color = "black", 
linetype = "dashed", size=0.8)+
geom_line(aes(y = upr), color = "black", 
linetype = "dashed", size=0.8)
myplot + theme_bw() + theme(panel.border = element_blank(), 
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), 
axis.line = element_line(colour = "black"))

Like this

1 Ответ

0 голосов
/ 29 мая 2018

У вас почти было это в вашем исходном коде.Повторите прогноз с помощью interval = "confidence" и добавьте эти линии к своему графику.

# Right after you get the prediction intervals:
conf.int <- predict(Mod, interval = "confidence")

# Change the cbind line to this:
mydata <- data.frame(D3S, pred.int, conf.int) # checks names and adds .1 to dupes

# Right after you added prediction interval, do this:
myplot <- myplot + 
  geom_line(aes(y = lwr.1), color="red") + 
  geom_line(aes(y = upr.1), color="red")

Теперь создайте свой последний график, как вы делали раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...