当我们谈论基础时,我们有向量的正交、单位长度等概念。我认为傅里叶基和多项式基中也存在相同的概念。但是样条(比如三次 B 样条)基础呢?
样条基是正交的吗?
计算上,有时;从概念上讲,很少。(这开始是评论......)
正如这里已经介绍的那样(如果您还没有的话,请投赞成票)当我们在上下文中使用样条曲线时,一旦创建了样条曲线基,拟合就会恢复为标准 GLM 建模基系数函数。这种洞察力很重要,因为我们可以进一步概括它。
假设我们有一个非常受约束的 B 样条。类似于 1 阶 B 样条,因此我们可以准确地看到节点位置:
set.seed(123)
myX = sort(runif(1000, max = 10))
myKnots = c(1,3)
Bmatrix <- bs(x = myX, degree = 1, knots = myKnots, intercept = FALSE)
matplot( myX, Bmatrix, type = "l");
这是一个简单的 B 样条基础这显然是非正交的(只需crossprod(Bmatrix)检查内积)。所以,B样条基在概念上是非正交的。正交级数方法将表示关于一系列正交基函数的数据,如正弦和余弦(例如傅立叶基)。值得注意的是,正交方法将允许我们仅选择“低频”项进行进一步分析。这带来了计算部分。
因为样条的拟合是一个昂贵的过程,我们试图通过使用低秩近似来简化拟合过程。s其中一个明显的例子是函数中默认使用的薄板回归样条mgcv::gam,“正确的”薄板样条在计算上会非常昂贵(请参阅 参考资料?smooth.construct.tp.smooth.spec)。我们从完整的薄板样条开始,然后以最佳方式截断该基,由该基的截断特征分解决定。从这个意义上说,在计算上,是的,即使基础本身不是正交的,我们的样条基础也会有一个正交基础。样条曲线是在我们的采样值附近传递的“最平滑”函数. 现在样条的基础提供了我们的等价表示在样条基础跨越的空间中,进一步改造该基础到另一个等价基础不会改变我们原来的结果。
回到我们简单的例子,我们可以得到等价的正交基通过SVD,然后用它来得到等效的结果(取决于近似的顺序)。例如:
svdB = svd(t(Bmatrix));
Q = svdB$v;
现在使用这个新系统比原来的系统更可取因为在数字上更稳定(好的,在这里表现得很好)。Base R 也试图利用这些正交特性。如果我们poly默认使用,我们会得到等价的正交多项式,而不是我们的预测器(参数raw)的原始多项式。

