r-mgcv:从GAM模型中提取"tp"平滑的结位置



我正试图从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)

我可以在predict.gam函数中使用type=c("response", "lpmatrix")来获得预测值和模型矩阵等,但我很难提取系数变化的节点位置。任何建议都非常感谢!

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),同时确保最佳秩k近似。

因此,对于拟合的薄板回归样条曲线,实际上没有可以提取的结。

由于您使用的是单变量样条曲线,因此实际上不需要使用'tp'。只需使用bs = 'cr'cubicr分离样条。在2003年tp可用之前,这曾经是mgcv中的默认值。cr有结,您可以提取结,如我在回答中所示。不要被这个问题中的bs = 'ad'弄糊涂:P样条、B样条、自然三次样条都是基于节点的样条。

相关内容

  • 没有找到相关文章

最新更新