AR(auto regresssion)過程

/

AR(auto regression, 自己回帰)過程について

タグ ar auto regression 自己回帰


AR(auto regression, 自己回帰)過程について

概要

  • 自己回帰モデルの一つ
  • 前の状態にホワイトノイズを足して表現するモデル
  • 時系列の予測などに用いる

数式

\[X_t = c + \sum_{i=1}^{p} \phi_{i} X_{t-i} + \epsilon\]
  • \(\epsilon\); ホワイトノイズで独立
  • \(c\); 定数

特に\(p=1\)で一次の自己回帰のとき

\[X_t = c + \phi X_{t-1} + \epsilon\]

具体的なpの求め方

  • 赤池情報量やvalidationなどで最適なパラメータを決定する

平均の期待値

  • \(c\)と\(\phi\)のみに依存した値になる

定義式の期待値を取る \(E[X_t]= E[c] + \phi E[X_{t-1}] + E[\epsilon]\)

すると以下になるから\(\mu\)について解くと期待値が得られる

\[\mu = c + \phi \mu\] \[E[X_t] = \frac{c}{1-\phi}\]

分散

  • \(\epsilon\)の分散と\(\phi\)のみに依存した値になる

\(\phi\)がマイナスのときの特徴

  • 振動したようなグラフになる

AR過程の生成

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)

c = 5.
phi = np.array([0, 0.5, 0.7])
x = np.arange(0., 100., 1.)
y = np.zeros([100,3])
y[0,:] = np.array([1, 1, 1]) # 初期値を1に設定

for i in range(1, y.shape[0]):
     y[i, :] = c + phi*y[i-1, :] + np.random.normal(0, 1, (3)) 

for i, color in zip(range(3), ["blue", "orange", "green"]):
    plt.plot(x, y[:,i], color=color)

plt.show()

Google Colab

参考