我想拟合一个严格递增的平滑函数。数据可以生成如下
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 给出负导数。如果有一种方法可以强制执行正导数约束,那就更好了