[英]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中的相似模型特征时遇到了问题。 第二项是出于好奇而不是什么。
评论:
R
和mgcv
标记您的问题; 回答:
在您的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.