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

r - ggplot2中“gam”平滑的问题

我正在尝试在 ggplot2 中使用 GAM 平滑。根据此对话此代码,只有当 n >= 1000 时,ggplot2 才会加载用于一般加法模型的mgcv包。否则,用户必须手动加载包。据我了解,对话中的此示例代码应使用以下内容进行平滑处理geom_smooth(method="gam", formula = y ~ s(x, bs = "cs"))

但我收到一个错误:

如果我尝试以下操作,也会发生同样的错误:

但例如线性模型会起作用:

我在这里做错了什么?

我的 R 和包版本应该是最新的:

0 投票
1 回答
327 浏览

r - 求mgcv源码注释好的版本

为交叉发布(在 R-help 上)道歉,但 SO 获得了更多的意见,我希望知道的人可以在这里找到问题。

我正在寻找包含 mgcv 的各种功能的注释良好的版本,以便我可以为我正在处理的项目修改其中的一部分。特别是我正在寻找

  • 测试统计
  • 总结.gam
  • 刘2
  • simf

我知道我可以通过输入 mgcv:::whatever 找到这些。但是有很多嵌套的if语句,很难理解。代码中的注释准确地描述了每一步发生的情况,这将使我的生活变得更轻松。

在哪里可以找到更详细的代码版本?这样的事情存在吗?

编辑:针对已删除的评论:我不知道它可以在 github 上找到,之前没有使用过。FFR,在这里: https ://github.com/cran/mgcv

0 投票
3 回答
1944 浏览

r - 是否可以在 mgcv gam 模型中包含两个平滑项的乘积

我在使用 gam 为时间序列数据建模季节性方面取得了巨大成功。我的最新模型清楚地显示了除季节性变化外的每周模式。虽然一周模式本身在一年中非常稳定,但其幅度也随季节而变化。所以理想情况下,我想将我的数据建模为:

其中f,gh是循环平滑函数mgcv

不幸的是,这不起作用并抛出错误NA/NaN argument。我尝试使用te(day_in_year, day_in_week, k=c(52, 5), bs='cc')which 有效,但引入了太多的自由度,因为该模型过拟合了在可用年份较短的特定工作日内的假期。

是否可以按照我尝试的方式指定模型?

0 投票
2 回答
13902 浏览

r - 如何获得 smooth.spline 的置信区间?

我曾经smooth.spline为我的数据估计三次样条。但是当我使用方程计算 90% 的逐点置信区间时,结果似乎有点偏离。如果我做错了,有人可以告诉我吗?我只是想知道是否有一个函数可以自动计算与函数相关的逐点区间带smooth.spline

在此处输入图像描述

因为我不确定我是否做得正确,所以我使用gam()了 package.json 中的函数mgcv

它立即给出了一个置信区间,但我不确定它是 90% 还是 95% CI 还是其他什么。如果有人可以解释,那就太好了。

在此处输入图像描述

0 投票
1 回答
434 浏览

r - 从包含矩阵“by”变量的 mgcv::gam 拟合中获取预测以平滑

我刚刚发现它mgcv::s()允许为其by参数提供一个矩阵,允许一个连续变量对变量组合中的每一个(以及它们的相互作用,如果需要的话)进行单独的平滑处理。但是,我无法从此类模型中获得合理的预测,例如:

产生输入数据的这个图:

输入数据图

这显然是错误的预测值图:

输出数据图

而将上面的 gam fit 替换为:

但否则运行相同的代码会产生这个合理的预测值图:

其他输出图

我在这里做错了什么?

0 投票
1 回答
445 浏览

r - 如何将 gam() 合并到 Lattice 包中的 xyplot() 中?

我正在尝试将通用附加模型gam()mgcv包合并到R中的xyplot()函数或coplot()函数。lattice

通过选择臭氧数据,可以在http://statweb.stanford.edu/~tibs/ElemStatLearn/中找到数据。

这是我的内核平滑代码。

或者

广义加性模型生成如下。

现在我在将拟合组合gam()到格子图中时遇到了麻烦。

0 投票
0 回答
296 浏览

r - 如何回收 mgcv 使用的内存?

我遇到了一个问题,即在使用 R 包 mgcv 运行大量 GAM 时内存不足。我加载库并使用以下脚本初始化一些随机数据。

这给

接下来我适合十个 GAM 并检查内存使用情况

结果是

请注意,我只创建了一个对象(适合),但内存使用量是该对象大小的三倍。最终,当我安装更多模型时,R 完全耗尽了内存。我一直在做的是保存到磁盘

然后开始一个新会话并重新加载

瞧!记忆回来了

有什么方法可以在不需要保存到磁盘、启动新会话然后从磁盘加载的情况下重新声明内存?

0 投票
1 回答
1359 浏览

r - 具有新因子水平的 predict.gam

我正在对物种分布数据进行障碍类型分析,其中涉及两个拟合步骤。第一步是使用 family=quasibinomial 的所有数据对 (m1) 存在/不存在数据进行建模。第二步(m2)是使用family=Gamma的仅正存在数据。这非常有效,直到我尝试在完整数据集上使用第二个模型 (m2) 进行预测,但由于新的因子水平,我收到了一个错误。我了解我收到此错误的原因;完整数据集中出现的因子水平在减少(仅存在)数据集中不存在。我的问题是如何解决这个错误,以便我可以使用完整集上的第二个模型获得预测?我正在使用mgcv。

编辑:更新了额外的代码和数据。

运行第二个模型会给我以下错误:

0 投票
2 回答
4676 浏览

r - 如何在 R 中向 GAMM 模型添加随机截距和随机斜率项

我试图在具有一个固定效应的 GAMM 模型中同时指定随机截距和随机斜率项。

我已经使用库中的以下代码成功地为模型拟合了随机截距mgcv,但现在无法确定gamm()函数中随机斜率的语法是什么:

如果我在线性混合效应模型中同时使用随机截距和斜率,我将按以下方式编写它:

gamm()支持文档指出,随机项需要以如下形式给出,但listlme()找不到任何包含斜率和截距项的可解释示例。任何建议/解决方案将不胜感激。

0 投票
0 回答
1261 浏览

r - R中的奇异精度矩阵警告

我正在运行这种形式的不同模型:

R 不会给我一个错误(即我有一个输出),但我有一个像这样的警告:

  1. 这是什么意思?
  2. 这是一个问题还是我可以忍受它?