我一直在阅读http://freakonometrics.hypotheses.org/9184和http://www.stats.uwo.ca/faculty/braun/ss3859/chapters/splines/splines.pdf上关于样条曲线的非常有用的介绍,以及 whuber 在此论坛上提供的非常有用的示例。我知道函数 h(x) 可以近似为
我很难理解这个公式如何链接到在 R 中的样条包中生成的实际基函数。例如 - 在下面的 R 代码之后,代码创建了 4 个我认为是基函数的列(每个点由 100 个点组成),根据下面的图表和/或下面的矩阵(头)看起来。这可能很简单——但是这些值如何链接回上面的公式?
为了进一步澄清 - 在样条回归中,在我的理解中,仍然是我们(一维)协变量的观察向量,并且我们添加了仅对大于这些节点的那些观察结果为正的截断幂项。因此,我会期望一组铰链函数在结之前为 0,然后继续使用导数所暗示的斜率。上升下降。我认为这是相当基本的 - 但我只是没有解决这个问题。
set.seed(1)
n=10
xr = seq(0,n,by=.1)
yr = sin(xr/2)+rnorm(length(xr))/2
db = data.frame(x=xr,y=yr)
plot(db)
attach(db)
library(splines)
B=bs(xr,knots=c(2,5,8),Boundary.knots=c(0,10),degre=1)
B
matplot(xr,B,type="l")
reg=lm(yr~B)
lines(xr,predict(reg),col="red")
> B
# 1 2 3 4
# [1,] 0.00000000 0.00000000 0.00000000 0.00
# [2,] 0.05000000 0.00000000 0.00000000 0.00
# [3,] 0.10000000 0.00000000 0.00000000 0.00
# [4,] 0.15000000 0.00000000 0.00000000 0.00
# [5,] 0.20000000 0.00000000 0.00000000 0.00
# [6,] 0.25000000 0.00000000 0.00000000 0.00
# [7,] 0.30000000 0.00000000 0.00000000 0.00
# [8,] 0.35000000 0.00000000 0.00000000 0.00
# [9,] 0.40000000 0.00000000 0.00000000 0.00