2

我试图从 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 中的相似模型特征时遇到问题。第二个项目更多的是出于好奇。

4

1 回答 1

4

注释:

  1. 你应该在提问时用R和标记你的问题mgcv
  2. 首先,我想将您的问题标记为与mgcv 重复:如何在自适应平滑中提取 P 样条的结、基、系数和预测?昨天提出的,我的回答应该很有用。但后来我意识到实际上存在一些差异。所以我将在这里做一些简单的解释。

回答:

在您的gam通话中:

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

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

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

然而,薄板回归样条是基于截断特征分解的全薄板样条的低秩近似。这与主成分分析(PCA)类似。它没有使用原始n的薄板样条基数,而是使用第一k主成分。这将计算复杂度从O(n^3)低到 降低到O(nk^2),同时确保最佳的 rank-k 近似。

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

由于您使用单变量样条曲线,因此确实没有必要使用'tp'. 只需使用bs = 'cr'三次回归条。mgcv这曾经是2003 年之前的默认设置,当时tp可用。cr有结,你可以像我在回答中展示的那样提取结。不要被bs = 'ad'那个问题所迷惑:P 样条、B 样条、自然三次样条都是基于结的样条。

于 2016-05-25T01:27:06.880 回答