厳密に増加する滑らかな関数を当てはめたいと思います。データは以下のように生成できます
set.seed(100)
x <- sort( runif(100) )
y <- sort( runif(100)^2 )
y[sample.int(100,10)] <- runif(10)
plot(x, y)
loessMod <- loess("y~x", data=data.frame(x,y), span=3)
lines(x, predict(loessMod, x), col="red")
min( diff(loessMod$fitted) )
私が見つけた唯一の方法は、レスでスパンで遊ぶことです。Ex span=2 または 3 は機能しますが、0.5 では負の導関数が得られます。正の微分制約を強制する方法があればもっと良かったのですが