问题标签 [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 回答
1890 浏览

r - 来自 gam predict$fit 和 predict$se.fit 的 ggplot 置信带

我有以下变量:

prod: 正整数

tenure: 正数

cohort: 因素

这是一些具有这些规格的模拟数据。

我使用以下模型拟合mgcv:gam

得到预测及其标准误:

package:ggplot2使用它来获取每个群组的平滑预测是相当简单的mu(同时也强制平滑器具有正值):

但我想平滑 GAM 的置信区间。我该如何添加这些?

不是答案

  1. 删除fill = NA. 没有。这些置信区间将无限小,因为在一个队列中按任期进行的预测完全相同。
  2. 添加对 的调用geom_ribbon(aes(x = tenure, ymin = low, ymax = high))。没有。这给了我一个超级摇摆不定、不平滑的信心带。
  3. 使用package:ggvis!没有package:ggvis答案,请,除非没有办法做到这一点ggplot2。我当前的绘图框架是ggplot2,我现在坚持使用它,除非我必须切换才能执行此绘图。
0 投票
2 回答
4943 浏览

r - 如何为 R 中的每个变量提取 GAM {mgcv} 的拟合值?

我正在寻找一种方法来添加模型中每个变量的预测(真实,非标准化)值

> model<-gam(LN_Brutto~s(agecont,by=Sex)+factor(Sex)+te(Month,Age)+s(Month,by=Sex), data=bears)

这是我的模型的摘要:

此代码提供了预测值:

结果如下所示:

但我猜这些只是标准化的预测值,而不是真实值(真实值应该没有负值!?)。

那么有谁知道我必须在代码中修改什么才能获得真正的价值?任何的想法?谢谢!

0 投票
0 回答
844 浏览

r - 具有自相关和二进制数据的 GAMM

gamm有人可以为R 中包含自相关的函数(如 中的gamm(...,correlation=corAR1())函数)推荐一种方法,mgcv但也推荐用于处理二进制响应数据?帮助文件有一个关于将其用于二进制数据的gamm()明确警告。

“gamm 在二进制数据上表现不佳,因为它使用PQL. 最好gams(...,bs="re")术语或. 一起使用gamm4。”

据我所知,gamm4目前还没有自相关的实现。

希望我只是错过了一些明显的东西。

谢谢!

0 投票
1 回答
411 浏览

r - 在绘制 mgcv 中的因子平滑交互时,一些论点未按预期工作

我绘制了一个s(... bs = "fs")mgcv包中构建的因子平滑交互图。然而,似乎 的xlimmain参数(以及一些其他参数)plot.gam()无法正常工作,尽管用于绘制其他类型平滑的相同参数也有效。

这是一个例子。

更新:我修改了示例以更好地反映我遇到的问题(2014 年 12 月 2 日)。

以下代码生成与上述s(x)术语相对应的图,限制 x 轴并按预期放置标题。

但是,以下代码生成与上述术语对应的绘图s(x, f, bs = "fs"),不会限制 x 轴或生成标题。

我怀疑mgcv::plot.gam()未能将(某些)论点传递给mgcv:::plot.fs.interaction()mgcv:::plot.mgcv.smooth()在某些情况下,但无法弄清楚它为什么会发生以及如何解决它。我将不胜感激任何帮助。

0 投票
1 回答
1120 浏览

r - 用插入符号验证泊松 GAM 模型

我正在尝试使用 R 中的“caret”包对广义加法模型 (GAM) 运行交叉验证。我可以让它为 GLM 工作,并认为运行相同的东西应该很简单GAM,但无法使其正常工作,请参见下文:

运行最后一行时抛出的关键警告是:

似乎以某种方式将家庭参数传递给 gam() 的方式与在 glm() 中的方式相同。在彻底搜索网络后,我没有找到任何工作示例。任何帮助,将不胜感激!

缺口

0 投票
1 回答
1032 浏览

r - 关于 R 中 mgcv 包中的马尔可夫随机场的困惑

为了实现空间分析,我在 R 的 mgcv 包中的一个示例中尝试了一个简单的马尔可夫随机场平滑器,手册在这里:

https://stat.ethz.ch/R-manual/R-devel/library/mgcv/html/smooth.construct.mrf.smooth.spec.html

这是我试过的例子:

但是,当我查看 b$coefficients 中的估计系数时,马尔可夫随机场平滑器有 48 个估计值:

但是,区域形状列表显示 49 个区域(从 0 到 48)。当我尝试我的数据时,同样的情况发生了,因为包含 28 个区域的数据仅从马尔可夫随机场平滑器中产生了 27 个估计值。

我的理解是,作为空间函数的马尔可夫随机场可以看作是一种结构化的随机效应;然而,R 中 mgcv 包中的马尔可夫随机场平滑器似乎自动将第一个区域设置为参考水平。我想知道它是否就像一个固定效应但在考虑空间自相关的情况下?

如果是这样,一个扩展的问题是如何解释这样的输出?我觉得很奇怪,空间估计可以解释为每个区域与参考区域之间的差异,但这种解释并没有太大意义。

我在想我们是否可以像 R 中的随机效应一样拟合马尔可夫随机场。希望熟悉这个包的任何人都可以提供一些建议。谢谢!

0 投票
0 回答
827 浏览

r - 二项式时间 GAMM 不收敛 (R::mgcv)

我对混合效果和加法模型都很陌生,所以如果这里的答案很简单,我很抱歉。

我收集了关于几种代谢化学物质(M1、M2...)、协变量(时间、种族、性别...)和疾病状态(D、D.binary)的数据。我正在尝试根据从 GEE 变量选择中选择的变量生成 GAMM。

数据:

  • 8 例,51 例匹配对照
  • 每个受试者大约 10 个时间点
  • ~630 次观察
  • M1,M2...M3 是代谢物,其中许多是由共同部分形成的,代谢物水平相关,因为它们竞争相同的组成部分
  • 协变量将受试者分层为亚组

这是我现在的模型:

在此处输入图像描述

在此处输入图像描述

我怀疑我可能搞砸了一些相当基本的东西,因为 M1 是疾病状态最明显的鉴别器。它很重要(应该如此),但相关性非常低。此外,很明显,模型没有收敛(即使我将迭代次数从 20 增加到 50)。最后检查图看起来非常离谱

问题

我犯了基本的语法错误吗?我正在查看的模型中是否有一些恶意组件?任何帮助将不胜感激。

进一步的工作

我想在模型中添加另一个代谢物 (M2) 和 2 个协变量(出生体重和种族)。当我将 M2 添加到模型中时,我得到一个非收敛错误:

任何有关进入多维空间的建议也将不胜感激。

添加

我还使用离散疾病分类(对照:0,1 疾病:2,3)和泊松噪声尝试了这个模型。

0 投票
1 回答
220 浏览

r - MGCV 获取设计矩阵

以样条为基础的 GAM 回归由以下成本函数定义:

cost = ||y - S \beta ||^2 + scale * integral(|S'' \beta|^2)

其中S是由样条定义的设计矩阵。

在 RI 中可以gam使用以下代码进行计算:

我想获得由函数S生成的设计矩阵。s()

我怎样才能做到这一点?

0 投票
1 回答
250 浏览

r - mgcv 访问estimate.gam 函数

我正在使用 R 库mgcv

gam 函数返回一个具有edf1值的对象

我需要了解这个值是如何计算的,所以我正在阅读gam()函数的代码。

里面 gam()的结果是由另一个函数获得的

问题是我无法访问该estimate.gam()功能

我该如何解决这个问题?

0 投票
1 回答
94 浏览

r - 从跨数据帧应用的多个 GAM 中提取模型可靠性

我已经能够在数据帧中迭代地应用通用加法模型,所以其中 sp_a 是响应变量......

这会在响应变量和每个解释变量之间迭代地创建一个 GAM。但是,我将如何从每个模型中提取 p 值或 s.pv。有人知道怎么做这个吗?另外,像这样按照他们的 AIC 分数对他们进行排名会很棒......

但是从原始的“Gam”输出中选择它。感谢您提前提供任何帮助。