Описание модели

Анализ временных рядов на Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Математическое описание модели MA(1)

$\large \quad \quad \quad \quad R_t \ = \ \ \mu \ \ + \ \ \epsilon_t \ + \ \ \theta \ \epsilon_{t-1} $

  • Поскольку справа только одна лаговая ошибка, модель называется:
    • МА-модель порядка 1, или
    • модель MA(1)
  • Параметр МА: $\large \theta$
  • Стационарна при любых значениях $\theta$
Анализ временных рядов на Python

Интерпретация параметра MA(1)

$\large \quad \quad \quad \quad R_t \ \ = \ \ \mu \ \ + \ \ \epsilon_t\ + \ \ \theta \ \epsilon_{t-1} $

  • Отрицательный $\large \theta$: возврат к среднему за один период
  • Положительный $\large \theta$: импульс за один период
  • Примечание: однопериодная автокорреляция равна $\large \theta/(1+\theta^2)$, а не $\large \theta$
Анализ временных рядов на Python

Сравнение функций автокорреляции MA(1)

  • $\large \theta=0.9$

  • $\large \theta=0.5$

  • $\large \theta=-0.9$

  • $\large \theta=-0.5$

Анализ временных рядов на Python

Пример процесса MA(1): внутридневная доходность акций

Анализ временных рядов на Python

Функция автокорреляции внутридневной доходности акций

Анализ временных рядов на Python

МА-модели высших порядков

  • MA(1)

$\large \quad \quad R_t = \mu + \epsilon_t - \theta_1 \ \epsilon_{t-1}$

  • MA(2)

$\large \quad \quad R_t = \mu + \epsilon_t - \theta_1 \ \epsilon_{t-1} - \theta_2 \ \epsilon_{t-2}$

  • MA(3)

$\large \quad \quad R_t = \mu + \epsilon_t - \theta_1 \ \epsilon_{t-1} - \theta_2 \ \epsilon_{t-2} - \theta_3 \ \epsilon_{t-3}$

  • ...
Анализ временных рядов на Python

Симуляция МА-процесса

from statsmodels.tsa.arima_process import ArmaProcess
ar = np.array([1])
ma = np.array([1, 0.5])
AR_object = ArmaProcess(ar, ma)
simulated_data = AR_object.generate_sample(nsample=1000)
plt.plot(simulated_data)
Анализ временных рядов на Python

Давайте потренируемся!

Анализ временных рядов на Python

Preparing Video For Download...