Проверить временной ряд на стационарность объяснить как это сделать и выписать уравнение теста

Добавил пользователь Владимир З.
Обновлено: 18.09.2024

Условие задачи: построить модель временного ряда в Eviews по имеющимся данным. Ниже приведены видеоуроки и отчет по решению. Закачка файла с данными, файлов решения задачи в EViews и отчёта с результатами в Word начнется автоматически через 10 секунд.

Рассмотрены следующие вопросы: Экспорт данных из Excel в EViews. Тесты на единичный корень. Тест Дики-Фуллера. Построение коррелограммы. Идентификация модели временного ряда. Начальное построение модели на основании полученных данных. Модель авторегрессии. Применение информационных критериев. Создание фиктивных переменных. Фиктивные переменные для компенсации выбросов во временном ряду. Проверка ряда на гетероскедастичность остатков. Тест Вайта. Устранение гетероскедастичности временных рядов. Авторегрессионная условная гетероскедастичность. Модели ARCH и GARCH с условной гетероскедастичностью. Прогноз и интерпретация полученной модели временного ряда.

Отчет.
Изобразим данный временной ряд.

Проверим стационарность данного временного ряда, используя ADF-тест (расширенный тест Дики-Фуллера).
Вероятность принятия р = 0,0003 2 = 391530,5 + 0,6964∙et-1 2 + 0,618∙et-2 2 – 0,9055∙ht-1 2
В результате мы получили модель, в которой все коэффициенты являются значимыми, а критерии Шварца и Акаике меньше по величине, чем критерии построенных нами выше моделей. Так же можем отметить высокое значение коэффициента детерминации.
Проверим стационарность остатков модели, для этого постоим коррелограмму остатков.

Значения вероятностей не превосходят 0,05, следовательно, можно отметить стационарность остатков.
Тест на гетероскедастичность:

Вероятность принятия нулевой гипотезы нормальности 04, следовательно, остатки гомоскедастичны, гетероскедастичности нет.
Произведем прогноз по построенной модели.

Видим, что значение условной дисперсии стабилизируется на значении 662381.

Анализ стационарности проводится на основании расширенного теста Дики-Фуллера и теста Филлипса-Перрона. Мы отдаем предпочтение этим тестам, поскольку их нулевая гипотеза состоит в наличии у исследуемого ряда единичного корня.

Как следствие, отвержение нулевой гипотезы в пользу стационарности ряда будет существенным результатом. В то же время известно, что тест Дики-Фуллера, вообще говоря, обладает малой мощностью, т.е. часто может наблюдаться ситуация неотвержения нулевой гипотезы, когда она неверна. Тест Филлипса-Перрона на малых выборках еще менее надежен. Поэтому в случае получения неоднозначных и противоречащих здравому смыслу результатов мы будем использовать тест KPSS (Kwiatkowski-Phillips-Schmidt-Shin); его нулевая гипотеза, напротив, состоит в том, что исследуемый ряд является стационарным.

Ряд LNM0 графически изображен на рис. 11. Визуально его поведение можно охарактеризовать, скорее, как поведение нестационарного ряда. Кроме того, в данных присутствует детерминированная сезонность. Анализ коррелограммы ряда LNM0 (см. приложение А, табл. А-1) свидетельствует о нестационарности ряда, поскольку не наблюдается экспоненциальное убывание выборочной корреляционной функции.

Результаты расширенного теста Дики-Фуллера и Филлипса- Перрона подтверждают наше предположение о нестационарности ряда логарифмов денежной массы М0. Гипотеза о наличии единичного корня в ряде LNM0 не противоречит данным, в то время как гипотеза о наличии единичного корня в ряде разностей LNM0 отвергается данными (см. табл. 6).

Результаты проверки ряда LNM0 на стационарность

В то же время есть основания полагать, что помимо единичного корня ряд LNM0 может содержать сезонные корни.

