library(splines) Nit <- c(0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 6, 6, 6) AOB <- c(4.26, 4.15, 4.68, 6.08, 5.87, 6.92, 6.87, 6.25, 6.84, 6.34, 6.56, 6.52, 7.39, 7.38, 7.74, 7.76, 8.14, 7.22) AOBm <- tapply(AOB, Nit, mean) Nitm <- tapply(Nit, Nit, mean) plot(Nit, AOB, xlim=c(0, 6), ylim=c(min(AOB), max(AOB)), pch=19) fitAOB <- lm(AOBm~ns(Nitm, df=2)) xmin <- min(Nit);xmax=max(Nit) lines(seq(xmin, xmax, 0.5), predict(fitAOB, data.frame(Nitm=seq(xmin, xmax, .5)))) fitAOB2 <- loess(AOBm~Nitm, span=1.25) lines(seq(xmin, xmax, 0.5), predict(fitAOB2, data.frame(Nitm=seq(xmin, xmax, .5))), col="red")