You may want to use weighted loess, as in:
a = data.frame(x=1:10, y=c(2,5,3,4,5,9,7,8,9,10))
fit1 = loess(y~x, a) # unweighted loess fit
fit2 = loess(y~x, a, weights = c(0.1,1,0.1,0.1,0.1,0.1,1,0.1,0.1,0.1))
plot(1:10, predict(fit1), col="blue", type="l", ylim=c(1,10)) # unweighted fit
lines(1:10, predict(fit3), col="darkgreen") # weighted fit
points(y~x, a, col="brown", type="b") # all points
points(y~x, a[c(2,7),], col="red") # points of high importance
One issue with this approach is that weighted regression assumes that weights are known exactly, while this is very rarely the case. Some ideas on estimating weights for the case of weighted linear regression can be found here. Quite often however even a vague idea on differences in weights may work better than nothing. For example, here even though there was no guarantee that the loess fitted line will go exactly through the "important" points, this was very nearly the case with a rather arbitrary choice of weights.
Best Answer
R package
cobs
allows you to fit shape-constrained splines, including monotonically increasing ones; syntax would be something like:And R packages ConSpline, scar, scam and cgam offer also alternative options to fit shape-constrained splines, including monotonically increasing ones....