问题标签 [gam]

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 回答
1820 浏览

r - 使用 R 的分级 GAM 结果的均方根偏差

背景

PostgreSQL 数据库使用 PL/R 调用 R 函数。计算 Spearman 相关性的 R 调用如下所示:

同样在 R 中,对拟合的广义相加模型 (GAM) 进行了简单计算:

这里x代表从 1900 年到 2009 年的年份,y是该年的平均测量值(例如,最低温度)。

问题

拟合的趋势线(使用 GAM)相当准确,如下图所示:

问题是相关性(显示在左下角)不能准确地反映模型与数据的拟合程度。

可能的解决方案

提高相关精度的一种方法是对分箱数据使用均方根误差 (RMSE) 计算。

问题

问题 1。您将如何在 R 语言中对分箱数据执行 RMSE 计算以获得 GAM 与测量值的相关性(0 到 1 之间)?

问题 2。有没有更好的方法来找到 GAM 对数据的拟合精度,如果有,它是什么(例如,均方根偏差)?

尝试的解决方案 1

  1. 使用观察量和模型 (GAM) 量调用 PL/R 函数:/li>
  2. 定义plr_corr_rmse如下(其中om表示观察到的和建模的数据):/li>

o - m是错的。我想通过计算mean每 5 个数据点(最多有 110 个数据点)来合并两个数据集。例如:

然后将 RMSE 计算更正为:

如何c( mean(o[1:5]), mean(o[6:10]), ... )在适当数量的 bin 中计算任意长度的向量(例如,5 可能不适合仅 67 次测量)?

我觉得hist这里不适合,是吗?

尝试的解决方案 2

以下代码将解决该问题,但它会从列表末尾删除数据点(以使列表可被 5 整除)。该解决方案并不理想,因为数字“5”相当神奇。

还有哪些其他选择?

提前致谢。

0 投票
1 回答
440 浏览

r - 从正弦噪声预测值

背景

使用 R 预测系列中的下一个值。

问题

以下代码为具有一些均匀噪声的曲线生成并绘制模型:

正如预期的那样,该模型揭示了趋势。麻烦在于预测后续值:

绘制时预测看起来不正确:

预测值(从 201 开始)似乎太低了。

问题

  1. 如图所示,预测值是否实际上是最准确的预测?
  2. 如果不是,如何提高准确性?
  3. 连接两个数据集(fitted.values( gam.object )p)的更好方法是什么?
0 投票
1 回答
2383 浏览

r - 在 gamm4 R 封装中进行 GAM-GEE?

