R::mgcv中张量相互作用的方差分量
为什么R::mgcv中张量相互作用的方差分量,r,interaction,gam,mgcv,R,Interaction,Gam,Mgcv,为什么mgcv::gam.vcomp显示与mgcv::ti交互的两个方差分量 我似乎在任何地方都找不到解释或字里行间的解释。差异是否归因于交互中的每个组件 require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-
mgcv::gam.vcomp
显示与mgcv::ti
交互的两个方差分量
我似乎在任何地方都找不到解释或字里行间的解释。差异是否归因于交互中的每个组件
require(mgcv)
test1 <- function(x,z,sx=0.3,sz=0.4) {
x <- x*20
(pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+
0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2))
}
n <- 500
old.par <- par(mfrow=c(2,2))
x <- runif(n)/20;z <- runif(n);
xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30)
pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30)))
truth <- matrix(test1(pr$x,pr$z),30,30)
f <- test1(x,z)
y <- f + rnorm(n)*0.2
b3 <- gam(y~ ti(x) + ti(z) + ti(x,z))
b3s <- gam(y~ ti(x) + ti(z) + s(x,z)) # describing the itneraction with s().
在
te(x,z)
>b gam.vcomp(b)
te(x,z)1te(x,z)2
0.08668107 0.04596708
这是因为张量积平滑是由两个边际基定义的,在这种情况下,每个边际基都有一个平滑度参数。因此,有两个方差分量,每个平滑度参数/边际基础一个方差分量
ti(x,z)1
是x
边际基础的方差分量ti(x,z)2
是z
边际基础的方差分量之所以
s(x,z)
只有一个方差分量,是因为它是一个二维薄板样条基。这个基础是各向同性的;to标注中具有相同的平滑度,因此基准需要一个平滑度参数。因此只有一个方差分量。?mgcv::gam.vcomp
说“请注意,对于张量积平滑,方差分量也会返回,但它们的解释并不那么简单。”。。。我不知道里面的参考资料,或者伍德的书,是否会有所帮助……谢谢你的回复,我希望有人能解释更多。我在那些参考资料中找不到任何东西。也许这在他的书的第二版中有详细阐述。我唯一的另一个建议是开始挖掘代码;这至少可以告诉你正在做什么计算,尽管这可能无助于解释。我怀疑是这样的。谢谢但正如@Ben Bolker所评论的,对于他们的解释的“直截了当”是否有任何新的参考;西蒙的书的第二版是关于mgcv的最终说明。我想知道关于张量积平滑的方差分量的“解释”的评论是否与这样一个事实有关,即如果你正在进行方差分解,没有一个方差分量可以与模型中的其他项进行比较。在专门讨论GAM混合模型公式的论文或其他文本中可能会有更多细节?
gam.vcomp(b3)
ti(x) ti(z) ti(x,z)1 ti(x,z)2
0.06609731 0.01476070 0.08834218 0.05700322
gam.vcomp(b3s)
ti(x) ti(z) s(x,z)
0.1623056 2.4870344 7.7484987
> b <- gam(y ~ te(x,z))
> gam.vcomp(b)
te(x,z)1 te(x,z)2
0.08668107 0.04596708