在R中绘制B样条

时间:2015-11-19 15:46:40

标签: r splines bspline

我正在尝试为数据集106创建一个4阶B样条基础,其中包含40个内部节点。到目前为止,我所看到的所有绘制的基函数都包含非常平滑且散布得很好的曲线,而我的曲线非常尖,通常看起来很丑陋。这是一个与结相比具有如此低的数据点比率的属性,还是我做了一些可怕的错误?

如果它是属性,我应该在创建样条基础之前生成更多数据吗?

require(splines)
set.seed(100)
x = sort(runif(106, 91.78525, 123))
equidistant.knots = seq(min(x) + 0.761, max(x) - 0.761, length=40)
equidistant.ret = bs(x, knots = equidistant.knots, degree = 4, intercept = FALSE, Boundary.knots = range(x))
plot(equidistant.ret[,1]~x, ylim=c(0,max(equidistant.ret)), type='l', lwd=2, col=1, 
 xlab="Cubic B-spline basis", ylab="")
for (j in 2:ncol(equidistant.ret)) lines(equidistant.ret[,j]~x, lwd=2, col=j)

More spiky basis functions

0 个答案:

没有答案