gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:02:51 25 4
gpt4 key购买 nike

我正在尝试从 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: how to extract knots, basis, coefficients and predictions for P-splines in adaptive smooth? 重复。昨天筹集了资金,并且my answer应该还是蛮有用的。但后来我意识到,其实还是有一些区别的。所以我在这里做一些简单的解释。

答案:

在您的 gam 调用中:

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

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

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

但是,薄板回归样条是基于截断特征分解的完整薄板样条的低阶近似。这与 principal components analysis(PCA) 类似的想法。它没有使用原始的n个薄板样条曲线基础,而是使用前k个主成分。这将计算复杂度从 O(n^3) 降低到 O(nk^2),同时确保最佳的 k 阶近似。

因此,您实际上无法为拟合的薄板回归样条曲线提取任何结

由于您使用单变量样条线,因此实际上没有必要选择'tp'。只需使用 bs = 'cr',即 cubic r 回归样条线。在 2003 年 tp 可用之前,这曾经是 mgcv 中的默认设置。 cr 有结,您可以提取结,如我在 my answer 中所示。 。不要被该问题中的 bs = 'ad' 所迷惑:P 样条线、B 样条线、自然三次样条线都是基于结的样条线。

关于r - mgcv:从 GAM 模型中提取 `tp` 平滑的结位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37424302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com