ARIMA(Auto Regressive Integrated Moving Average)モデル

#１. はじめに
意思決定のためにいろいろな方法や予測モデルが発明された。その中で過去のデータの統計分析で予測を立てるクラスのモデルがある。このレポートはARIMAモデル（いわゆるBox‐Jenki方法論）を立てることと検索することについて説明する。

- 良い点
    - 静的時系列も不静的時系列も表示できる。
    - 短期予測の結果は信頼性が高い。
    - 使いやすい。
- 悪い点
    - データがたくさん要りる。ひとつの集団は最小に50固体が必要である。
    - 安定な環境で短期予測のためだけ使われる。
    - モデルを更新することまたは新しいデータを追加することが大変である。

#２. 基礎知識
###2.1. 自己相関関数(ACF)
>自己相関(Auto Correlation Function - ACF)は一つの変数とそれ自身の違うレイテンシでの相関である。

レイテンシ $k$ での変数 $X_t$ の自己相関係数が以下のように演算する
![ACF_formula](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/592137cd-b87d-1080-fdd1-0dc25f225118.png "ACF formula")
で表されるとき、

- $E[X]$: $X$の期待値
- $ρ_k$: レイテンシ $k$ でのXの偏自己相関 

- $μ $: $X_t$ の平均

$ρ_k$と０が等しくない場合には$X_t$と$X\_{t＋k\}$との相関がある。さまざまなレイテンシでの変数の相関を直感的に表すために自己相関関数を使う。
![ACF_example](https://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Acf_new.svg/300px-Acf_new.svg.png "自己相関関数の例")
データのサイズが大きい場合には、有意水準5％と一緒に、もし自己相関係数が$±2/√N$の範囲だったら、有意水準5％でこの集団の自己相関係数と0が等しい結論を出すことができる。

###2.2. 偏自己相関関数(PACF)
>レイテンシ$k$での偏自己相関関数(Partial AutoCorrelation Function - PACF)は$y\_{t－1\}$、$y\_{t－2\}$、。。。$y\_{t－(k-1)\}$の影響を編集した後の$y_t$と$y\_{t－k\}$との相関である。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/1e588692-28d7-6415-d36b-814ad8bbc8ba.png "PACF formula")
時系列の自己相関関数ACFと偏自己相関関数PACFは違う特性を持っている。自己相関関数ACFは一対回観測の線形従属性の程度を測る。その間に、偏自己相関関数PACFは部分的に線形に依存する程度を測る。ARIMAはこの違う点を利用して時系列のモデル構造を決定する。

###2.3. 時系列
予測の問題で、よく見られているデータ型は時系列データすなわち時間が経つにつれて観察したり、保存したり、集まったりされたデータである。
**例**：ある大学で年々受験する学生の数とか、あるスーパーで四半期ごとに売られる品物の数とかは時系列データの例えである。
時系列の価値に影響を与える部分が四つある：趨勢（Trend）と循環（Cyclical）と季節（Seasonal）と不規則（Irregular）。ARIMAモデルでは趨勢と季節の要素が特に中心される。

- **趨勢**は長期間で時系列の上がることと下がることを表すものである。もし時系列が趨勢の要素があったら、最初のレイテンシで自己相関係数がすごく高くて、レイテンシが上がるとともに自己相関係数が0まで減る。
- **季節**は時系列の毎年の固定時点での繰り返す変更を表すものである。もし時系列が季節の要素があったら、毎年の固定時点での価値の相関が大きい。

####2.3.1. 静的時系列
ある時系列$X_t$は以下の2つの条件を満たすと、静的な性質を持っている時系列で、つまり静的時系列と呼ばれている。
(1) $E(X_t)=μ,∀t$
(2) $Cov(X_t,X\_{t+k\})=γ_k,∀t$

ある時系列$X_t$は以上の条件1または条件2を満たさない時、不静的時系列と呼ばれている。不静的時系列は階差の方法で静的時系列に変更することができる。不静的時系列$X_t$に対しては引き算$∆$を利用して新しい時系列$∆X_t$を作られる。
$∆X_t = X_t – X\_{t-1\}$
もし$∆X_t$は静的な列だったら、$∆X_t$を説明するモデルを立てて、$X_t$を見つけることができる。
もし$∆X_t$は依然として不静的な列だったら、$∆X_t$に対して引き算$∆$を利用し続ける。