我正在尝试分析生物的一些视觉横断面数据以生成栖息地分布模型。一旦看到有机体,就会在给定时间间隔收集点数据时跟踪它们。由于这些“跟随”之间的自相关,我希望使用类似于 Pirotta 等人的 GAM-GEE 方法。2011,使用包'yags'和'splines'(http://www.int-res.com/abstracts/meps/v436/p257-272/)。他们的 R 脚本显示在这里 (http://www.int-res.com/articles/suppl/m436p257_supp/m436p257_supp1-code.r)。我使用此代码的成功有限,并且存在多个模型无法收敛的问题。

以下是我的数据结构:

这是我的块变量的摘要(指示每个块中存在自相关的组数

但是,我想使用'gamm4'包,因为我更熟悉Simon Wood教授的包和功能,看来gamm4可能是最合适的。重要的是要注意模型具有二元响应(沿样带的有机体存在缺失),因此我认为 gamm4 比 gamm 更合适。在 gamm 帮助中,它为因子内的自相关提供了以下示例:

按照此示例,以下是我用于数据集的代码

但是,通过检查输出 (summary(b$gam)) 和特别是 summary(b$mer)),我要么不确定如何解释结果,要么不相信组内的自相关被考虑在内.

如何确保在“块”变量的每个唯一值中确实考虑了自相关?解释“summary(b$mer)”输出的最简单方法是什么?

结果确实与使用相同变量和参数但没有“correlation=...”术语的普通 gam(包 mgcv)不同,表明正在发生不同的事情。

但是,当我为相关项(季节)使用不同的变量时,我得到了相同的输出:

我只是想确保它正确地允许“块”变量的每个值内的相关性。我如何制定模型来说明自相关可以存在于块的每个单个值中,但假设块之间是独立的?

另一方面,在大型模型(变量多于 2)的模型完成后,我还会收到以下警告消息:

0 投票
1 回答
1054 浏览

r - 关于在 R 中使用 GAM 模型

目前,我正在使用 GAM 模型复制 Wood(2006 年)关于芝加哥空气污染与死亡率之间关系的练习。

因此,我遵循了他在书中使用的代码。该库称为“gamair”,数据框为“chicago”。

我把这个(就像这本书一样):

但我得到一个错误:

有人可以解释一下吗?

非常感谢。

0 投票
1 回答
1337 浏览

r - 使用 GAM 拟合降低因子水平

我正在使用 GAM 模型根据给定点的某些环境条件来预测物种丰度。我创建了一个广义加法模型 (GAM) 来执行此操作并以此为基础进行预测。但是,我在模型方程中有一个分类变量(沉积物类型 = [1,2,3,4])。该方程似乎工作得很好,但是拟合的结果似乎将因子水平“1”吸收到截距中。见下文。

谁能解释这个模型发生了什么?我不完全明白。这是在 R 中使用 mgcv 包运行的。谢谢!

0 投票
1 回答
1332 浏览

r - r中的单个游戏图

我使用了一个广义的加法模型来分析一些数据,现在希望绘制结果。

从上面的示例中,如何将各个图保存到不同的 pdf 文件中?

0 投票
1 回答
704 浏览

r - 在 r 中绘制 gam 模型的正确值

我有以下示例(与我的数据格式相似):

从这个模型中,绘制的结果首先显示了平均温度变化作为一年中一天的函数,然后是每个位置的温度与这个平均值的变化量。一天中的时间也是如此。

问题在于 y 轴没有显示正确的值范围,即第一个图没有显示这些位置的平均温度。如何更改绘图以显示 (1) 两个位置的平均温度和 (2) 每个位置的温度与平均值相比,而不是某个任意数字。

如果我没有明确表达我的意图,请告诉我,我会尽力提供一个更好的例子。

0 投票
2 回答
1058 浏览

r - 使用具有周期性平滑器的 GAM 预测新数据时返回错误

如果这更适合 CrossValidated,我们深表歉意。

我正在使用 R 中的 mgcv 包将 GAM 模型拟合到二项式数据。协变量之一是周期性的,因此我指定了bs = "cc"循环三次样条。我在交叉验证框架中执行此操作,但是当我使用该predict函数拟合我的保留数据时,出现以下错误:

这是一些应该复制错误的代码:

任何关于我哪里出错的建议将不胜感激。也许手动指定结落在 -pi 和 pi 上?

0 投票
1 回答
2567 浏览

r - 如何手动指定外结以在 gam 中更平滑(mgcv 包)

我正在使用 R 中的 mgcv 包将 GAM 模型拟合到数据。我的一些预测变量是圆形的,所以我使用的是周期性平滑器。我在交叉验证中遇到了一个问题,我的保留数据集可能包含训练数据范围之外的值。由于 gam 包自动为平滑选择结,这会导致错误(请参阅我的相关问题-感谢@nograpes 和 @DWin 对那里错误的解释)。

如何手动指定周期性平滑的外部结?

示例代码

第一个块生成一些数据。

下一个块用周期性平滑拟合 GAM 模型:

它将在更平滑术语的规范中的某个地方,s(x,bs="cc",k=5)我相信你将能够设置一些结,但这对我来说在谷歌搜索的帮助下并不明显gam

如果您按上述方式设置种子,此块将适合一些保留数据并产生错误:

理想情况下,我只会设置外部结,然后gam选择其余的。

如果这个问题对于 CrossValidated 来说比 SO 更好,我们深表歉意。

0 投票
0 回答
310 浏览

r - 将样条曲线拟合到凌乱的曲线

我权衡了点不完全平滑的模拟生成的曲线。我想拟合样条曲线并计算最大值。由于点的锯齿状特性,尤其是在峰值附近,将样条曲线拟合到整个曲线是没有意义的。相反,我想丢弃曲线的大多数(不是全部)无信息部分(其中点不是均匀地增加/减少),以便我可以拟合更好的样条曲线。

这里有 3 条示例曲线。

这是我的spline功能。

任何人都可以提出一种算法或想法,使我能够专注于曲线中点变化更多的部分,并仅将样条拟合到那些(并丢弃峰值两侧没有贡献的其他点更多信息)?