问题标签 [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 投票
0 回答
538 浏览

r - 如何从广义加性模型中提取平滑函数的表达式

我在广义加性模型中提取拟合平滑函数的表达式时遇到问题。

我安装了这样的加法模型:

我可以绘制 的拟合平滑函数s(x3),但我想得到它的精确表达式并得到它的导数。我怎样才能做到这一点?

0 投票
1 回答
1237 浏览

r - mgcv: predict.gam() 对 type = "terms" 和 type = "response" 给出不同的结果

我想使用选项分别评估来自 GAM 模型的预测器的每个组件type="terms"。作为健全性检查,我将结果与使用选项的总预测评估进行了比较type="response"

事实证明,结果不同。这是一个例子:

谁能帮我解决这个问题?非常感谢您的帮助!

0 投票
1 回答
4487 浏览

r - 使用 mgcv 进行变量选择

有没有一种方法可以在 R 中自动选择 GAM 的变量,类似于 step?我已经阅读了 and 的文档step.gamselection.gam但是我还没有看到一个可以使用代码的答案。此外,我尝试了method= "REML"and select = TRUE,但都没有从模型中删除无关紧要的变量。

我推测我可以创建一个步进模型,然后使用这些变量来创建 GAM,但这似乎计算效率不高。

例子:

0 投票
1 回答
2884 浏览

r - mgcv:如何返回估计的平滑参数?

考虑如下简单的 GAM 拟合:

  1. 无论如何要返回估计的平滑参数(lambda)以便我可以保存它?我知道 lambda 在输出中作为“GCV 分数”给出,但我需要一个特定的代码来返回它。
  2. 如何将 lambda 设置为所需的值?
0 投票
1 回答
733 浏览

r - mgcv::gamm() 和 MuMIn::dredge() 错误

我一直在尝试mgcv在一个函数中使用包来拟合多个 GAM,并通过模型选择程序粗略地选择最合适的模型。但是我的函数运行第一个模型然后似乎不再识别输入数据dat

我得到错误

is.data.frame(data) 中的错误:找不到对象“dat”。

我认为这是一个范围界定问题,我看过这里在这里寻求帮助,但无法弄清楚。

代码和数据如下(希望可重现): https ://github.com/cwaldock1/Help/blob/master/test_gam.csv

任何帮助将不胜感激。

谢谢,康纳

0 投票
2 回答
2843 浏览

r - R plot.gam 错误“1:object$nsdf 中的错误:长度为 0 的参数”

我正在尝试在 R 中绘制一个 gam 对象,这是我使用 gam 包制作的。我收到了Error in 1:object$nsdf 中报告的相同错误:使用 plot.gam 时长度为 0 的参数。但是,在那里找到的解决方案更新到最新版本(我认为)对我不起作用。我正在运行 R 3.3.1、gam 1.12 和 mgcv 1.8.12(mgcv 是 plot.gam 函数的来源)。

不幸的是,我无法分享我正在使用的数据。然而,下面的代码——直接取自 Intro 的 p.294。使用 R 进行统计学习 - 为我重现了错误:

有谁知道这里发生了什么或如何解决它?

谢谢你。

0 投票
1 回答
1213 浏览

r - gam 模型中的 Beta 族拟合值大于 1 且小于 0。这是怎么回事?(mgcv)

我正在使用Rgam中的包函数将 gam 拟合到区间 (0,1) 上的数据mgcv。我的模型代码如下所示:

模型拟合得很好,但是当我绘制拟合值与观察值时,它看起来像这样:

在此处输入图像描述

显然,该模型拟合大于 1 且小于 0 的值。这不应该发生。它违反了 beta 分布的假设。当我在包中为 R 建模相同的数据时,不会发生这种情况betareg。可能导致这种差异的原因是什么?

0 投票
1 回答
714 浏览

r - Custom Link function works for GLM but not mgcv GAM

Apologies if the answer is obvious but I've spent quite some time trying to use a custom link function in mgcv.gam

In short,

  • I want to use a modified probit link from package psyphy ( I want to use psyphy.probit_2asym, I call it custom_link )
  • I can create a {stats}family object with this link and use it in the 'family' argument of glm.

    m <- glm(y~x, family=binomial(link=custom_link), ... )

  • It does not work when used as an argument for {mgcv}gam

    m <- gam(y~s(x), family=binomial(link=custom_link), ... )

    I get the error Error in fix.family.link.family(family) : link not recognised

I do not get the reason for this error, both glm and gam work if I specify the standard link=probit.

So my question can be summarized as:

what is missing in this custom link that works for glm but not for gam?

Thanks in advance if you can give me a hint on what I should do.


Link function

0 投票
1 回答
8948 浏览

r - mgcv:如何为样条设置结的数量和/或位置

我想gammgcv包中使用函数:

我可以设置节s()吗?然后我能知道样条使用的结在哪里吗?谢谢!

0 投票
1 回答
3645 浏览

r - GAM 中的权重选项

我的数据集有很多多余的观察结果(但每个观察结果都应该计算在内)。所以我考虑在 GAM 中使用“权重”选项,因为它显着减少了计算时间。

gam函数(在mgcv包中)解释说它们是“等价的”(来自?gam参数weights):

“请注意,例如,权重 2 相当于两次进行完全相同的观察。”

但这似乎不对。

所有三个模型的估计值都是相同的。模型 2 和 3 的标准误差相同,但模型 1 不同。 GCV 在所有三个模型中都不同。

我知道 GCV 可能会有所不同。但是,如果标准误差不同,我们怎么能说模型是相同的呢?这是一个错误,还是对此有任何好的解释?