我试图在R中使用the spline2 package来构建单调样条。R中的单调样条
我在评估自变量新值的模型时遇到了麻烦。一般来说,我很难掌握R预测的“预测”处理及其与spline2的关系,以及如何使用生成的bs对象。
我试图关注使用spline1的this example。我的数据是在一个名为BRIyII数据帧,具有独立的变量t和相关的变量P这样:
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由于最右边的预测值(红点)是一个比它的左下方,我误解m个样条线的“单调”的性质?
2-我怎样才能评估样品中除BRIyII $ t中定义的值以外的值?我尝试了几种东西的组合,但我缺乏R语法知识。我会理想地想要做这样的事情:
newdata=seq.int(0,41.5,0.1)
我不知道的单调性问题。事实上,当我用'mSpline'和另一个'bs'(使用内置的'mtcars'数据框)进行回归时,我得到的系数完全相同。关于预测:首先,你可以像这样在一行中进行回归:'mylm = lm(P_mSpline(t,knots = knots,degree = 3,intercept = TRUE),data = BRIyII)''。 – eipi10
其次,为了预测你用来拟合模型的数据,你可以做'预测(mylm)',它会自动使用用来拟合模型的数据帧。为了预测预测变量的其他值,需要用新值对数据帧进行预测(并且新数据帧中的列名必须与用于拟合模型的数据帧中的列名相匹配)。例如,预测(mylm,newdata = data.frame(t = seq(0,41.5,0.1)))'。 – eipi10
感谢至少解决了“易”的部分! :) – cladelpino