Полный экран В начало сайта

Моделирование ARIMA - временного ряда средствами MatLab 6.0

Содержание.

Введение. *

1. Генерация временного ряда авторегрессии первого порядка AR(1). *

2. Идентификация ARIMA модели. *

2.1 Выбор между простой (нулевого порядка) и полной (первого порядка) моделями. *

2.2 Упрощение полной модели. *

2.2.1 Оценка модели скользящего среднего. *

2.2.2 Оценка модели авторегрессии. *

2.2.3 Сравнение полной и укороченной модели. *

3. Интерполяция временного ряда плавной кривой. *

4. Прогноз временного ряда. *

5. Выводы. *

Введение.

Мне поступило предложение от одной фирмы проверить, насколько программа математических вычислений MatLab адекватно моделирует ARIMA временные ряды. Подход ARIMA – это модное направление в прогнозировании. Он позволяет скромными средствами с помощью небольшого количества параметров описать бесконечное разнообразие временных рядов, наблюдающихся в реальной жизни. Сформулируем цели исследования:

  1. разработать метод идентификации ARIMA модели временного ряда,
  2. сделать прогноз на несколько шагов
  3. интерполировать временной ряд гладкой функцией
  4. освоить программирование в среде MatLab

Код в виде М-файла, который выполняет расчеты в программе MatLab 6.0, можно скачать здесь.

1. Генерация временного ряда авторегрессии первого порядка AR(1).

ARIMA моделирует стационарные временные ряды без сезонности и тренда. В качестве тестового временного ряда выберем ряд авторегрессии 1-ого порядка R=1, M=0, который определяется формулой:
(1)

, где l =0 - константа скользящего среднего M

Yt - значение временного ряда в момент t

t - время

d =1 - константа сдвига

j =0.8 - константа авторегрессии R

e - случайная величина, распределенная по стандартному нормальному закону.

100 временных точек ряда показаны на рис.1.

Рис.1 Исходный временной ряд авторегрессии 1-ого порядка d =1, j =0.8.

Долгосрочное среднее значение ряда равно =d /(1- j )=5. Оклонение от среднего значения вызвано случайной компонентой e и зависимостью Y=Y(t). , поэтому стандартное отклонение ряда s Y>s e =1. Из рис.1 видно, что ряд обладает временной инерцией: некоторое время он превышает среднее значение, потом наоборот и т.д. Это обусловлено авторегрессией R, которая связывает соседние члены ряда линейной зависимостью (1).

2. Идентификация ARIMA модели.

2.1 Выбор между простой (нулевого порядка) и полной (первого порядка) моделями.

Определим порядок и вид ARIMA модели. Для начала сравним простую модель нулевого R=M=0 порядка и полную модель первого порядка R=M=1.

В табл.1 даны коэффициенты и их ошибки простой модели.

Табл.1 Коэффициенты простой R=M=0 модели.

Parameter

Value

Standard Error

T Statistic

C

5.2854

0.11968

44.1608

K

1.421

0.20862

6.8116

Коэффициент C равен d в (1). Коэффициент К равен дисперсии случайной величины e .

В табл.2 даны коэффициенты и их ошибки полной модели.

Табл.2 Коэффициенты полной R=M=1 модели.

Parameter

Value

Standard Error

T Statistic

C

1.6325

0.56931

2.8675

AR(1)

0.69044

0.10677

6.4665

MA(1)

0.016677

0.15171

0.1099

K

0.73722

0.11407

6.4626

Коэффициент AR(1) равен j в (1). Коэффициент MA(1) равен l .

Из таблиц 1, 2 видно, что ошибки коэффициентов обеих моделей, кроме MA(1), меньше самих величин. Это говорит об адекватности обеих моделей. Далее проверим ряд остатков на зависимость. Для этого построим графики автокорреляционных функций остатков, рис.2.

Рис.2 Графики автокорреляционных функций остатков простой модели R=M=0 (вверху) и модели авторегрессии и скользящего среднего первого порядка R=M=1 (внизу).

Из рис.2 видно, что 1, 2, 13, 14-ый коэффициенты автокорреляции простой модели R=M=0 выходят за границы доверительного интервала (синяя горизонтальная линия), тогда как в полной модели R=M=1 почти все коэффициенты, кроме 15-ого, лежат в доверительном интервале.

Вывод: полная модель первого порядка R=M=1 лучше отражает свойства исходного ряда по сравнению с моделью нулевого порядка.

2.2 Упрощение полной модели.

В п.2.1 показано, что полная модель авторегрессии и скользящего среднего 1-го порядка лучше описывает ряд, чем модель нулевого порядка. Существуют три модели первого порядка:

    1. скользящего среднего R=0, M=1
    2. авторегрессии R=1, M=0
    3. полная модель: авторегрессии и скользящего среднего R=1, M=1

В п.2.1 была проанализирована только 3-я полная модель R=1, M=1. Нельзя ли ее упростить до R=0, M=1 или R=1, M=0 моделей?

2.2.1 Оценка модели скользящего среднего.

Из табл.2 следует, что ошибка коэффициента скользящего среднего MA(1) в 10 раз больше самого коэффициента MA(1). В табл.3 даны коэффициенты и их ошибки модели скользящего среднего R=0 M=1:

Табл.3 Коэффициенты модели скользящего среднего.

Parameter

Value

Standard Error

T Statistic

C

5.2853

569.73

0.0093

MA(1)

0.57631

357.93

0.0016

K

3388.1

677.8

4.9987

Из табл.3 видно, что ошибка в коэффициентах C и MA(1) много больше самих величин.

Вывод: модель скользящего среднего R=0, M=1 не подходит для описания ряда.

2.2.2 Оценка модели авторегрессии.

В табл.4 даны коэффициенты и их ошибки модели авторегрессии R=1 M=0:

Табл.4 Коэффициенты модели авторегрессии.

Parameter

Value

Standard Error

T Statistic

C

1.5881

0.43079

3.6864

AR(1)

0.6989

0.07903

8.8434

K

0.73735

0.11381

6.4790

Из табл.4 следует, что ошибки всех коэффициентов меньше величин самих коэффициентов.

Вывод: модель авторегрессии 1-ого порядка подходит для описания ряда.

2.2.3 Сравнение полной и укороченной модели.

Какую модель выбрать: полную R=M=1 или укороченную R=1 M=0 ? В полной модели ошибка коэффициента скользящего среднего MA(1) очень велика, см.табл.2. Вопрос: нельзя ли положить коэффициент MA(1)=0 ? Проверим нулевую гипотезу MA(1)=0. Для этого вычислим LRT статистику на уровне значимости 0,05. Результаты теста показаны в табл.5

Табл.5 LRT статистика.

H

pValue

Stat

CriticalValue

0

0.8906

0.0189

3.8415

Из табл.5 видно, что уровень значимости нулевой гипотезы pValue>0.05.

Вывод 1: две модели - полная R=M=1 и укороченная R=1 M=0 неразличимы, поэтому выбираем более простую (по сравнению с полной) модель авторегрессии первого порядка R=1 M=0.

Вывод 2: Программа MatLab успешно идентифицировала первоначальный тип ARIMA модели R=1 M=0 и правильно оценила коэффициенты модели, см.п.1 и табл.4:

ошибка в сдвиге d равна=|1.5881- 1|» 0,6

ошибка в регрессии j равна=|0.6989- 0,8|» 0.1

ошибка в дисперсии s 2 равна=|0.73735- 1|» 0.3

Сравнение вычисленных программой и фактических ЗНАЧЕНИЙ коэффициентов дано в табл.6:

Табл.6 Коэффициенты в модели авторегрессии.

Величина

d

j

s 2

Оценка

1.5881

0.6989

0.73735

Факт

1

0,8

1

Из таблицы 6 следует, что наибольшая погрешность для всех коэффициентов не превышает 60%.

Сравнение вычисленных программой и фактических ОШИБОК коэффициентов из табл.6 дано в табл.7:

Табл.7 Абсолютные ошибки коэффициентов модели авторегрессии.

Ошибка

d

j

s 2

Оценка

0.43079

0.07903

0.11381

Факт

0,6

0.1

0.3

Из таблицы 7 следует, что фактические и прогнозируемые ошибки совпадают по порядку величины, кроме дисперсии s 2, для которой фактическая ошибка больше прогнозируемой в 3 раза!

3. Интерполяция временного ряда плавной кривой.

Процесс авторегрессии первого порядка стационарен, т.е. с течением времени остается вблизи среднего значения ср.знач = C/[1- AR(1)] = 1.5881/(1- 0.6989) » 5.3

Вывод: наилучшей гладкой кривой, приближающей временной ряд (1), является горизонтальная прямая, определяемая формулой: y(t) = ср.знач = 5.3

4. Прогноз временного ряда.

Временной ряд (синяя линия) и его прогноз (красная линия) на 10 шагов, вычисленный MatLab, показан на рис.3

Рис.3 Исходный временной ряд и его прогноз на 10 шагов.

Из рис.3 видно, что с течением времени ряд прогнозов (красная линия) асимптотически приближается к долгосрочному среднему значению, вычисленному в п.3. Ошибку прогноза можно грубо оценить из рис.3 по максимальному размаху колебаний. Среднеквадратичная ошибка прогноза равна s » (8–2)/2=3.

Вывод: ряд с течением времени будет колебаться вокруг среднего значения ср.знач=5,3 с амплитудой колебаний s =3.

5. Выводы.

Программа MatLab 6.0 не способна автоматически идентифицировать тип и порядок ARIMA-модели. Коэффициенты модели оцениваются правильно, но ошибка в оценке дисперсии случайной компоненты занижена в 3 раза.

Следующая статья

Предыдущая статья

Hosted by uCoz