Об этом свидетельствуют результаты разложения ряда в авторегрессионную модель AR(4) (т.е. регрессия на четыре запаздывающих значения), представленные в табл. 7. Мы видим, что ряд имеет четыре корня, по модулю близкие к единице.

По своему поведению ряд LNM1 напоминает ряд LNM0 (см. рис. 11). Анализ графика позволяет предположить, что ряд LNM1 является нестационарным. При этом мы можем наблюдать детерминированную сезонность в данных. Коррелограмма ряда LNM1 (см. приложение А, табл. А-2) также указывает на нестационарность ряда.

Результаты проверки свойств ряда расширенным тестом Дики- Фуллера свидетельствуют о том, что гипотеза о наличии единичного корня в ряде разностей LNM1 отвергается (см. табл. 8) и не отвергается в самом ряде LNM1.

Результаты проверки ряда LNMI на стационарность

Аналогично результаты теста Филлипса-Перрона говорят о том, что ряд LNM1 нестационарен в уровнях и стационарен в разностях (см.

табл. 8). Представление ряда LNM1 авторегрессионной моделью AR(4) дает следующий результат (см. табл. 9).

Этот результат, аналогично предыдущему случаю, может свидетельствовать о наличии сезонных единичных корней в ряде логарифмов денежной массы М1.

Ряд LNM2 графически изображен на рис. 11. Визуальный анализ позволяет сделать предположение о том, что ряд LNM2 является нестационарным. Аналогично другим денежным агрегатам исследуемый ряд обладает сезонностью. Вид коррелограммы ряда LNM2 (см. приложение А , табл. А-3) характерен для нестационарного ряда.

Результаты расширенного теста Дики-Фуллера и теста Филлипса- Перрона говорят о том, что ряд разностей LNM2 стационарен (см. табл. 10). Отметим, что значение статистики Дики-Фуллера находится на грани критического значения отвержения/неотвержения нулевой гипотезы.

Представление ряда LNM2 в виде авторегрессионной модели AR(4) указывает на то, что ряд может содержать в себе сезонные

