Для этого вы можете использовать функцию corARMA(p, q)
в пакете nlme . corAR1(p)
- это особая функция, так как для этой конкретной модели есть определенные преимущества.
Вы должны передать q
и / или 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))
При рассмотрении остатков обязательно извлеките нормализованные остатки, поскольку они будут включать в себя влияние оцениваемого процесса МА:
resid(m1, type = "normalised")