Я использую модель квантильной регрессии для некоторых данных с одним естественным кубическим сплайном c, который должен быть монотонно убывающим (поскольку он не может физически увеличиваться ни в одной точке). Для начала я использовал функцию ns()
из пакета splines
для достижения этой цели, но быстро обнаружил, что это не сработает (что неудивительно). Итак, я нашел функцию mSpline
из пакета splines2
, которая должна соответствовать монотонным c сплайнам, но она также не работает. Ниже приведен пример двух функций и их сбой на mtcars
.
Как мне достичь своей цели получения монотонно убывающих сплайнов либо с помощью моего подхода, либо с помощью другого подхода?
Бонус указывает, можно ли добавить в модель дополнительные переменные, которые не разделены.
library(quantreg)
mod=rq(mpg~ns(hp,df=3),data=mtcars,tau=0.99)
mod=rq(mpg~mSpline(hp,df=3),data=mtcars,tau=0.99) #monotone
preds=predict(mod)
plot(mtcars$mpg~mtcars$hp)
points(preds~mtcars$hp,col=2,cex=1,pch=16)