问题标签 [mgcv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1372 浏览

r - mgcv:修复 GAMM 中的平滑参数和模型嵌套的有效性

我目前正在尝试使用包中的协变量(年龄)和性别 0-1 变量之间的交互进行x建模。在为每个性别指定了一个平滑项的主要模型(让我们称之为)之后,我想测试一个更简单的假设,即性别之间的差异是线性的(而不是任意平滑的)。我有以下两个问题:gammmgcvM0

  1. 在尝试正确嵌套模型时,我想从中获取 0-gender smoothing 的平滑参数M0,并将其用于更简单的模型规范中。但我收到以下错误消息:

gamm.setup 中的错误(gp,pterms = pTerms,数据 = mf,节 = 节,parametric.only = FALSE,:

gamm 无法处理链接的平滑参数(可能来自使用“id”或自适应平滑)

  1. 第二个问题更愚蠢。当我从每个性别的平滑变为 0 性别的平滑以及线性差异到 1 性别时,模型是否甚至是嵌套的?

下面是一个例子。我模拟了一些随机数据,所以数据并没有显示我实际数据的行为,但问题仍然存在。

gamm.setup 中的错误(gp,pterms = pTerms,数据 = mf,节 = 节,parametric.only = FALSE,:

gamm 无法处理链接的平滑参数(可能来自使用“id”或自适应平滑)

有什么想法吗?提前致谢。

0 投票
1 回答
2551 浏览

r - 为什么 mgcv 的 bam 对于某些数据来说速度很慢?

我使用bam来自的函数在多个数据集上拟合相同的广义加法模型mgcv。而对于我的大多数数据集,拟合在 10 到 20 分钟之间的合理时间内完成。对于一些数据集,运行需要 10 多个小时才能完成。我找不到慢案例之间的任何相似之处,最终的拟合既不是特别好也不是特别差,也不包含任何明显的异常值。

我如何才能弄清楚为什么这些实例的拟合速度如此之慢?我怎样才能加快这些速度?

我的模型包含两个平滑项(使用循环三次样条基础)和一些额外的数值和因子变量。总共估计了 300 个系数(包括平滑项的系数)。我故意将节数保持在理论上最佳的信息以下,以加快拟合过程。我的数据集包含大约 850k 行。

这是函数调用:

节年包含 26 节。

这个模型在大多数情况下收敛得相当快,但在少数情况下却慢得令人难以置信。

0 投票
1 回答
207 浏览

r - 为什么 get 无法在 gamm 中找到对象,但它在 lm 中有效?

我正在努力编写一个调用变量的 R 函数get()

假设我有这个数据框:

我想编写一个返回 gamm 模型摘要的函数,例如像这样

为什么这会给我错误:

获取(响应)中的错误:找不到对象“响应”

但以下工作:

问:为什么 get 无法在我的 gamm 函数中工作,我该如何重写该函数以使其工作?

0 投票
1 回答
7081 浏览

r - Caret 包 - 使用平滑和线性预测器交叉验证 GAM

我想使用插入符号交叉验证 GAM 模型。我的 GAM 模型有一个二元结果变量、经纬度坐标对的各向同性平滑,然后是线性预测变量。使用 mgcv 时的典型语法是:

我不太确定如何使用插入符号中的 train 函数指定此模型。这或多或少是我的语法:

问题是我只想平滑 lat 和 long 并将 x1 和 x2 视为线性。

谢谢!

0 投票
9 回答
82718 浏览

r - 安装路径不可写R,无法更新包

我正在尝试使用他们网站上的代码将 Bioconductor 安装到 R 中。当我输入代码时(见下文),我收到一条错误消息,指出某些软件包无法更新,安装路径不可写。

生存

我可以通过转到包/安装包来安装这些包。

然后我可以去包/加载包并成功加载它们并搜索并查看包在那里。

但是当我去安装 bioconductor 时,它给了我同样的错误信息,即 Matrix、mgcv 和survival 无法更新。

我该怎么做才能更新这些软件包以便安装 bioconductor?

0 投票
1 回答
1154 浏览

r - vis.gam 在“persp”图顶部透明

我正在使用包 mgcv 运行 GAMM。该模型运行良好并给出了有意义的输出,但是当我使用 vis.gam(plot.type="persp") 我的图表如下所示: 在此处输入图像描述

为什么会这样?当我使用 vis.gam(plot.type="contour") 时,没有透明的区域。

这似乎不仅仅是热调色板的问题。当我更改“persp”图的配色方案时,也会发生同样的事情: persp 图,“topo”颜色

等高线图完全填充,而透视图在顶部仍然是透明的。数据:

0 投票
1 回答
415 浏览

python - 使用rpy2时无法在mgcv包中找到predict

我正在使用 rpy2 与 mgcv pkg 进行通信,以获得 gam 预测。

我可以通过使用 mgcv pkg 来获得 gam fit,但是当我尝试使用 predict 方法时,它会因错误而出错:

NameError:名称“预测”未定义

以下是我的代码。

下面的行出错了:

我究竟做错了什么 ?

0 投票
1 回答
595 浏览

r - 如何从 mgcv::gam.check 保存 edf 并跳过绘图

以下脚本中的 gam.check 将诊断信息输出到控制台(以及绘图):

上述代码中 gam.check 语句到控制台的输出是:

我想将诊断的输出保存到列表中(或仅将表保存到数据框)而不输出任何图形。

事情,我考虑过:

  1. 下面的代码返回一个空对象。

    x<-gam.check(b,pch=19,cex=.3)

  2. 查看 gam.check 的代码,似乎我想“获取”结果

    kchck <- k.check(b, subsample = k.sample, n.rep = k.rep)

    不幸的是,直接运行上述代码行会产生“找不到函数“k.check”。

  3. 我可以使用 sink 将输出保存到控制台,但这不会关闭绘图。

  4. Gavin Simpson为在此处提取绘图提供了一个很好的答案,但我没有看到任何有助于解决我的问题的东西。

0 投票
1 回答
819 浏览

r - mgcv:绘图因子“按”平滑

我想绘制一个名为“NO2”的参数对出生体重的样条效应,但我想要四个四分位数的 4 个图表。我当前的代码只给出了一个图表,你能帮我找出问题吗?可以看到最后的代码,model_1_F1_spline是针对不同的参数进行调整的,但是我的问题是关于F1_quartile。当我通过 F1_quartile 调整 NO2 时,它包括四个四分位数的结果,但我不知道如何提取这些结果并绘制 4 个图表。

这是一个可重现的示例:

这是我的做法:

0 投票
3 回答
750 浏览

r - R从model.frame中恢复原始data.frame

在 R 中,您可以使用包含转换的公式从包中拟合 GAM 模型,mgcv例如logorsqrt并且默认情况下model.frame返回 (仅在公式中指定的变量应用了转换)。

有什么办法可以恢复未转换的data.frame

例子:

reg <- mgcv::gam(log(mpg) ~ disp + I(hp^2), data=mtcars)

返回

> head(reg$model,3) log(mpg) disp I(hp^2) Mazda RX4 3.044522 160 12100 Mazda RX4 Wag 3.044522 160 12100 Datsun 710 3.126761 108 8649

但是,我想从模型model.frame

mpg disp hp Mazda RX4 21.0 160 110 Mazda RX4 Wag 21.0 160 110 Datsun 710 22.8 108 93

一些背景newdata大多数模型predict()函数的参数需要未转换的数据,所以我无法将反馈model.frame反馈到predict()函数中。我已经知道省略newdata参数将返回拟合值。我的要求是模型对象将原始数据返回给我。