Модели временных рядов — ARIMA и LSTM

машинное обучение

1. Определение и классификация временных рядов

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

{xt,t=2,1,0,1,2,...,T}\left \{ x_{t},t=-2,-1,0,1,2,...,T \right \}

вxtx_tявляется случайной величиной, которую также можно записать в виде{Xt}\left \{ X_{t}\right \}.

  1. Временной ряд делится на:

    • Стационарный ряд: ряд, в котором нет тренда и каждое наблюдение колеблется на фиксированном уровне.
    • Нестационарные ряды: ряды, которые содержат тренд, сезонность или периодичность и могут содержать один или несколько из них.
  2. Обычно модели временных рядов делятся на четыре влияющих фактора в зависимости от длины цикла:

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

    Факторы воздействия можно проанализировать с помощью следующих операторов Python в наборе инструментов анализа временных рядов:

    result = sm.tsa.seasonal_decompose(data, freq=365)
    

2. Модель временных рядов

Есть две широко используемые модели временных рядов: одна — линейная модель, основанная на статистике, а другая — модель нейронной сети.

2.1 Линейная модель

2.1.1 Авторегрессионная модель (AR)

Модель авторегрессии — это самая простая модель в модели линейных временных рядов, которая устанавливает уравнение регрессии посредством корреляции между данными в предыдущей части и данными в последней части. Разработан на основе линейной регрессии. когда временной рядx1x_1, x2x_2, x3x_3, ...xnx_n, то его модель AR порядка pAR(p)AR(p)Математическое выражение:

xt=ф1xt1+ф2xt2+...+фpxtp+utx_{t}=\phi _{1}x_{t-1}+\phi _{2}x_{t-2}+...+\phi _{p}x_{t-p}+u_{t}

вф\phi - коэффициент авторегрессии,utu_tПредставляет белый шум, который является случайным колебанием во временном ряду. когдаttКогда он равен 1, это авторегрессионная модель первого порядка.

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

  • В процессе моделирования модели AR проблема определения порядка p называется определением порядка, и обычно используются функция частичной автокорреляции и тест AIC. Конкретный метод состоит в том, чтобы использовать PACF для построения графика, чтобы судить о его цензуре, чтобы выбрать лучший порядок p.

  • Метод оценки параметров модели может использовать метод наименьших квадратов и оценку максимального правдоподобия.

  • Модель AR в финансовой модели в основном моделирует финансовую последовательность в прошлом.

2.1.2 Модель скользящего среднего (MA)

Скользящее среднее также является типом модели линейного временного ряда, Отличие от модели AR заключается в том, что это не линейная комбинация значений временного ряда, а линейная комбинация исторического белого шума, влияющая на прогнозируемое значение в текущий момент. Его принцип заключается в том, что исторический белый шум косвенно влияет на прогнозируемое значение текущей временной точки, влияя на значение исторического временного ряда. Если последовательность белого шумаu1u_1,u2u_2,u3u_3,...unu_n, то модель MA q-порядкаMA(q)MA(q)Математическое выражение:

xt=ut+θ1ut1+θ2ut2+...+θqutqx_{t}=u_{t}+\theta _{1}u_{t-1}+\theta _{2}u_{t-2}+...+\theta _{q}u_{t-q}

вθ\theta коэффициент скользящей регрессии,utu_tдля белого шума разных периодов.

  • Теория определения порядка MA усекается после того, как коэффициент автокорреляции равен q, поэтому, глядя на последнюю позицию карты ACF, которая значительно отличается от 0, можно предварительно установить порядок MA. Фактически, AIC можно использовать для определения порядка.
  • Для оценки параметров MA можно использовать метод моментной оценки, метод обратной корреляционной функции, метод условной оценки максимального правдоподобия и метод точной оценки максимального правдоподобия.
  • MA часто используется для описания эффектов шока в финансовых моделях.

2.1.3 Модель авторегрессионной скользящей средней (ARMA)

Если эти две модели комбинируются, то усечение частичной автокорреляционной функции AR и усечение корреляционной функции MA можно использовать для устранения некоторой причинно-следственной связи, которая не может быть реализована в усечении частичной автокорреляционной функции низкого порядка или усечении корреляционной функции последовательно. В результате модель ARMA оказывается моделью, которая может быть получена с таким же качеством соответствия данным, а также может решить взаимосвязь между текущими данными и более поздними данными и последующими изменениями и не требует частичной автокорреляции. усечение функции и усечение корреляционной функции. Его математическое выражение:

xt=ф1xt1+ф2xt2+...+фpxtp+ut+θ1ut1+θ2ut2+...+θqutqx_{t}=\phi _{1}x_{t-1}+\phi _{2}x_{t-2}+...+\phi _{p}x_{t-p}+u_{t}+\theta _{1}u_{t-1}+\theta _{2}u_{t-2}+...+\theta _{q}u_{t-q}

