[R] ggplot2: Get the regression line with 95% confidence bands

Daniel Nordlund djnord|und @end|ng |rom gm@||@com
Mon Dec 11 23:27:35 CET 2023


On 12/10/2023 2:50 PM, Rui Barradas wrote:
> Às 22:35 de 10/12/2023, varin sacha via R-help escreveu:
>>
>> Dear R-experts,
>>
>> Here below my R code, as my X-axis is "year", I must be missing one 
>> or more steps! I am trying to get the regression line with the 95% 
>> confidence bands around the regression line. Any help would be 
>> appreciated.
>>
>> Best,
>> S.
>>
>>
>> #############################################
>> library(ggplot2)
>>   df=data.frame(year=factor(c("2012","2015","2018","2022")), 
>> score=c(495,493, 495, 474))
>>   ggplot(df, aes(x=year, y=score)) + geom_point( ) + 
>> geom_smooth(method="lm", formula = score ~ factor(year), data = df) + 
>> labs(title="Standard linear regression for France", y="PISA score in 
>> mathematics") + ylim(470, 500)
>> #############################################
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide 
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> Hello,
>
> I don't see a reason why year should be a factor and the formula in 
> geom_smooth is wrong, it should be y ~ x, the aesthetics envolved.
> It still doesn't plot the CI's though. There's a warning and I am not 
> understanding where it comes from. But the regression line is plotted.
>
>
>
> ggplot(df, aes(x = as.numeric(year), y = score)) +
>   geom_point() +
>   geom_smooth(method = "lm", formula = y ~ x) +
>   labs(
>     title = "Standard linear regression for France",
>     x = "Year",
>     y = "PISA score in mathematics"
>   ) +
>   ylim(470, 500)
> #> Warning message:
> #> In max(ids, na.rm = TRUE) : no non-missing arguments to max; 
> returning -Inf
>
>
>
> Hope this helps,
>
> Rui Barradas
>
>
>
After playing with this for a little while, I realized that the problem 
with plotting the confidence limits is the addition of ylim(470, 500).  
The confidence values are outside the ylim values.  Remove the limits, 
or increase the range, and the confidence curves will plot.

Hope this is helpful,

Dan

-- 
Daniel Nordlund
Port Townsend, WA  USA


-- 
This email has been checked for viruses by Avast antivirus software.
www.avast.com



More information about the R-help mailing list