R

时间:2017-07-26 16:27:10

标签: r spline bspline cubic-spline

我试图在R中使用the spline2 package来构建单调样条线。

我在评估模型中遇到自变量的新值时遇到了麻烦。一般来说,我很难掌握R治疗"预测"及其与spline2的关系,以及如何使用生成的bs对象。

我尝试关注使用spline1的this example。我的数据位于名为BRIyII的数据框中,具有独立变量t和因变量P so:

plot(BRIyII$t,BRIyII$P)

收率: enter image description here

所以我这样做:

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")

它产生: enter image description here

所以我的问题是:

1-由于最右边的预测值(红点)低于左边的值,我是否误解了#34;单调" m样条的性质?

2-如何在除BRIyII $ t中定义的值之外的值中评估样条曲线?我尝试了几种组合,但我缺乏R语法知识。理想情况下我想做一些事情:

newdata=seq.int(0,41.5,0.1) 

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.