我试图在R中使用the spline2 package来构建单调样条线。
我在评估模型中遇到自变量的新值时遇到了麻烦。一般来说,我很难掌握R治疗"预测"及其与spline2的关系,以及如何使用生成的bs对象。
我尝试关注使用spline1的this example。我的数据位于名为BRIyII的数据框中,具有独立变量t和因变量P so:
plot(BRIyII$t,BRIyII$P)
所以我这样做:
knots=c(9)
myMat=mSpline(BRIyII$t, knots = knots, degree = 3, intercept = TRUE)
mylm=lm(BRIyII$P~myMat)
现在,如果我们:
pr = predict(mylm,data.frame(BRIyII$t))
points(BRIyII$t,pr,col = "red")
所以我的问题是:
1-由于最右边的预测值(红点)低于左边的值,我是否误解了#34;单调" m样条的性质?
2-如何在除BRIyII $ t中定义的值之外的值中评估样条曲线?我尝试了几种组合,但我缺乏R语法知识。理想情况下我想做一些事情:
newdata=seq.int(0,41.5,0.1)
答案 0 :(得分:2)
我将解答问题#1,因为问题#2已在评论中解决。
splines2文档将M样条基作为"单调回归样条"基础,但我认为这是误导。估计单调回归样条的方法是使用I样条基,,其限制是回归系数为非负的。 I样条是M样条的积分,因此不减少。因此,它们的任何非负线性组合也将是非递减的。因此,您可以使用splines2 :: iSpline以及非负回归方法(如nnls :: nnls)来估计单调回归函数。
有关M样条曲线,I样条曲线和单调回归的解释,请查看:
Ramsay, JO (1988) Monotone regression splines in action. Statistical Science 3(4), 425-461.