GAM中的张量积交互作用的直觉(R中的MGCV程序包)


30

广义加性模型是例如 的模型。功能是平稳的,并且需要估计。通常用花键惩罚。MGCV是R中的一个软件包,作者(Simon Wood)用R实例写了一本关于他的软件包的书。Ruppert等。(2003年)写了一本关于同一事物的简单版本的更易读的书。

y=α+f1(x1)+f2(x2)+ei

我的问题是关于这些模型之间的交互。如果我想执行以下操作: 如果我们在OLS地(只是一个beta) ,解释不会有问题。如果我们通过罚样条进行估计,那么在加法上下文中的解释也没有问题。

y=α+f1(x1)+f2(x2)+f3(x1×x2)+ei
˚F 3ff^3

但是GAM中的MGCV软件包具有这些称为“张量积平滑”的东西。我用Google搜索“张量积”,然后立即注视着试图阅读我所发现的解释。我不够聪明,或者数学解释得不好,或者两者兼而有之。

代替编码

normal = gam(y~s(x1)+s(x2)+s(x1*x2))

张量积将通过

what = gam(y~te(x1,x2))

当我做

plot(what)

要么

vis.gam(what)

我得到一些非常酷的输出。但是我不知道黑匣子内部发生了什么te(),也不知道如何解释上述很酷的输出。就在前一天晚上,我做了一场噩梦,正在开会。我给大家看了一个很酷的图表,他们问我这是什么意思,我不知道。然后我发现我没有衣服。

任何人都可以通过一些机械和直觉来帮助我和后代,以了解这里引擎盖下面的情况吗?理想情况下,要说说正常的加性相互作用情况与张量情况之间的区别?在继续学习数学之前,用简单的英语说所有东西的好处是。


一个简单的例子,取自包装作者的书:library(mgcv)data(trees)ct5 <-gam(Volume〜te(Height,Girth,k = 5),family = Gamma(link = log),data = trees)ct5 vis.gam(CT5)情节(CT5,too.far = 0.15)
generic_user

Answers:


30

我将(尝试)通过三个步骤来回答这个问题:首先,让我们确切地确定单变量平滑的含义。接下来,我们将描述多元平滑(具体来说,是两个变量的平滑)。最后,我将尽最大努力使张量积平滑。

1)单变量平滑

假设我们有一些响应数据,我们猜想它是预测变量的未知函数加上一些误差。该模型将是:˚F X εyfxε

y=f(x)+ε

现在,为了拟合该模型,我们必须确定的函数形式。我们这样做的方法是识别基本功能,这些功能被叠加以便完整地表示功能。一个非常简单的示例是线性回归,其中基本函数仅为和(截距)。应用基础扩展,我们有˚F β 2 X β 1ffβ2xβ1

y=β1+β2x+ε

以矩阵形式,我们将有:

Y=Xβ+ε

其中是n×1列向量,是n×2模型矩阵,是模型系数的2×1列向量,是误差的n×1列向量。有两列,因为在我们的基础扩展中有两项:线性项和截距。X β ε XYXβεX

尽管基本功能要复杂得多,但相同的原理也适用于MGCV中的基本扩展。具体而言,不需要在自变量的整个域上定义各个基本函数。使用基于结的基础时通常会出现这种情况(请参见“基于结的示例”x)。然后,将模型表示为基本函数的总和,每个基本函数在自变量的每个值处进行评估。但是,正如我提到的那样,其中一些基函数在给定间隔之外的值为零,因此对该间隔之外的基数扩展无贡献。例如,请考虑三次样条曲线基,其中每个基函数关于自变量的不同值(结)对称-换句话说,每个基函数看起来相同,但仅沿自变量轴移动(这是一个过分的简化,因为任何实际基础都将包括截距和线性项,但希望您能理解。)

明确地说,第维的基本展开看起来像:i2

y=β1+β2x+β3f1(x)+β4f2(x)+...+βifi2(x)+ε

其中每个函数可能是自变量的三次函数。Xfx

