问题标签 [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.
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
- 使用观察量和模型 (GAM) 量调用 PL/R 函数:/li>
- 定义
plr_corr_rmse
如下(其中o
和m
表示观察到的和建模的数据):/li>
o - m
是错的。我想通过计算mean
每 5 个数据点(最多有 110 个数据点)来合并两个数据集。例如:
然后将 RMSE 计算更正为:
如何c( mean(o[1:5]), mean(o[6:10]), ... )
在适当数量的 bin 中计算任意长度的向量(例如,5 可能不适合仅 67 次测量)?
我觉得hist
这里不适合,是吗?
尝试的解决方案 2
以下代码将解决该问题,但它会从列表末尾删除数据点(以使列表可被 5 整除)。该解决方案并不理想,因为数字“5”相当神奇。
还有哪些其他选择?
提前致谢。
r - 从正弦噪声预测值
背景
使用 R 预测系列中的下一个值。
问题
以下代码为具有一些均匀噪声的曲线生成并绘制模型:
正如预期的那样,该模型揭示了趋势。麻烦在于预测后续值:
绘制时预测看起来不正确:
预测值(从 201 开始)似乎太低了。
问题
- 如图所示,预测值是否实际上是最准确的预测?
- 如果不是,如何提高准确性?
- 连接两个数据集(
fitted.values( gam.object )
和p
)的更好方法是什么?
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)的模型完成后,我还会收到以下警告消息:
r - 关于在 R 中使用 GAM 模型
目前,我正在使用 GAM 模型复制 Wood(2006 年)关于芝加哥空气污染与死亡率之间关系的练习。
因此,我遵循了他在书中使用的代码。该库称为“gamair”,数据框为“chicago”。
我把这个(就像这本书一样):
但我得到一个错误:
有人可以解释一下吗?
非常感谢。
r - 使用 GAM 拟合降低因子水平
我正在使用 GAM 模型根据给定点的某些环境条件来预测物种丰度。我创建了一个广义加法模型 (GAM) 来执行此操作并以此为基础进行预测。但是,我在模型方程中有一个分类变量(沉积物类型 = [1,2,3,4])。该方程似乎工作得很好,但是拟合的结果似乎将因子水平“1”吸收到截距中。见下文。
谁能解释这个模型发生了什么?我不完全明白。这是在 R 中使用 mgcv 包运行的。谢谢!
r - r中的单个游戏图
我使用了一个广义的加法模型来分析一些数据,现在希望绘制结果。
从上面的示例中,如何将各个图保存到不同的 pdf 文件中?
r - 在 r 中绘制 gam 模型的正确值
我有以下示例(与我的数据格式相似):
从这个模型中,绘制的结果首先显示了平均温度变化作为一年中一天的函数,然后是每个位置的温度与这个平均值的变化量。一天中的时间也是如此。
问题在于 y 轴没有显示正确的值范围,即第一个图没有显示这些位置的平均温度。如何更改绘图以显示 (1) 两个位置的平均温度和 (2) 每个位置的温度与平均值相比,而不是某个任意数字。
如果我没有明确表达我的意图,请告诉我,我会尽力提供一个更好的例子。
r - 使用具有周期性平滑器的 GAM 预测新数据时返回错误
如果这更适合 CrossValidated,我们深表歉意。
我正在使用 R 中的 mgcv 包将 GAM 模型拟合到二项式数据。协变量之一是周期性的,因此我指定了bs = "cc"
循环三次样条。我在交叉验证框架中执行此操作,但是当我使用该predict
函数拟合我的保留数据时,出现以下错误:
这是一些应该复制错误的代码:
任何关于我哪里出错的建议将不胜感激。也许手动指定结落在 -pi 和 pi 上?
r - 如何手动指定外结以在 gam 中更平滑(mgcv 包)
我正在使用 R 中的 mgcv 包将 GAM 模型拟合到数据。我的一些预测变量是圆形的,所以我使用的是周期性平滑器。我在交叉验证中遇到了一个问题,我的保留数据集可能包含训练数据范围之外的值。由于 gam 包自动为平滑选择结,这会导致错误(请参阅我的相关问题-感谢@nograpes 和 @DWin 对那里错误的解释)。
如何手动指定周期性平滑的外部结?
示例代码
第一个块生成一些数据。
下一个块用周期性平滑拟合 GAM 模型:
它将在更平滑术语的规范中的某个地方,s(x,bs="cc",k=5)
我相信你将能够设置一些结,但这对我来说在谷歌搜索的帮助下并不明显gam
。
如果您按上述方式设置种子,此块将适合一些保留数据并产生错误:
理想情况下,我只会设置外部结,然后gam
选择其余的。
如果这个问题对于 CrossValidated 来说比 SO 更好,我们深表歉意。
r - 将样条曲线拟合到凌乱的曲线
我权衡了点不完全平滑的模拟生成的曲线。我想拟合样条曲线并计算最大值。由于点的锯齿状特性,尤其是在峰值附近,将样条曲线拟合到整个曲线是没有意义的。相反,我想丢弃曲线的大多数(不是全部)无信息部分(其中点不是均匀地增加/减少),以便我可以拟合更好的样条曲线。
这里有 3 条示例曲线。
这是我的spline
功能。
任何人都可以提出一种算法或想法,使我能够专注于曲线中点变化更多的部分,并仅将样条拟合到那些(并丢弃峰值两侧没有贡献的其他点更多信息)?