Код GitHub: https://github.com/rukshar69/Datascience-Projects/blob/master/VAR/MultivariateAutoRegression_AirQualityUCI.ipynb

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

Пример. В наборе данных есть процент потоотделения, точка росы, скорость ветра, процент облачности и т. д., а также значения температуры за последние два года. Таким образом, существует несколько переменных для оптимального предсказания температуры.

Для многомерного прогнозирования временных рядов я буду использовать векторную авторегрессию (VAR). Здесь каждая переменная является линейной функцией прошлых значений самой себя и прошлых значений всех других переменных. Предположим, есть 2 переменные, y1 и y2. Нам нужно спрогнозировать значение этих двух переменных в момент времени t из прошлых n значений со значением запаздывания равным 1.

Для вычисления y1(t) мы будем использовать прошлые значения y1 и y2. То же самое касается вычисления y2(t).

Подобно уравнению AR, используемому для одномерных данных временных рядов, будущие значения представляют собой только линейные комбинации их собственных прошлых значений. Уравнение для процесса AR(1):

Есть одна переменная — y, постоянный член — a, ошибочный член — e и коэффициент — w. Для нескольких переменных членов векторная форма уравнений y1 (t) и y2 (t) будет (уравнение для процесса VAR (1)):

Итак, мы имеем дело с метрикой коэффициента и метрикой ошибки. Для VAR(p) имеем (обобщенное уравнение VAR):

Приведенное выше уравнение можно записать как:

ε t — многомерный векторный белый шум, который удовлетворяет следующим условиям:

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

Для анализа временных рядов ряд должен быть стационарным. Вспомним уравнение процесса VAR:

Чтобы многомерные ряды были стационарными, собственные значения |Φ(L)-1| должен быть меньше 1 по модулю. Я предоставил ссылку на видео, лучше объясняющее эту проблему математически:

Мы используем тест Йохансена для проверки стационарности данных многомерных временных рядов.

Набор данных:

Для этого эксперимента мы используем набор данных Качество воздуха. Он содержит 9358 экземпляров почасовых ответов CO, неметановых углеводородов, бензола, общего количества оксидов азота (NOx) и диоксида азота (NO2), собранных в итальянском городе с марта 2004 г. по февраль 2005 г. Давайте посмотрим на столбцы в наборе данных. :

Проблеск данных:

Мы объединяем столбцы «Дата» и «Время», чтобы создать новый столбец с именем «Дата_Время», который устанавливается в качестве индекса фрейма данных Pandas, а столбцы «Дата» и «Время» удаляются.

Теперь мы рассмотрим процент отсутствующих данных.

Поскольку пропущенных данных довольно много, нам необходимо вменение данных. Отсутствующие значения заменяются значением -200. Если текущее значение точки данных отсутствует, мы можем предположить, что оно будет похоже на значение предыдущего часа. Итак, я заменяю -200 на предыдущее значение.

После вменения данных я строю временные ряды частиц воздуха.

T и AH имеют тенденцию к снижению.

Уровни C6H6, CO, PT08_S1/S2/S3 практически неизменны на протяжении всей временной шкалы.

NOx и NO2 имеют общую тенденцию к увеличению, что означает рост этих видов загрязнения.

Применяя тест Йохансена к данным и вычисляя собственные значения, мы обнаруживаем, что значения равны ‹1, что означает, что данные временного ряда являются стационарными.

Прежде чем вводить данные в модель VAR, мы разделяем данные на наборы для обучения и проверки (для прогнозирования). 80% данных сохраняются для обучения и 20% для проверки.

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

Прогнозы очень похожи на проверку, но в большинстве случаев они завышены. RH, CO, PT08_S5/3/1 имеют наибольшее сходство между предсказанием и оценкой.