矩阵方程仍然可以用来表示我们的模型。唯一的区别是现在是一个n×i矩阵;也就是说,它在基础扩展中的每个项都有一个列(包括截距和线性项)。由于基数展开的过程使我们能够以矩阵方程的形式表示模型,因此我们可以使用线性最小二乘法拟合模型并找到系数。 X βY=Xβ+εXβ

这是无罚回归的一个示例,MGCV的主要优势之一是通过惩罚矩阵和平滑参数进行平滑度估计。换句话说,代替:

β=(XTX)1XTY

我们有:

β=(XTX+λS)1XTY

其中是一个二次 by-罚矩阵,而是一个标量平滑参数。在这里,我将不讨论惩罚矩阵的规范,但足以说,对于任何给定的基础,一些自变量的扩展和二次“摆动”惩罚的定义(例如,二阶导数惩罚),可以计算出惩罚矩阵。SiiλS

MGCV可以使用各种方法来估计最佳平滑参数。我不会涉及该主题,因为我的目标是对如何构造单变量平滑进行广泛的概述,我相信我已经做到了。λ

2)多元平滑

上面的解释可以推广到多个维度。让我们回到模型,该模型给出响应作为预测变量和的函数。对两个自变量的限制将防止使用奥术符号使解释混乱。然后,模型为:˚F X žyfxz

y=f(x,z)+ε

现在,在直觉上应该显而易见的是,就像在上面的单变量情况下所做的那样,我们将用基数展开(即基函数的叠加来表示。还应该显而易见的是,这些基本函数中至少有一个,而且几乎肯定还有更多,必须是和函数(如果不是这种情况,则隐式是可分离的,使得)。可以在此处找到多维样条曲线基础的直观图示。维的完整二维基础展开可能类似于:f x x z f f x z = f xx + f zz f(x,z)f(x)xzff(x,z)=fx(x)+fz(z)i3

ÿ=β1个+β2X+β3ž+β4F1个Xž++β一世F一世-3Xž+ε

我认为很明显,我们仍然可以用矩阵形式来表示:

ÿ=Xβ+ε

通过简单地评估和每个唯一组合中的每个基函数。解决方案仍然是:žXž

β=XŤX-1个XŤÿ

计算二阶导数惩罚矩阵与单变量情况非常相似,除了我们不是针对一个变量对每个基函数的二阶导数进行积分,而是对所有二阶导数(包括偏函数)的总和进行积分所有自变量。前面的细节不是特别重要:关键是我们仍然可以构造惩罚矩阵并使用相同的方法获得平滑参数的最佳值,并且在给定平滑参数的情况下,系数向量仍然为:λ小号λ

β=XŤX+λ小号-1个XŤÿ

现在,此二维平滑具有各向同性的损失:这意味着在两个方向上都应用单个值。当和的比例大致相同时(例如空间应用程序),这可以很好地工作。但是,如果我们用时间变量替换空间变量呢?的单位可能比的单位大或小,这可能使我们的二阶导数的积分下降,因为其中一些导数将对整体积分起不成比例的作用(例如,如果我们以纳秒为单位测量, X ž ž X X X XλXžžŤŤXŤX在光年中,相对于的二阶导数的积分可能远远大于相对于的二阶导数的积分,因此沿方向的“摆动” 可能在很大程度上不受惩罚。我链接的“平滑工具箱”的幻灯片15中有关于此主题的更多详细信息。ŤXX

值得注意的是,我们没有将基函数分解为和边际基数。这意味着必须从支持多个变量的基数构造多元平滑。张量积平滑了单变量边际基数对多元基数的支持构造,如下所述。žXž

3)张量产品平滑

Tensor产品平滑解决了对多个输入与不同单位之间的交互进行建模响应的问题。假设我们有一个响应,它是空间变量和时间变量的函数。那么我们的模型是:˚F X ÿFXŤ

ÿ=FXŤ+ε

我们要做的是为变量和构造一个二维基础。如果我们可以将表示为:˚FXŤF

FXŤ=FXXFŤŤ

从代数/分析的意义上讲,这不一定是可能的。但是请记住,我们离散化了和的域(想象一个由和轴上的结点位置定义的二维“晶格” ),这样“真”函数由基函数的叠加表示。就像我们假设一个非常复杂的单变量函数可以在其域的特定间隔上由一个简单三次函数近似一样,我们可以假设不可分离函数可以由一个简单函数的乘积来近似和t x t f f x t f xx f tt XŤXŤFFXŤFXXFŤŤ 间隔上—前提是我们选择的基础尺寸可使这些间隔足够小!

给定的维基数和维基数,我们的基数展开将如下所示:X Ĵ 一世XĴŤ

y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i3)(x)++βijft(j3)(t)fx(i3)(x)+ε

