Линии точечного графика для линейной модели с использованием stat_smooth - PullRequest
1 голос
/ 04 марта 2020

Мой вопрос довольно простой c, извините, если я упускаю что-то очевидное ..

В любом случае, со следующим кодом:

library(gcookbook)
library(ggplot2)

x <- ggplot(heightweight, aes(x = ageYear, y = heightIn))+
geom_point()+
stat_smooth(method = lm, level = 0.95)

x

Я получаю график:

scatter

Диаграмма отображается хорошо, но с уровнем достоверности 95%, почему так много точек находится за серой границей?

1 Ответ

1 голос
/ 04 марта 2020

Значение se, предоставляемое geom_smooth, является стандартной ошибкой прогноза, а наблюдаемый вами доверительный интервал составляет +/- 1.96 * se прогноза, см. Ниже о том, как его можно рассчитать:

fit = lm(heightIn ~ ageYear,data=heightweight)
newdata = data.frame(ageYear=seq(min(heightweight$ageYear),
max(heightweight$ageYear),by=0.1))
pred = predict(fit,newdata,se=TRUE)
newdata$heightIn = pred$fit
newdata$se = pred$se.fit

ggplot(heightweight, aes(x = ageYear, y = heightIn))+
geom_point()+
geom_line(data=newdata,col="cadetblue")+
geom_ribbon(data=newdata,aes(ymin=heightIn-1.96*se,ymax=heightIn+1.96*se),
alpha=0.2,fill="cadetblue")

enter image description here

Если вы хотите иметь 95% доверительный интервал ваших данных, вы можете попробовать:

ggplot(heightweight, aes(x = ageYear, y = heightIn))+
     geom_point()+
     geom_quantile(quantiles=c(0.05,0.5,0.95))

enter image description here

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