где у ARMA два заказа(p,q)(p,q), которые представляют собой порядки AR и MA соответственно.

  • Порядок ARMA обычно выбирается путем наблюдения и поиска минимальных AIC и BIC в диапазоне, который может быть получен поиском по сетке.

2.1.4 Дифференциальная авторегрессионная модель скользящего среднего (ARIMA)

Модель ARMA может обрабатывать стационарные временные ряды, но для нестационарных временных рядов необходимо ввести разницу, чтобы решить эту проблему, поэтому появляется модель ARIMA. Его математическое выражение:

(1i=1pфiLi)(1L)dXt=(1+i=1qθiLi)εt\left ( 1-\sum_{i=1}^{p}\phi _{i}L^{i} \right )\left ( 1-L \right )^{d}X_{t}=\left ( 1+\sum_{i=1}^{q}\theta _{i}L^{i} \right )\varepsilon _{t}

в,LLоператор запаздывания,dеZd\in Z.

Разностный оператор:

Δdxt=(1L)dXt\Delta ^{d}x_{t}=\left ( 1-L \right )^{d}X_{t}

сделатьwtwtравный:

wt=Δdxt=(1L)dxtw_{t}=\Delta ^{d}x_{t}=\left ( 1-L \right )^{d}x_{t}

Тогда формула ARIMA может быть преобразована в:

wt=ф1wt1+ф2wt2+...+фpwtp+дельта+ut+θ1ut1+θ2ut2+...+θqutqw_{t}=\phi _{1}w_{t-1}+\phi _{2}w_{t-2}+...+\phi _{p}w_{t-p}+\delta +u_{t}+\theta _{1}u_{t-1}+\theta _{2}u_{t-2}+...+\theta _{q}u_{t-q}

и ввел третий параметрddКак порядок разности, так и комбинация порядка модели ARIMA(p,q,d)(p,q,d). Введение дифференцирования используется для удаления линейных трендов и превращения нестационарных столбцов в стационарные столбцы. Разность нескольких порядков также может решить состояние, в котором разность младших порядков все еще нестабильна.

Процесс разработки ARIMA:

  1. Визуализация данных, выявление стационарности.
  2. Дифференцируйте данные нестационарного временного ряда, чтобы получить стационарный ряд.
  3. Соберите подходящую модель:
    • После сглаживания, если PACF усекается, а ACF имеет хвост, модель AR устанавливается;
    • Если PACF имеет хвост, а ACF усечен, устанавливается модель MA;
    • Если и PACF, и ACF являются хвостовыми, последовательность соответствует модели ARMA;
  4. После определения порядка модели оцениваются параметры модели ARMA, и для оценки параметров чаще используется метод наименьших квадратов.
  5. Проверка гипотезы для определения (диагностики) того, является ли остаточная последовательность последовательностью белого шума.
  6. Делайте прогнозы с помощью проверенной модели.

Основные шаги кода проекта:

  1. Используйте pandas для чтения и загрузки данных и одновременной предварительной обработки данных, обработки нулевых значений и отсутствующих моментов времени.
  2. Исследуйте свои данные с помощью визуализаций и графиков, чтобы понять основные статистические данные и возможные сезонные тенденции.
  3. Выберите модель, укажите диапазон параметров для поиска по сетке и выберите наилучшую комбинацию параметров с наименьшей оценкой AIC.
  4. Установите период времени, который необходимо спрогнозировать, а затем используйте оптимальную модель для прогнозирования.

2.1.5 Сезонный АРИМ (САРИМА)

SARIMA: Модель ARIMA с сезонными различиями из-за сезонности, определенной во временном ряду. Сезонные различия аналогичны обычным различиям, но их можно получить, вычитая значение из предыдущего сезона вместо вычитания непрерывного члена. Комбинация заказов SARIMA:

(p,q,d)×(P,Q,D,m)\left ( p,q,d \right )\times \left ( P,Q,D,m \right )

в(P,Q,D)\left ( P,Q,D \right )— это порядок SAR, SMA и сезонных различий, а m — частотно-временной диапазон, обычно добавляемый как 12.

SARIMAX: А потом добавить экзогенные переменные в SARIMA.

2.1.6 Оценка модели

AIC: Измерьте качество соответствия статистической модели с точки зрения предсказания,Чем меньше AIC, тем лучше модель, обычно выбирается модель с наименьшим AIC.

AIC=2k2ln(L)=(2k2L)nAIC=2k-2\ln \left ( L \right )=\frac{\left ( 2k-2L \right )}{n}
  • k — количество параметров, маленькое k означает, что модель проста;
  • L - функция правдоподобия,L=(n2)ln(2число Пи)(n2)ln(ssen)n2L=-\left ( \frac{n}{2} \right )\ln \left ( 2\pi \right )-\left ( \frac{n}{2} \right )\ln \left ( \frac{sse}{n} \right )-\frac{n}{2}, sse — остаточная сумма квадратов. Большой L означает, что модель точна;
  • п - количество наблюдений;