единичные корни (см.

График ряда LNBROADM показан на рис. 11. Визуально его поведение говорит, скорее, о нестационарности ряда. При этом нет существенных оснований для предположения детерминированной сезонности в ряде. На основании анализа коррелограммы ряда LNBROADM (см. Приложение А, табл. А-4) мы предполагаем неста- ционарность ряда (ввиду отсутствия быстрого убывания выборочной корреляционной функции).

Результаты применяемых нами тестов говорят о том, что гипотеза о наличии единичного корня в ряде разностей LNBROADM отвергается (см. табл. 12), а в ряде уровней не отвергается.

Результаты проверки ряда LNBROADM на стационарность

Разложение ряда LNBROADM, используя модель AR(4), свидетельствует об отсутствии случайной сезонности в данных (см. табл. 13). Однако это не является доказательством отсутствия у ряда LNBROADM сезонных корней.

Таким образом, вышеприведенный анализ позволяет прийти к выводу о том, что ряды логарифмов денежных агрегатов являются рядами типа I(1) и, возможно, содержат также сезонные единичные корни.

График ряда LNP изображен на рис. 12. Визуально его поведение свидетельствует о явной нестационарности ряда и позволяет предположить, что ряд LNP содержит в себе два единичных корня или стационарен в разностях около константы и тренда. Анализ коррело- граммы ряда LNP (см. приложение А, табл. А-5) однозначно свидетельствует о нестационарности ряда.

Результаты расширенного теста Дики-Фуллера и теста Филлипса- Перрона позволяют отвергнуть гипотезу о том, что ряд разностей LNP содержит в себе единичный корень (см. табл. 14), при этом гипотеза о наличии единичного корня в ряде в уровнях не отвергается.

При этом дополнительное разложение ряда LNP в модель AR(4) дает основания предполагать отсутствие в ряде сезонных единичных

корней (см. табл. 15).

То есть мы приходим к выводу о том, что ряд логарифмов ИПЦ, вероятно, является интегрированным первого порядка.

Ряд LNRGDP графически изображен на рис. 13. Визуально сложно сделать вывод о том, является ли ряд TS или DS, так как в данных присутствует явно выраженная детерминированная сезонность (основные пики приходятся на III квартал). Исходя из коррелограммы ряда LNRGDP (см. приложение А, табл. А-6), мы приходим к выводу о том, что ряд нестационарен.

Результаты расширенного теста Дики-Фуллера отвергают гипотезу о том, что ряд разностей LNRGDP содержит в себе единичный корень (см. табл. 16). При этом гипотеза о наличии единичного корня в этом ряде в уровнях не отвергается.

Результаты проверки ряда LNRGDP на стационарность

В свою очередь, результаты теста Филлипса-Перрона говорят о том, что ряд LNRGDP стационарен в уровнях с константой и трендом (см. табл. 17).

Поэтому мы дополнительно применили тест KPSS. Было обнаружено, что результаты теста KPSS (см. табл. 18) отвергают гипотезу о стационарности ряда LNRGDP в уровнях (с константой, с константой и трендом) и не отвергают гипотезу о стационарности ряда LNRGDP в разностях (с константой).

Таким образом, мы склоняемся к выводу о том, что ряд логарифмов реального ВВП является рядом I(1). Дополнительное разложение ряда LNRGDP в модель AR(4) дает следующий результат (см. табл. 19).

В этом разделе будут описаны методы, использующиеся в данном исследовании. Опорными пунктами работы будут проверка на стационарность, причинность по Грейнджеру, тестирование временных рядов на коинтеграцию и построение VEC-модели. Так как выборку предполагается разбить на несколько частей, соответствующих определенным периодам, то данные методы анализа будут применены к каждой части по отдельности.

Прежде чем проводить дальнейшие исследования, следует вначале проверить временные ряды на стационарность. Обычную VAR-модель можно построить только при условии стационарности временных рядов, так что результаты теста определяют наш выбор между ней и моделью коррекции ошибками.

Для поверки на стационарность обычно используется тест Дикки-Фуллера. В данной работе было решено использовать процедуру Доладо и соавт., которая основана на расширенном тесте Дикки-Фуллера.

В основе теста Дикки-Фуллера лежит следующее уравнение:




Так как мы будем использовать расширенный тест Дикки-Фуллера (ADF), следует учитывать, что для него не равняется нулю. Основной гипотезой является наличие единичного корня, математически это выражается в равенстве . Если она отвергается, значит, единичные корни отсутствуют и временные ряды являются стационарными.

Процедура Доладо-Дженкинсона заключается в том, чтобы оценить последовательно пять моделей. Она позволяет нам выяснить, каким образом лучше привести наши данные к стационарному виду - за счет взятия первых разностей, или же путем построения регрессии с линейным трендом.

Вначале проводится расширенный тест Дикки-Фуллера, оценивающий модель с константой и трендом. Затем мы оцениваем значимость тренда в модели и, если гипотеза о его значимости отвергается, проводим ADF-тест для модели без тренда. Те же шаги следует проделать и при оценке значимости константы. Заключительным этапом является еще один тест Дикки-Фуллера, позволяющий выяснить, есть ли в данных трендовая стационарность, или же следует перейти к первым разностям.

Временной ряд (Time Series)

Временной ряд – совокупность Наблюдений (Observation), собранных за определенный временной интервал. Этот тип данных используется для поиска долгосрочного тренда, прогнозирования будущего и прочих видов анализа. В отличие от Датасетов (Dataset) без временных рядов в качестве Признаков (Feature), наборы с временными рядами не выполняют основное требование линейной регрессии о независимости наблюдений.


Временной ряд – стоимость акции компании LG на моменты открытия и закрытия биржи

Наряду с тенденцией увеличиваться или уменьшаться, большинство датасетов с временными рядами демонстрируют сезонные тенденции. Например, изучая сбыт пуховиков на протяжении пяти лет, мы увидим более высокий их уровень продаж в холодное время года каждый год.

Такие свойства временного ряда коренным образом меняют характер взаимодействия при создании Модели (Model) Машинного обучения (ML). Прежде чем использовать такие данные для обучения Нейронной сети (Neural Network), стоит добиться так называемой Стационарности (Stationarity).

Стационарность

Стационарность – это свойство временного ряда, постоянство его статистических свойств: Cреднего значения (Average) и Дисперсии (Variance). Это важно, поскольку большинство моделей работают, исходя из предположения о стационарности. Предполагается, что, если временной ряд ведет себя определенным образом, очень высока вероятность того, что он повторит те же паттерны в будущем. Стационарные ряды к тому же более просты в обработке.

Временные ряды и statsmodels

Поработаем с временным рядом – хронологией стоимости акции компании LG. Для начала протестируем данные на стационарность, то есть пригодность к использованию в качестве обучающих данных модели машинного обучения и предскажем стоимость акции с помощью Модели Бокса — Дженкинса (ARIMA). Для начала импортируем все необходимые библиотеки:

Помимо классических библиотек NumPy и Pandas нам понадобятся также классы Среднеквадратической ошибки (Mean Squared Error), теста Дики-Фуллера и непосредственно модели ARIMA. Теперь загрузим в ноутбук хронологию стоимости акции за текущий торговый год, то есть за период 01.01.2021 по 13.03.2021:

Мы получили такой игрушечный датасет с помощью сервиса Yahoo. Finance, и набор отображаемых признаков обусловлен политикой сервиса:


Отобразим с помощью Линейной диаграммы (Line Plot) цену акции на момент открытия биржи:

За два с небольшим месяца стоимость акции колебалась в пределах 8.5 – 11.5 долларов за штуку:


Именно с такими данными мы и будем создавать модель машинного обучения. Прежде чем приступить к построению модели, стоит выяснить, являются ли такие данные стационарными? В этом поможет тест Дики-Фуллера. Мы выберем целевой признак (Target Feature), значение которого впоследствии и будем предсказывать, – это цена открытия ( Open ) и сравним коэффициент такого теста с критическими значениями уровней Статистической значимости (Statistical Significance). Чтобы нейтрализовать восходящий тренд, мы логарифмизируем данные с помощью np.log , тем самым приведем более высокие поздние значения к масштабу более ранних:

Итак, метрика теста равна 0,220931, и само по себе это значение не очень показательно. Оно работает в сравнении с критическими значениями Статистической значимости. Итак, Статистика (Statistics) теста равна 0.220931, и это значение больше всех трех значениями уровней статистической значимости, что означает стационарность.

Настало время самой задорной части: предскажем стоимость акции. Для этого разделим датасет на Тренировочную (Train Data) и Тестовую части (Test Data) в пропорции 80 на 20. Для наглядности построим график, где эти части будут окрашены синим и красным соответственно:

Мы получили вот такое разделение:


Определим функцию smape_kun() , которая поможет в дальнейшем охарактеризовать эффективность предсказаний модели – Симметричная средняя абсолютная ошибка в процентах (SMAPE):

Создадим пустые списки predictions и history , которые будем пополнять предсказаниями, и запустим цикл длительностью в тестовую часть датасета:

Данных было немного, однако ошибка небольшая (измеряется в процентах):

Изучим сгенерированный список предсказаний, вызвав наполненный список predictions :

Мир неидеален, потому наш список наполнился предсказаниями – массивами в один элемент, что может сгененировать новичку дополнительную работу в будущем. Но, к счастью, не в нашем случае:

Для пущей наглядности визуализируем тестовые (реальные) значения стоимости акции и предсказанные:

Сейчас гораздо лучше видно, что модель не очень точна, вероятно, из-за малого объема тренировочных данных, но сейчас это не главное. Мы научились готовить данные с временными рядами к загрузке в модель.


Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

Читайте также: