广义加法模型(GAM)中的自相关

时间:2017-12-01 03:14:29

标签: r model time-series gam mgcv

我有一个关于河流水温,气温和流速的时间序列数据集。我已经创建了一个GAM模型来预测基于空气温度和流量的水温。但是我没有考虑数据集中的自相关。预测变量和因变量中的每个数据点不是独立的(即第2天的空气温度与第1天的空气温度无关)。

有人可以帮助我使用适当的代码在我的模型中包含某种形式的自相关度量(AR1?)。据我了解,我需要使用gamm()函数而不是gam()函数?

我目前的型号如下:

model <- gam(W.T.Mean ~ s(T.Mean) +s(Discharge), data = Pre_regulation_temp)

W.T.Mean是平均每日水温。 T.Mean是平均每日气温。 放电是平均每日流量

提前致谢

1 个答案:

答案 0 :(得分:2)

你实际上有几个选择

  1. gamm() correlation = corAR1(form = ~ time)(其中time是变量,为您提供均匀间隔观测的时间排序
  2. bam()并指定已知值rho,即AR(1)参数。
  3. 也就是说,推理的问题是为条件的估计模型(即协变量的影响),响应是独立的且相同的分布。换句话说,我们期望模型的残差是独立的(不是自相关的)。如果气温对水温的瞬时(平滑)影响足以使模型残差独立,那么您不一定需要做任何事情来纠正模型。

    然而,如果气温的估计平滑效果非常波动,则可能表明估计的影响受到数据中自相关的影响。我期望空气和水温之间的相对简单的关系,在低端和高端都具有饱和效应。 MDASH;你不能让水量低于0但空气温度可以低于0℃。同样在高端,你不能获得相同的水温升高,以增加空气温度。因此,检查估计的平滑度,看看效果是否比您预期的更复杂。如果是,您应该尝试使用gamm(),并查看它如何改变估计的平滑度。如果它没有太大的区别,那么我会回到我原来的gam()并查看模型残差的自相关函数,如果这表明自相关有问题,那么你要么需要通过在gam()模型中添加字词来更正它,或者在指定了gamm()的情况下切换回correlation = ....并将其用于推理。

    其他更复杂的选项是使用 brms 包,它也可以估计具有AR或ARMA相关结构的模型。