# 定常性とは？定常過程/非定常過程についてわかりやすくまとめておく

> 当サイト【スタビジ】の本記事では、時系列問題で登場する定常の考え方についてまとめていきます。定常過程の考え方から単位根過程の注意点など時系列データを扱う上でのポイントをRで実装しながら見ていきますよー！

- URL: https://toukei-lab.com/%e5%ae%9a%e5%b8%b8%e3%81%a8%e9%9d%9e%e5%ae%9a%e5%b8%b8
- 公開: 2022.11.29 / 更新: 2024.11.11
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
本記事では、時系列問題で登場する定常の考え方についてまとめていきます。定常過程の考え方から単位根過程の注意点など時系列データを扱う上でのポイントをRで実装しながら見ていきますよー！
:::

こんにちは！

消費財メーカーでデータサイエンティストをやってるウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です。

時系列分析の中で必ず出てくる「**定常性**」という概念。

時系列データ分析に関しては以下の記事もあわせてご覧ください。

MAモデルからARIMAモデルまでについて簡単に紹介しています。

<https://toukei-lab.com/%e6%99%82%e7%b3%bb%e5%88%97%e3%83%87%e3%83%bc%e3%82%bf%e5%88%86%e6%9e%90>

その中で、定常性という概念が出てきて、**MAモデルは常に定常**であり、**ARモデルはある条件のもとで定常になる**と説明しました。

また<mark>定常性を持った時系列データのことを定常過程と呼び、定常でないデータのことを非定常過程と呼びます。</mark>

この記事では、そんな定常性という概念についてもう少し詳しく説明します。

## 定常性

