在 GAMs 模型中添加移动平均组件

Adding an Moving Average component in GAMs model

我有一个简单的模型,其残差表现出超过一阶的自相关性。

我有一个简单的模型,我想在其中包含高达三阶的移动平均分量。

我的模型是这样的:

m1<-gamm(y~s(x,k=5), data = Training)

y 的时间序列属性表明它遵循 ARMA(0,0,3)

因为 m1 的残差是自相关的,所以我想在 m1

中包含一个移动平均分量

类似问题的答案只讲了一个AR(1)过程,我的不是。

为此,您可以使用包 nlme 中的 corARMA(p, q) 函数。 corAR1(p) 只是一个特例函数,因为该特定模型具有一定的效率。

您必须通过 q and/or p 来获取 ARMA(p, q) 过程的顺序,p 指定 AR 项的顺序和q MA 项的顺序。您还需要传入一个对观察结果进行排序的变量。假设您有一个时间序列并且您希望 MA 过程在整个时间序列级别运行(而不是说在几年内但不是之间)那么您应该创建一个 time 变量来索引观察的顺序;这里我假设这个变量叫做 time.

那么调用是:

m1 <- gamm(y ~ s(x, k = 5), data = Training,
           correlation = corARMA(q = 3, form = ~ time))

查看残差时,一定要提取归一化残差,因为它们将包括估计的 MA 过程的影响:

resid(m1, type = "normalised")