我在一些数据上运行一个带有一个自然立方花键的量化回归模型,这个模型需要单调地递减(因为它不能在任何一点上物理地增加)。首先,我使用了 ns()
函数从 splines
包来实现这个目标,但很快就发现它做不到(毫不奇怪)。所以我找到了函数 mSpline
从包里 splines2
应该是用来拟合单调花键的,但它也不工作。下面是这两个函数的例子,以及它们如何在以下情况下失效 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)
你问题的第一部分。带有平滑花样线和单调性限制的量化回归可以使用Spline包中的splineDesign和quantreg(rq函数的选项方法="fnc")来实现。R代码可以从 https:/doi.org10.1002jae.2347 在公开的档案中 http:/qed.econ.queensu.cajaedatasetshaupt002
你的问题的第二部分:实现的模型是加法的,允许进一步添加花键、参数或半参数成分。