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

时间:2019-06-12 12:48:43

标签: r time-series gam mgcv autocorrelation

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

我有一个简单的模型,我想为其包含一个移动平均分量直至三阶。

我的模特是这样:

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

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

因为m1的残差是自动相关的,所以我想在m1中包括移动平均值分量

类似问题的答案仅涉及AR(1)进程,而我不是这种情况。

1 个答案:

答案 0 :(得分:1)

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

您必须传递q和/或p来进行ARMA(p,q)处理的顺序,其中p指定AR术语的顺序,{{1} } MA术语的顺序。您还需要传递一个对观察进行排序的变量。假设您有一个单一的时间序列,并且您希望MA流程在整个时间序列级别上运行(而不是在一年之内但不是在两个时间间隔之间),那么您应该创建一个q变量来索引观察的顺序;在这里,我假设此变量称为time

然后致电是:

time

查看残差时,请确保提取归一化的残差,因为这些残差将包括估计的MA过程的影响:

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