BIC: Байесовский информационный критерий, который измеряет качество соответствия модели данным с точки зрения подбора.Чем меньше BIC, тем лучше модель.

BIC=kln(n)2ln(L)BIC=k\ln\left ( n \right )-2\ln \left ( L \right )

HQ:BIC=kln(ln(n))2ln(L)BIC=k\ln\left ( \ln(n) \right )-2\ln \left ( L \right )

Как правило, наилучшая комбинация параметров определяется путем оценки оценок AIC и BIC.

2.2 Нелинейная модель LSTM

Здесь мы в основном резюмируем принцип сети с длинной краткосрочной памятью (LSTM).LSTM улучшен по сравнению с рекуррентной нейронной сетью (RNN), в основном для решения проблемы исчезновения градиента в RNN и потери более ранних данных, когда последовательность слишком длинная. .состояние. Его основной внутренний механизм заключается в регулировании потока информации через три врата, чтобы знать, какие данные в последовательности необходимо сохранить или отбросить.

основная концепция: Основная концепция LSTM — это состояние ячейки, три ворот и две функции активации. Состояния ячеек действуют как магистрали, передающие соответствующую информацию в цепочках последовательностей. Ворота — это разные нейронные сети, которые решают, какую информацию разрешить о состоянии ячейки. Некоторые ворота могут научиться сохранять или забывать эту информацию во время обучения.

lstm1.png

На рисунке выше показан блок ячеек LSTM, где верхний слой его входного сегментаct1c_{t-1}— состояние предыдущего блока, а нижний слой —ht1h_{t-1}То есть скрытое состояние, выводимое предыдущим блоком. После всего блока верхний слой выводит состояние блокаctc_t, нижний слой выводит скрытое состояние этого блокаhth_t.

2.2.1 Забыть ворота

Ворота забывания решают, какая информация должна быть отброшена, а какая сохранена. Информация из предыдущего скрытого состояния и информация из текущего ввода передаются через сигмовидную функцию. Значение близко к 0 и 1, ближе к 0 означает забыть, ближе к 1 означает сохранить.

lstm_forget_gate.png

Как показано на рисунке выше, вывод скрытого слоя предыдущего блока слояht1h_{t-1}и вход этого блокаxtx_{t}Добавить, войти в ворота забыть и пройти через сигмовидную функциюftf_t, и размер этого значения определяет, нужно ли отбрасывать объединенную информацию, а вход состояния устройства на верхний уровень такой же, как иct1c_{t-1}Выполните умножение точек.

2.2.2 Входные ворота

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

lstm_input_gate

Как показано на фиг.ht1+xth_{t-1}+x_tПосле того, как входной вентиль был отображен двумя функциями активации, результаты снова перемножаются, и полученный результат совпадает с предыдущим.ct1×ftc_{t-1} \times f_tЗатем сложите, чтобы получить состояние этого блокаctc_t.

lstm_cell_state

2.2.3 Выходной вентиль

Выходной вентиль может решить, каким должно быть следующее скрытое состояние, и может использоваться для предсказания. Сначала объедините предыдущее скрытое состояние с текущим вводомht1+xth_{t-1}+x_tпередается сигмовидной функции, а затем вновь измененное состояние ячейкиctc_tПередается в функцию tanh, и, наконец, результаты умножаются. Выходом является скрытое состояние, затем новое состояние ячейки и новое скрытое состояние перемещаются в следующий временной ряд.

lstm_output_gate

2.2.4 Математическое представление

lstm_math

Согласно предыдущим графическим операциям, наша тема резюмирует математическое описание LSTM:

ct=zfct1+zizc^{t}=z^{f}\odot c^{t-1}+z^{i}\odot z

вctc^tтекущее состояние ячейки,zfz^fДля ворот забвения,ziz^iиzzДве операции для выходного затвора. Указывает этап забывания LSTM, который выборочно забывает ввод, переданный из предыдущего сеанса.

ht=zotanh(ct)h^{t}=z^{o}\odot tanh(c^{t})

вhth^tпредставляет текущее скрытое состояние,zoz^oПредставляет предыдущую операцию в выходном вентиле. Представляет этап памяти выбора LSTM, входxtx^tСделайте память выбора. То, что важно, записывается, а то, что не важно, записывается меньше.

yt=о(W'ht)y^{t}=\sigma \left ( W{}'h^{t} \right )

Представляет входной этап LSTM через текущее скрытое состояние.hth^tНекоторые изменения получаются.

Процесс разработки проекта временных рядов LSTM:

  1. Предварительная обработка данных и преобразование набора данных в данные временного ряда в виде скользящих окон;
  2. Построить модель lstm (слой lstm, плотный слой, оптимизатор, функция потерь);
  3. Подгонка модели, лучше всего установить время для сохранения модели, чтобы получить наиболее подходящую модель;
  4. Делайте прогнозы относительно данных о будущем времени.

Справочная статья

  1. cloud.Tencent.com/developer/ ах…
  2. ву ву