Добавление компонента скользящей средней в модель GAMs - PullRequest
0 голосов
/ 12 июня 2019

У меня есть простая модель, для которой остатки демонстрируют автокорреляцию за пределами одного порядка.

У меня есть простая модель, для которой я хочу включить компонент скользящего среднего до третьего порядка.

Моя модель такова:

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

свойства y временного ряда показывают, что это соответствует ARMA (0,0,3)

, потому что остаткиm1 автокоррелированы. Я хочу включить компонент скользящего среднего в m1

Ответы на похожие вопросы говорят только о процессе AR (1), что не является моим случаем.

1 Ответ

1 голос
/ 12 июня 2019

Для этого вы можете использовать функцию 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")
...