可以解释为张量积。假设我们在评估的每个基函数和,从而构建n乘i和n-通过-J模型矩阵和分别。然后,我们可以计算这两个模型矩阵的 by-张量积并重组为列,以使每一列代表唯一的组合。回想一下,边际模型矩阵分别具有和列。这些值对应于它们各自的基本尺寸。然后,我们新的二变量基础应具有尺寸X Ť Ñ 2Ĵ X Ť Ĵ Ĵ ĴxtXTn2ij XTijijij,因此其模型矩阵中的列数相同。

注意:我想指出的是,由于我们通过采用边际基函数的乘积来显式构造张量积基函数,因此张量积基可以由任何类型的边际基数构造。与上面讨论的多元平滑不同,它们不需要支持多个变量。

实际上,此过程导致维的整体基数展开,因为完全乘法包括将每个基函数乘以x截距(因此我们减去)以及将每个乘积基本函数由t截距(所以我们减去),但是我们必须将截距本身加回来(所以我们加1)。这被称为应用可识别性约束。β X 1 Ĵ X β 1ijij+1tβx1jxβt1一世

所以我们可以这样表示:

y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βijij+1fijij2(x,t)+ε

其中每个多元基函数是一对边际和基函数的乘积。同样,很明显,在建立了这个基础之后,我们仍然可以用矩阵方程式来表示它:X fxt

Y=Xβ+ε

哪个(仍然)有解决方案:

β=(XTX)1XTY

其中模型矩阵具有列。至于罚矩阵和,它们分别为每个自变量构造,如下所示:i j i j + 1 J x J tXijij+1JxJt

Jx=βTIjSxβ

和,

Jt=βTStIiβ

这允许整体上各向异性(在每个方向上不同)的代价(注意:的二阶导数的惩罚在轴上的每个结处相加,反之亦然)。现在可以以与单平滑参数用于单变量和多变量平滑时几乎相同的方式估计平滑参数和。结果是张量积平滑的整体形状对于其自变量的重新定标是不变的。λ X λxtλxλt

我建议阅读MGCV网站上的所有渐晕以及“ 广义加性模型:以及R的介绍 ”。西蒙·伍德万岁。


好答案。从那以后,我学到的知识比三年前要多得多。但是我不确定3年前我是否会理解您今天写的内容。也许我会的。我认为开始的地方是将在多个维度上的基础扩展视为跨可变空间的“网”。我想张量可以描述为具有矩形图案的网...也许从每个方向拉出的不同“剪切”力。
generic_user

另一方面,我警告您不要将张量积视为表示空间的东西。这是因为边际和基函数的实际张量积将包含大量的零,这些零表示基函数在其定义范围之外的评估。实际的张量积通常会非常稀疏。Ťxt
乔什(Josh)2015年

1
感谢您的精彩总结!只需指出一句:“我们的基础扩展”之后的方程式并不完全正确。它确实提供了正确的基函数,但是它给出了参数化,其中相应的参数为乘积形式()。βxiβtj
jarauh

1
@Josh好的,我尝试过。同时具有正确性和易于理解(并遵循他人的符号)并非易事。顺便说一句,smooth-toolbox.pdf的链接似乎已损坏。
jarauh

1
看起来不错。显然您的编辑被拒绝了,但是我推翻了拒绝并批准了它。当我开始写这个答案时,我并没有意识到扩展看起来会造成多大的混乱。这些天之一,我可能应该回去用pi(产品)表示法重写它。
乔什(Josh)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.