Многомерные временные ряды имеют более одной переменной, зависящей от времени, где каждая переменная зависит как от своих прошлых значений, так и от других переменных.
Пример. В наборе данных есть процент потоотделения, точка росы, скорость ветра, процент облачности и т. д., а также значения температуры за последние два года. Таким образом, существует несколько переменных для оптимального предсказания температуры.
Для многомерного прогнозирования временных рядов я буду использовать векторную авторегрессию (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 имеют наибольшее сходство между предсказанием и оценкой.