问题标签 [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.
r - 如何从广义加性模型中提取平滑函数的表达式
我在广义加性模型中提取拟合平滑函数的表达式时遇到问题。
我安装了这样的加法模型:
我可以绘制 的拟合平滑函数s(x3)
,但我想得到它的精确表达式并得到它的导数。我怎样才能做到这一点?
r - mgcv: predict.gam() 对 type = "terms" 和 type = "response" 给出不同的结果
我想使用选项分别评估来自 GAM 模型的预测器的每个组件type="terms"
。作为健全性检查,我将结果与使用选项的总预测评估进行了比较type="response"
。
事实证明,结果不同。这是一个例子:
谁能帮我解决这个问题?非常感谢您的帮助!
r - 使用 mgcv 进行变量选择
有没有一种方法可以在 R 中自动选择 GAM 的变量,类似于 step?我已经阅读了 and 的文档step.gam
,selection.gam
但是我还没有看到一个可以使用代码的答案。此外,我尝试了method= "REML"
and select = TRUE
,但都没有从模型中删除无关紧要的变量。
我推测我可以创建一个步进模型,然后使用这些变量来创建 GAM,但这似乎计算效率不高。
例子:
r - mgcv:如何返回估计的平滑参数?
考虑如下简单的 GAM 拟合:
- 无论如何要返回估计的平滑参数(lambda)以便我可以保存它?我知道 lambda 在输出中作为“GCV 分数”给出,但我需要一个特定的代码来返回它。
- 如何将 lambda 设置为所需的值?
r - mgcv::gamm() 和 MuMIn::dredge() 错误
我一直在尝试mgcv
在一个函数中使用包来拟合多个 GAM,并通过模型选择程序粗略地选择最合适的模型。但是我的函数运行第一个模型然后似乎不再识别输入数据dat
。
我得到错误
is.data.frame(data) 中的错误:找不到对象“dat”。
我认为这是一个范围界定问题,我看过这里,在这里寻求帮助,但无法弄清楚。
代码和数据如下(希望可重现): https ://github.com/cwaldock1/Help/blob/master/test_gam.csv
任何帮助将不胜感激。
谢谢,康纳
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 进行统计学习 - 为我重现了错误:
有谁知道这里发生了什么或如何解决它?
谢谢你。
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
r - mgcv:如何为样条设置结的数量和/或位置
我想gam
在mgcv
包中使用函数:
我可以设置节数s()
吗?然后我能知道样条使用的结在哪里吗?谢谢!
r - GAM 中的权重选项
我的数据集有很多多余的观察结果(但每个观察结果都应该计算在内)。所以我考虑在 GAM 中使用“权重”选项,因为它显着减少了计算时间。
gam
函数(在mgcv
包中)解释说它们是“等价的”(来自?gam
参数weights
):
“请注意,例如,权重 2 相当于两次进行完全相同的观察。”
但这似乎不对。
所有三个模型的估计值都是相同的。模型 2 和 3 的标准误差相同,但模型 1 不同。 GCV 在所有三个模型中都不同。
我知道 GCV 可能会有所不同。但是,如果标准误差不同,我们怎么能说模型是相同的呢?这是一个错误,还是对此有任何好的解释?