AR、MA 与 ARMA 模型简介

Python 中的 ARIMA 模型

James Fulton

Climate informatics researcher

AR 模型

自回归(AR)模型

AR(1) 模型:$$y_t = a_1 y_{t-1} + \epsilon_t$$

Python 中的 ARIMA 模型

AR 模型

自回归(AR)模型

AR(1) 模型:$$y_t = a_1 y_{t-1} + \epsilon_t$$

AR(2) 模型:$$y_t = a_1 y_{t-1} + a_2 y_{t-2} + \epsilon_t$$

AR(p) 模型:$$y_t = a_1 y_{t-1} + a_2 y_{t-2} + ... + a_p y_{t-p} + \epsilon_t$$

Python 中的 ARIMA 模型

MA 模型

移动平均(MA)模型

MA(1) 模型:$$y_t = m_1 \epsilon_{t-1} + \epsilon_t$$

MA(2) 模型:$$y_t = m_1 \epsilon_{t-1} + m_2 \epsilon_{t-2} + \epsilon_t$$

MA(q) 模型:$$y_t = m_1 \epsilon_{t-1} + m_2 \epsilon_{t-2} + ... + m_q \epsilon_{t-q} + \epsilon_t$$

Python 中的 ARIMA 模型

ARMA 模型

自回归移动平均(ARMA)模型

  • ARMA = AR + MA

ARMA(1,1) 模型:$$y_t = a_1 y_{t-1} + m_1 \epsilon_{t-1} + \epsilon_t$$

ARMA(p, q)

  • p 为 AR 部分的阶数
  • q 为 MA 部分的阶数
Python 中的 ARIMA 模型

生成 ARMA 数据

$$y_t = a_1 y_{t-1} + m_1 \epsilon_{t-1} + \epsilon_t$$

Python 中的 ARIMA 模型

生成 ARMA 数据

$$y_t = 0.5 y_{t-1} + 0.2 \epsilon_{t-1} + \epsilon_t$$

from statsmodels.tsa.arima_process import arma_generate_sample

ar_coefs = [1, -0.5] ma_coefs = [1, 0.2]
y = arma_generate_sample(ar_coefs, ma_coefs, nsample=100, scale=0.5)
Python 中的 ARIMA 模型

生成 ARMA 数据

$$y_t = 0.5 y_{t-1} + 0.2 \epsilon_{t-1} + \epsilon_t$$

Python 中的 ARIMA 模型

拟合 ARMA 模型

from statsmodels.tsa.arima.model import ARIMA

# 实例化模型对象 model = ARIMA(y, order=(1,0,1))
# 拟合模型 results = model.fit()
Python 中的 ARIMA 模型

开始练习吧!

Python 中的 ARIMA 模型

Preparing Video For Download...