I am looking for a curve fitting method that provides upper and lower bounds confidence intervals for the fitted curve which is illustrated as figure below. Assume that the red solid curve is the fitted curve that could be obtained by ordinary curve fitting tools. However, such curve somehow predicts the expected values. I am looking for the dashed curves that are upper and lower bounds for the fitted curve. Note that my data have heteroscedasticity properties. Any help is much appreciated. enter image description here

  • 2
    $\begingroup$ I think the only methods to do this that will work for any estimator of the original curve are generic methods for computing confidence bounds, such as bootstrapping. Usually, one uses a method specific to the curve estimator. $\endgroup$ Commented Aug 9, 2016 at 5:47

1 Answer 1


You can use the geom_smooth() function of the ggplot2 library in R.

Here is an example:

x = seq(0, 100, by=0.5)
y = sqrt(x)
y = y + rnorm(n = length(y),mean = 0,sd = 3)
df = data.frame(cbind(x,y))
ggplot(data = df, aes(x = x,y = y)) + geom_smooth()

This is the output:

enter image description here

geom_smooth calls a curve fitting method called loess, which does local regression. With the default options, for every x, it considers a neighborhood containing 75% of the data points and fits a quadratic using weighted least squares. It assumes the errors are normally distributed and computes confidence intervals as described in pages 44-46 of http://www.netlib.org/a/cloess.pdf

Here is the documentation for loess: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/loess.html

  • 3
    $\begingroup$ Telling us about the math behind the geom_smooth() function would enhance your answer. $\endgroup$ Commented Aug 9, 2016 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.