**弱定常性**の定義は以下の通り。\
\begin{eqnarray}\
\left\\{\
\begin{array}{l}\
E(y_t)&=&\mu\\\\\
Cov(y_t,y\_{t-k})&=\&E\[(y_t-\mu)(y\_{t-k}-\mu)]\\\\\
\end{array}\
\right.\
\end{eqnarray}

平均や自己共分散が時点$t$に依存していません。

次に、**強定常性**の定義は以下の通りになります。\
\begin{eqnarray}\
f(y\_{t_1+k},y\_{t_2+k},\cdots,y\_{t_m+k})=f(y\_{t_1},y\_{t_2},\cdots,y\_{t_m})\
\end{eqnarray}

![](/wp-content/uploads/2018/07/7aeaaade0c8de5a732c50813e88d97e9.png)\
つまり、時点の数が同じならどの集まりの同時分布も同一であるということです。

同時密度関数が多変量正規分布で記述出来る場合、多変量正規分布は平均ベクトルと共分散行列で特定されるため弱定常性を満たせばそのまま強定常性を満たすことになります。

まあ、<mark>強定常性という概念はあるもののあまり使われることはないので「定常」というワードが出たら弱定常性のことだと思って大丈夫です。</mark>

それでは次にモデルの定常性についてみていきましょう。

## 各モデルでの定常性

まず、**MAモデル**から確認しましょう。

定数項を省いた場合の$q$次のMAモデルの定義は次の通りでした。\
\begin{eqnarray}\
y_t&=&\epsilon_t+\theta_1\epsilon\_{t-1}+\theta_2\epsilon\_{t-2}+\cdots+\theta_q\epsilon\_{t-q} ,\
\epsilon_t\sim{W\.N.(\sigma^2)}\
\end{eqnarray}\
$y_t$の平均、分散および$y_t$と$y_{t-k}$の自己共分散を求めてみます。\
\begin{eqnarray}\
E(y_t)&=\&E(\epsilon_t+\theta_1\epsilon\_{t-1}+\theta_2\epsilon\_{t-2}+\cdots+\theta_q\epsilon\_{t-q})\\\\\
&=\&E(\epsilon_t)+\theta_1E(\epsilon\_{t-1})+\theta_2E(\epsilon\_{t-2})+\cdots+\theta_qE(\epsilon\_{t-q})\\\\\
&=&0+\theta_1\times0+\theta_2\times0+\cdots+\theta_q\times0\\\\\
&=&0\\\\\
V(y_t)&=\&V(\epsilon_t+\theta_1\epsilon\_{t-1}+\theta_2\epsilon\_{t-2}+\cdots+\theta_q\epsilon\_{t-q})\\\\\
&=\&V(\epsilon_t)+\theta_1^2V(\epsilon\_{t-1})+\theta_2^2V(\epsilon\_{t-2})+\cdots+\theta_q^2V(\epsilon\_{t-q})\\\\\
&=&(1+\theta_1^2++\theta_2^2+\cdots+\theta_q^2)\sigma^2\\\\\
Cov(y_t,y\_{t+k})&=\&E\[(\epsilon_t+\theta_1\epsilon\_{t-1}+\theta_2\epsilon\_{t-2}+\cdots+\theta_q\epsilon\_{t-q})(\epsilon\_{t+k}+\theta_1\epsilon\_{t+k-1}+\theta_2\epsilon\_{t+k-2}+\cdots+\theta_q\epsilon\_{t+k-q})]\\\\\
&=&\
\left\\{\
\begin{array}{l}\
(1+\sum\_{j=1}^{q}\theta_j^2)\sigma^2, k=0\\\\\
(\theta_k+\sum\_{j=k+1}^{q}\theta_j\theta\_{j-k})\sigma^2, 1 \leq k \leq q\\\\\
0, k \geq q+1\\\\\
\end{array}\
\right.\
\end{eqnarray}\
となり、平均、分散、自己共分散ともに時点$t$には依存しないため常に弱定常性を保ちます。

次に**ARモデル**の場合について説明します。\
定数項を省いた場合の$p$次のARモデルの定義は次の通りでした。\
\begin{eqnarray}\
y_t=\phi_1{y\_{t-1}}+\phi_2{y\_{t-2}}+\cdots+\phi_p{y\_{t-p}}+\epsilon_t,\
\epsilon_t\sim{W\.N.(\sigma^2)}\
\end{eqnarray}

このARモデル弱定常性を持つための必要十分条件は次の特性方程式の解の絶対値が全て1より大きいことです。\
\begin{eqnarray}\
1=\phi_1B+\phi_2B^2+\cdots+\phi_pB^p\
\end{eqnarray}\
例えば、1次のARモデルでは特性方程式は\
\begin{eqnarray}\
1=\phi_1B\
\end{eqnarray}\
となるので、\
\begin{eqnarray}\
1&=&\phi_1B\\\\\
|B|&>&1 \Leftrightarrow \left|\frac{1}{\phi}\right|>1 \Leftrightarrow |\phi|<1\\\\\
\end{eqnarray}\
が条件となります。

次に、Rを用いて定常や非定常なデータを実際に発生させてみます。

## 定常性をRで実行

まず、**MAモデル**で発生させてみましょう。\
定数項を省いた以下の２次のMAモデルを用います。\
\begin{eqnarray}\
y_t=\epsilon_t+\theta_1\epsilon\_{t-1}+\theta_2\epsilon\_{t-2} ,\
\epsilon_t\sim{W\.N.(\sigma^2)}\
\end{eqnarray}\
用いるコードは次の通りです。

```text title="MA_model"
# MA model
library(MASS)

n <- 100
y <- numeric(n)
eta <- rnorm(n,0,1)
lam <- c(0.5)

for(k in 1:n){
  y[k] <- eta[k]
  for(i in 1:length(lam)){
    if(k-i>0){
      y[k] <- y[k] +lam[i]*eta[k-i]
    }
    else break
  }
}
y
plot(y,xlab="time",type="l")
```

結果は次のようになりました。

![](/wp-content/uploads/2018/07/9e02ec5cc89b51cd96e69d36102630bb.png)

確かに定常過程になっています。

次は**ARモデル**で発生させてみます。\
まずは定数項を省いた以下の1次のARモデルを用います。\
\begin{eqnarray}\
y_t=\phi_1{y\_{t-1}}+\epsilon_t,\
\epsilon_t\sim{W\.N.(\sigma^2)}\
\end{eqnarray}\
用いるコードは次の通りです。

```text title="AR_model"
# AR model
library(MASS)

n <- 100
y <- numeric(n)
eta <- rnorm(n,0,1)
phi <- c(1/2)

for(k in 1:n){
  y[k] <- eta[k]
  for(i in 1:length(phi)){
    if(k-i>0){
      y[k] <- y[k] + phi[i]*y[k-i]
    }
    else break
  }
}
y
plot(y,xlab="time",type="l")
```

結果は次の通りです。

![](/wp-content/uploads/2018/07/e64ad5158158dfefc46154c42805d015.png) ![](/wp-content/uploads/2018/07/6a20af082c9bf61f4628e985cfdaa545.png)

どうでしょうか。確かに、$|\phi_1|<1$のときには定常過程になっていることが分かります。\
$\phi_1=3/2$のときには一つの方向に発散しています。\
$\phi_1=-3/2$のときには上下に振動しながら分散が大きくなって発散しています。\
$\phi_1=-1$のときには上下に振動しながら分散が変化しています。平均に収束することはありません。\
$\phi_1=1$のときには分散は発散していきそうですが、平均については発散しないため分析から外すべきなのかプロットからでは判断が難しいです。このような過程を単位根過程(unit root process)と呼びます。

## 単位根過程

さて、上記で単位根過程というワードが出てきたのでその定義と扱いについて説明します。

単位根過程の説明は次の通りです。\
「$p$次ARモデルで特性方程式の$d$個の根が1となる場合にその確率過程は$d$次の和分過程$I(d)$と表現する。」

先ほどの1次のARモデルでは\
\begin{eqnarray}\
1&=&\phi_1B\\\\\
B&=&1 \Leftrightarrow \phi_1=1\\\\\
\end{eqnarray}\
のときに単位根過程となり$I(1)$と表現します。

また2次のARモデルで例えば$\phi_1=1/2,\phi_2=1/2,$ならば\
\begin{eqnarray}\
1&=&\frac{1}{2}B+\frac{1}{2}B^2 \Leftrightarrow (B-1)(B+2)=0\
\end{eqnarray}\
となるので、$I(1)$である。\
また、同じく2次のARモデルで$\phi_1=2,\phi_2=-1$ならば\
\begin{eqnarray}\
1&=&2B-B^2 \Leftrightarrow (B-1)^2=0\\\\\
\end{eqnarray}\
となるので、$I(2)$である。

さて、単位根過程は特殊な非定常過程であり、そのまま解析してはいけません。

そこで、単位根過程かどうかを判定するためにはDickey-Fuller検定を行います。

Rならtseriesパッケージのafd.test()かCADFtestパッケージのCADFtest()で簡単に行うことが出来ます。

では、検定の結果単位根であると考えられるならどうすればいいかというと、差分を取れば単位根過程は定常過程になります。

より正しく言うと$I(d)$は$d$階の階差を取ると定常過程となります。そのため単位根過程は差分定常過程とも呼ばれます。

例えば、先ほどの$\phi_1=2,\phi_2=-1$の和分過程$I(2)$で発生させたデータに対して階差を取ってみると次のようになります。

![](/wp-content/uploads/2018/07/af7a622c21bba6ad078ce9738f4584cd.png)

確かに、2階階差で定常過程になっています。

なぜ単位根過程に気を付けなければならないかというと単に非定常過程だからというだけでなく「**見せかけの回帰**」という厄介な現象が起きる可能性があるからです。

:::talk{who="robotan"}
時系列分析ってすごく奥が深いんだなあ
:::

:::talk{who="umatan"}
そうだね！時系列分析はお金と結びつくものが多いから、しっかりと学んでおくことをおすすめするよ！
:::

## 定常性　まとめ

本記事では、定常性についてまとめてきました。

定常性は、時系列分析において非常に重要な概念です。

より詳しく知りたい方は以下の書籍をオススメします。定常・非定常の話も含め時系列データ分析のエッセンスを理論的に学ぶことができます。

少々難解な箇所もあります。

::product[経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)]{url="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fexec%2Fobidos%2FASIN%2F4254127928%2Fref%3Dnosim" image="https://images-fe.ssl-images-amazon.com/images/I/41YxH76njsL._SL160_.jpg" amazon="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fsearch%3Fkeywords%3D%25E7%25B5%258C%25E6%25B8%2588%25E3%2583%25BB%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%258A%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E8%25A8%2588%25E9%2587%258F%25E6%2599%2582%25E7%25B3%25BB%25E5%2588%2597%25E5%2588%2586%25E6%259E%2590%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E7%25B5%258C%25E6%25B8%2588%25E3%2583%25BB%25E3%2583%2595%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%258A%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25AE%25E8%25A8%2588%25E9%2587%258F%25E6%2599%2582%25E7%25B3%25BB%25E5%2588%2597%25E5%2588%2586%25E6%259E%2590%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" detail="沖本 竜義 朝倉書店 2010-02-01"}

また時系列分析の書籍に関しては以下の記事にまとめているのでそちらもご覧ください！

<https://toukei-lab.com/%e5%8e%b3%e9%81%b85%e5%86%8a%ef%bc%81%e6%99%82%e7%b3%bb%e5%88%97%e5%88%86%e6%9e%90%e3%82%92%e5%8b%89%e5%bc%b7%e3%81%99%e3%82%8b%e4%b8%8a%e3%81%a7%e3%81%8a%e3%81%99%e3%81%99%e3%82%81%e3%81%aa%e6%9c%ac>

機械学習、データサイエンスについて学びたい方は以下の記事をチェックしてみてください！

<https://toukei-lab.com/data-scientist>

<https://toukei-lab.com/machine-learning-study>