• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

AR(auto regresssion)過程

date: 2021-08-29 excerpt: AR(auto regression, 自己回帰)過程について

tag: statisticsarauto 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

  • AR過程-生成-example
  • AR過程-statsmodels-example

参考

  • Pythonを用いた時系列解析のプログラミング 〜AR過程、MA過程、コレログラム etc〜/あつまれ統計の森
  • 【Python】ARモデルで時系列データ分析をやってみる


statisticsarauto regression自己回帰 Share Tweet