繁体   English   中英

mgcv:从GAM模型中平滑提取“ tp”的结位置

[英]mgcv: Extract Knot Locations for `tp` smooth from a GAM model

我试图从GAM模型中提取结的位置,以便将我的预测变量划分为其他模型的类别。 我的数据包含一个二进制响应变量(使用)和一个连续预测变量(打开)。

data <- data.frame(Used = rep(c(1,0,0,0),1250),
                   Open = round(runif(5000,0,50), 0))

我适合GAM:

mod <- gam(Used ~ s(Open), binomial, data = data)

我可以得到的预测值,并且模型矩阵等与任一type=c("response", "lpmatrix")的内predict.gam功能,但我正在与出奋力提取结位置在该所述系数变化。 任何建议都非常感谢!

out<-as.data.frame(predict.gam(model1, newdata = newdat, type = "response"))

如果可能的话,我也很感兴趣:

http://www.fromthebottomoftheheap.net/2014/05/15/identifying-periods-of-change-with-gams/

其中确定了样条的统计增加/减少,但是,我此时未使用GAMM,因此,在识别从GAMM模型提取的GAM中的相似模型特征时遇到了问题。 第二项是出于好奇而不是什么。

评论:

  1. 问时,您应该使用Rmgcv标记您的问题;
  2. 首先,我想将您的问题标记为与mgcv重复:如何在自适应平滑中提取P样条的结,基,系数和预测? 昨天提出的, 我的回答应该非常有用。 但是后来我意识到实际上有一些区别。 因此,我将在这里做一些简短的解释。

回答:

在您的gam电话:

mod <- gam(Used ~ s(Open), binomial, data = data)

您没有在s()指定bs参数,因此将使用默认基础: bs = 'tp'

'tp'薄板回归样条的缩写)不是具有常规结的平滑类。 薄板样条线确实具有结:将结精确地放置在数据点上。 例如,如果您有n唯一的Open值,则它有n结。 在单变量情况下,这只是平滑样条曲线。

但是,基于截断特征分解,薄板回归样条曲线是整个薄板样条曲线的低阶近似。 这与主成分分析(PCA)类似。 代替使用最初的n个薄板样条曲线基,它使用前k主成分。 这可将计算复杂度从O(n^3)降低到O(nk^2) ,同时确保最佳的rank-k逼近。

结果,对于拟合的薄板回归样条曲线,您实际上没有任何结点可以提取。

由于您使用单变量样条曲线,因此实际上没有必要使用'tp' 只要使用bs = 'cr',C UBIC [R egression花。 在2003年tp可用时,它曾经是mgcv的默认值。 cr有结,您可以按照答案中的说明提取结。 不要在这个问题上被bs = 'ad'混淆:P样条,B样条,自然三次样条都是基于节的样条。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM