我将(尝试)通过三个步骤来回答这个问题:首先,让我们确切地确定单变量平滑的含义。接下来,我们将描述多元平滑(具体来说,是两个变量的平滑)。最后,我将尽最大努力使张量积平滑。
1)单变量平滑
假设我们有一些响应数据,我们猜想它是预测变量的未知函数加上一些误差。该模型将是:˚F X εyFXε
ÿ= f(x )+ ε
现在,为了拟合该模型,我们必须确定的函数形式。我们这样做的方法是识别基本功能,这些功能被叠加以便完整地表示功能。一个非常简单的示例是线性回归,其中基本函数仅为和(截距)。应用基础扩展,我们有˚F β 2 X β 1FFβ2Xβ1个
ÿ= β1个+ β2x + ε
以矩阵形式,我们将有:
ÿ= Xβ + ε
其中是n×1列向量,是n×2模型矩阵,是模型系数的2×1列向量,是误差的n×1列向量。有两列,因为在我们的基础扩展中有两项:线性项和截距。X β ε XÿXβεX
尽管基本功能要复杂得多,但相同的原理也适用于MGCV中的基本扩展。具体而言,不需要在自变量的整个域上定义各个基本函数。使用基于结的基础时通常会出现这种情况(请参见“基于结的示例”X)。然后,将模型表示为基本函数的总和,每个基本函数在自变量的每个值处进行评估。但是,正如我提到的那样,其中一些基函数在给定间隔之外的值为零,因此对该间隔之外的基数扩展无贡献。例如,请考虑三次样条曲线基,其中每个基函数关于自变量的不同值(结)对称-换句话说,每个基函数看起来相同,但仅沿自变量轴移动(这是一个过分的简化,因为任何实际基础都将包括截距和线性项,但希望您能理解。)
明确地说,第维的基本展开看起来像:我- 2
ÿ= β1个+ β2x + β3F1个(x )+ β4F2(x )+ 。。。+ β一世F我- 2(x )+ ε
其中每个函数可能是自变量的三次函数。XFX
矩阵方程仍然可以用来表示我们的模型。唯一的区别是现在是一个n×i矩阵;也就是说,它在基础扩展中的每个项都有一个列(包括截距和线性项)。由于基数展开的过程使我们能够以矩阵方程的形式表示模型,因此我们可以使用线性最小二乘法拟合模型并找到系数。 X βÿ= Xβ + εXβ
这是无罚回归的一个示例,MGCV的主要优势之一是通过惩罚矩阵和平滑参数进行平滑度估计。换句话说,代替:
β =( XŤX)− 1XŤÿ
我们有:
β =( XŤX+ λ小号)− 1XŤÿ
其中是一个二次 by-罚矩阵,而是一个标量平滑参数。在这里,我将不讨论惩罚矩阵的规范,但足以说,对于任何给定的基础,一些自变量的扩展和二次“摆动”惩罚的定义(例如,二阶导数惩罚),可以计算出惩罚矩阵。小号一世一世λ小号
MGCV可以使用各种方法来估计最佳平滑参数。我不会涉及该主题,因为我的目标是对如何构造单变量平滑进行广泛的概述,我相信我已经做到了。λ
2)多元平滑
上面的解释可以推广到多个维度。让我们回到模型,该模型给出响应作为预测变量和的函数。对两个自变量的限制将防止使用奥术符号使解释混乱。然后,模型为:˚F X žÿFXž
ÿ= f(X ,ž)+ ε
现在,在直觉上应该显而易见的是,就像在上面的单变量情况下所做的那样,我们将用基数展开(即基函数的叠加来表示。还应该显而易见的是,这些基本函数中至少有一个,而且几乎肯定还有更多,必须是和函数(如果不是这种情况,则隐式是可分离的,使得)。可以在此处找到多维样条曲线基础的直观图示。维的完整二维基础展开可能类似于:f (x )x z f f (x ,z )= f x(x )+ f z(z )F(X ,ž)F(x )XžFF(X ,ž)= fX(x )+ fž(z)我- 3
ÿ= β1个+ β2x + β3ž+ β4F1个(X ,ž)+...+βifi−3(x,z)+ε
我认为很明显,我们仍然可以用矩阵形式来表示:
Y=Xβ+ε
通过简单地评估和每个唯一组合中的每个基函数。解决方案仍然是:žxz
β=(XTX)−1XTY
计算二阶导数惩罚矩阵与单变量情况非常相似,除了我们不是针对一个变量对每个基函数的二阶导数进行积分,而是对所有二阶导数(包括偏函数)的总和进行积分所有自变量。前面的细节不是特别重要:关键是我们仍然可以构造惩罚矩阵并使用相同的方法获得平滑参数的最佳值,并且在给定平滑参数的情况下,系数向量仍然为:λSλ
β=(XTX+λS)−1XTY
现在,此二维平滑具有各向同性的损失:这意味着在两个方向上都应用单个值。当和的比例大致相同时(例如空间应用程序),这可以很好地工作。但是,如果我们用时间变量替换空间变量呢?的单位可能比的单位大或小,这可能使我们的二阶导数的积分下降,因为其中一些导数将对整体积分起不成比例的作用(例如,如果我们以纳秒为单位测量, X ž ž 吨吨X 吨X 吨X XλXžžŤŤXŤX在光年中,相对于的二阶导数的积分可能远远大于相对于的二阶导数的积分,因此沿方向的“摆动” 可能在很大程度上不受惩罚。我链接的“平滑工具箱”的幻灯片15中有关于此主题的更多详细信息。ŤXX
值得注意的是,我们没有将基函数分解为和边际基数。这意味着必须从支持多个变量的基数构造多元平滑。张量积平滑了单变量边际基数对多元基数的支持构造,如下所述。žXž
3)张量产品平滑
Tensor产品平滑解决了对多个输入与不同单位之间的交互进行建模响应的问题。假设我们有一个响应,它是空间变量和时间变量的函数。那么我们的模型是:˚F X 吨ÿFXŤ
ÿ= f(x,t)+ε
我们要做的是为变量和构造一个二维基础。如果我们可以将表示为:吨˚Fxtf
f(x,t)=fx(x)ft(t)
从代数/分析的意义上讲,这不一定是可能的。但是请记住,我们离散化了和的域(想象一个由和轴上的结点位置定义的二维“晶格” ),这样“真”函数由基函数的叠加表示。就像我们假设一个非常复杂的单变量函数可以在其域的特定间隔上由一个简单三次函数近似一样,我们可以假设不可分离函数可以由一个简单函数的乘积来近似和t x t f f (x ,t )f x(x )f t(t )xtxtff(x,t)fx(x)ft(t) 间隔上—前提是我们选择的基础尺寸可使这些间隔足够小!
给定的维基数和维基数,我们的基数展开将如下所示:X Ĵ 吨ixjt
y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i−3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i−3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i−3)(x)+…+βijft(j−3)(t)fx(i−3)(x)+ε
可以解释为张量积。假设我们在评估的每个基函数和,从而构建n乘i和n-通过-J模型矩阵和分别。然后,我们可以计算这两个模型矩阵的 by-张量积并重组为列,以使每一列代表唯一的组合。回想一下,边际模型矩阵分别具有和列。这些值对应于它们各自的基本尺寸。然后,我们新的二变量基础应具有尺寸吨X Ť Ñ 2我Ĵ X ⊗ Ť 我Ĵ 我Ĵ 我ĴxtXTn2ij X⊗Tijijij,因此其模型矩阵中的列数相同。
注意:我想指出的是,由于我们通过采用边际基函数的乘积来显式构造张量积基函数,因此张量积基可以由任何类型的边际基数构造。与上面讨论的多元平滑不同,它们不需要支持多个变量。
实际上,此过程导致维的整体基数展开,因为完全乘法包括将每个基函数乘以x截距(因此我们减去)以及将每个乘积基本函数由t截距(所以我们减去),但是我们必须将截距本身加回来(所以我们加1)。这被称为应用可识别性约束。吨β X 1 Ĵ X β 吨1我ij−i−j+1tβx1jxβt1i
所以我们可以这样表示:
y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βij−i−j+1fij−i−j−2(x,t)+ε
其中每个多元基函数是一对边际和基函数的乘积。同样,很明显,在建立了这个基础之后,我们仍然可以用矩阵方程式来表示它:X 吨fxt
Y=Xβ+ε
哪个(仍然)有解决方案:
β=(XTX)−1XTY
其中模型矩阵具有列。至于罚矩阵和,它们分别为每个自变量构造,如下所示:i j − i − j + 1 J x J tXij−i−j+1JxJt
Jx=βTIj⊗Sxβ
和,
Jt=βTSt⊗Iiβ
这允许整体上各向异性(在每个方向上不同)的代价(注意:的二阶导数的惩罚在轴上的每个结处相加,反之亦然)。现在可以以与单平滑参数用于单变量和多变量平滑时几乎相同的方式估计平滑参数和。结果是张量积平滑的整体形状对于其自变量的重新定标是不变的。吨λ X λ吨xtλxλt
我建议阅读MGCV网站上的所有渐晕以及“ 广义加性模型:以及R的介绍 ”。西蒙·伍德万岁。