#3. ARIMAモデル
###3.1. MA(q)モデル
MA(q)モデルは：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/7a66dd2b-6b16-dc9b-271f-fb8ce3a8d142.png "MA(q) model")
で表されるとき、

- $μ$: 静的時系列の平均
- $ε_i$: 誤差、時点$ｔ$で予測できない部分を表す
- $θ_i$: $ε\_{t-i\}$の$y_t$にの影響度を推定する係数

MA(q)モデルでレイテンシが$q$より大きい時モデルの自己相関係数と0が等しい。実際にサンプリングエラーでレイテンシが$q$より大きい時、相関係数と0が等しくないことが起こることがある。しかし、相関係数が$±2/√N$の範囲だったら($N$はサンプルのサイズ)、相関係数と0が等しいことの95％の信頼度の結論を出すことができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/d1f7de26-9f1e-6791-22da-015d87b383f8.png "MA(q) example")

###3.2. AR(p)モデル
オーダー $p$ の自己回帰モデルとは以下のように定義される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/6b672562-be2a-6ebd-d5e1-04e6467dff16.png "AR(p) model")
で表されるとき、

- $𝛿$: 定数
- $𝜀ₜ$: 誤差、時点 $t$ でモデルから予測できない部分を表すもの
- $𝜙_i$: 推定される係数

AR(p)モデルでは、すべてのレイテンシ$ｋ＞ｐ$での偏自己相関関数が０と等しい。AR(p)モデルのランキング$p$が分かるようにの大切な徴候である。実際には、サンプリングエラーのため、偏自己相関関数と0が等しいかもしれない。でも、偏自己相関関数が$±2/√N$の範囲だったら($N$はサンプルのサイズ)、偏自己相関関数の価値は5％の有意水準で０と見なすことができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/a40ad09f-b52a-5fd6-a6ef-3286ee516bd8.png "AR(p) example")

###3.3. ARMA(ｐ,ｑ)モデル
ARMA(p,q)はAR(p)とMA(q)を組み合わせて、以下のように定義される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/03035d12-0ac1-469c-fb53-24154c143980.png "ARMA(p,q) formula (1)")
または、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/cb8b8201-30b5-e8ee-9dd0-4f37be9b8532.png "ARMA(p,q) formula (2)")
以上の符号の意味はAR(p)モデルとMA(q)モデルで符号と同じ意味である。
ARMA(p,q)モデルはAR(p)モデルとMA(q)モデルを含んで、このモデルの自己相関関数と偏自己相関関数はAR(p)モデルの特徴もあるし、MA(q)モデルの特徴もある。それで、自己相関関数の価値と偏自己相関関数の価値も０まで減る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349079/f42a734a-16ab-75e0-fbfa-0d4b8d7dddf7.png "ARMA(p,q) example")

###3.4. ARIMA(p,d,q)モデル
ARMA(p,q)モデルは静的データ (趨勢の要素がないデータ) と効果的に働くことができる。しかし、実際には、データは趨勢に上下する傾向があり、特に経済の時系列である。それで、ARMA(p,q)モデルを適用するため、趨勢の要素がある時系列が定常な時系列に変換しなければならない。ですから、係数$ｄ$はARMA(p,q)モデルに追加されて、ARIMA(p,d,q)になる。ARIMA(p,d,q)では、$d$が定常な時系列になるまで階差した回数である。$ｄ$が0
と等しい時、ARIMA(p,d,q)はARMA(p,q)になる。ARIMAモデルは定常な時系列の時も非定常な時系列の時も適用できる。

ARIMA(p,d,q)モデルを構築する手順：
**1. モデル識別**：時系列のイメージと自己相関関数を観察して、時系列が静的時系列かどうかを確認する。静的時系列ではなかったら、階差する（階差した回数＝$ｄ$）。
**2. モデル推定**：自己相関関数と偏自己相関関数に基づいて、値$p$と値$ｑ$を決定する。
**3. モデルチェック**：モデルを使用して予測する前に、モデルの完全性を確認する必要がある。余剰がランダムであれば、モデルは完全である。
**4. 予測**：モデルは完全性があったら、予測を進める。この予測はコンピューターによって自動的に行われる。