時系列分析

時系列データ分析

こんにちは!デジタルマーケターのウマ(@statistics1012)です

過去のデータを元に将来のデータを予測したい!

こういう場面って多いですよね?

店舗の売り上げに関してもそうだし、株価だってそうだし、視聴率だって。

でも単純に回帰系の分析手法で予測してしまうと上手くいかない!

なぜならそのデータは時系列の要素を持っているから。

時系列という要素を取り除いて静的データとして解析してしまっても上手くいくわけありません!

しかもやっかいなのが、適当に回帰分析やってみたら意外と寄与率高いやん!って結果になってしまうこともあります。

そんなやっかいな時系列データですが、なかなか分かりやすい書籍がない!

沖本さんの「計量時系列分析」は、確かに良書ですがとっかかりとしては難易度が高いんです。

 

こちらの「現場で使える時系列データ分析」は簡単な説明とRによる実装が分かりやすく書いてありますが、理論的な内容は薄いです。

個人的には「現場で使える時系列データ分析」を読んだ後に「計量時系列分析」を読めばよいかなと思ってます。

ちなみに以下の記事でおすすめの時系列分析の本をご紹介しているのでよかったら見てみてください。

厳選5冊!時系列分析を勉強する上でおすすめな本!こんにちは!この記事では時系列データ解析を勉強する上でおすすめの本をご紹介致します! 時系列分析って? 実データの解析をする時に結構...

 

そんなこんなでなかなか難しい!という声を聞く時系列分析についてここらでまとめておく(分かりやすいかどうかは別として)ので、Rでの実装や深い理論が気になる方は前述した2冊を読んでみてください!

 

そもそも時系列分析とは?

当たり前ですが、得られたデータに順序があるデータを時系列データと呼びます。

逆にデータに順序がなく一つの時期に複数のデータがある状況をクロスセクションデータと呼びます。

また、結構実データ解析とか行っていると遭遇する可能性の高いデータにパネルデータと呼ばれるものがあります。

これは、時系列データとクロスセクションデータが組み合わさったもの!

簡単な具体例を挙げると、

特定の店舗の10年間の売り上げは時系列データ

全国チェーンの各店舗の1日の売り上げはクロスセクションデータ

全国チェーンの各店舗の10年間の売り上げデータはパネルデータ

となります。

パネルデータの解析はまた、違ったアプローチがあるので置いておいて、今回は一つの店舗での売り上げデータである時系列データのお話をしましょう!

 

クロスセクションデータにはない自己共分散

クロスセクションデータいわゆる静的なデータに良く用いられる統計量として平均・分散・標準偏差・共分散・相関係数などがありますね。

その中で相関を求める上で重要になってくる共分散。

共分散を求めることで各変数の相関構造を求めたりデータの構造を知ることができるのですが、時系列データには自己共分散という概念が存在します。

自己共分散の定義はこんな感じ!(参考:計量時系列分析)
\begin{eqnarray}
Cov(y_t,y_{t-1})=E[(y_t-\mu_t)(y_{t-1}-\mu_{t-1}]
\end{eqnarray}

各期の共分散というイメージですね。

すなわち共分散が正の場合、その期同士は平均に対して同じ方向への挙動を示しやすく、負の場合は平均に対して違う方向への挙動を示しやすいということです。

この自己共分散は自己相関につながり、時系列データの構造を把握する上で非常に重要になってきます。

 

定常性という概念

まず、時系列分析において確認しておかなくてはならないのが定常性の概念!

定常性には弱定常性と強定常性があるんですが、正直確認しておくのは弱定常性だけで良いでしょう!

基本的にこの弱定常性が仮定されないと、統計的な解釈はできません。

 

弱定常性の定義はこちら!(参考:計量時系列分析)

任意の\(t\)と\(k\)において

\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}

 

数式で見てもいきなりは分からないと思うんですが、

期ごとの期待値(平均値)は一緒だよということと

期の差が同じなら共分散は一緒だよということ

です。

これらを満たしているのならそのデータは弱定常となります。

具体的にどのような状況かというと、各期の平均が一緒なので上昇傾向はないよということ。長期的に見ても平均は動かず一緒です。

そして、期の差が同じなら共分散は一緒というのは、平均へ回帰してくるイメージ。

2期先の共分散が負なら常に2期の周期で平均へ戻ってきますよね。今期が正の方向なら2期先の期は負の方向に移動するので。

この二つの制約条件を守ってくれるのが弱定常というわけです!

なんだかばらつきながらジクザグしているけど全体で見たら平坦なデータって感じ。

一番単純なのはこんな感じのやつ。

Rで簡単に記述できます。

 

弱定常性のことをただ単に定常と呼ぶこともあるのでここでも弱定常のことを定常と呼ぶことにします。

ちなみにこの定常性を満たさないものを非定常と呼びます。

店舗の売り上げデータも株価データも視聴率データもぜーんぶ基本的には非定常です。

このあとに出てくるMAモデルもARモデルも定常性を仮定して当てはめるのでこの定常性という概念は必ず覚えておきましょう!

強定常性という概念もあるんですが、弱定常性のことを単に定常と呼ぶこともあるくらい、そこまで解析においては重要でない概念なのでここでは弱定常性だけにとどめておきます。

強定常性に関しては沖本さんの本を読んでみてください!

定常性について詳しくはこちらへ

定常と非定常 以下の記事ではMAモデルからARIMAモデルまでについて簡単に紹介しました。 http://toukei-lab.com/...

MAモデル

やっと時系列モデリングのお話に入ります。

時系列データのほとんどは、前述した自己共分散すなわち自己相関を持っています。

自己相関を持ったデータをモデリングする方法としてはどのようなものが考えられるでしょうか?

たとえば

\begin{eqnarray}
\left\{
\begin{array}{l}
y_t&=&a+b\\
y_{t-1})&=&b+c\\
\end{array}
\right.
\end{eqnarray}

こんな感じ。

このようにモデリングすると、共通の成分\(b\)を通して、\(y_t\)と\(y_{t-1}\)が相関をもつことが期待できますね!

これがMA(Moving Average)モデルの考え方です。

MAモデルとはホワイトノイズと呼ばれる誤差項を共通項にすることで各期が相関を持ったモデルです。

\begin{eqnarray}
y_t=\mu+\epsilon_t+\theta_1\epsilon_{t-1} ,
\epsilon_t\sim{W.N.(\sigma^2)}
\end{eqnarray}

※ホワイトノイズは全ての期において平均\(0\)分散\(\sigma^2\)を満たし、\(W.N.(\sigma^2)\)と記述する。

こんな感じ。

ホワイトノイズを元に\(y_t\)と\(y_{t-1}\)が相関を持っているのが分かります!

また、\(\theta_1\)というパラメータが\(y_t\)と\(y_{t-1}\)の相関の強さを決めているのが分かりますね。

これは\(y_t\)と\(y_{t-1}\)の相関しか記述していないので1次自己相関と呼びますが、2次、3次・・・といくらでも記述することは可能です。

最も最適なあてはまりの良い次数を決定してモデリングするんです→ここらへんは重回帰におけるモデリング決定理論と同じでAICを用いたりします。

詳細は省きますが、このMAモデルは常に定常になります。

 

ARモデル

またもう一つは、

\(y_t=ay_{t-1}+b\)

こんな感じにして\(y_t\)を\(y_{t-1}\)で表せるようにしたモデル。これが相関を持つのは明らかですね!

これがAR(autoregressive process)モデルの考え方です。

1次のARモデルは、

\begin{eqnarray}
y_t=c+\phi_1{y_{t-1}}+\epsilon_t,
\epsilon_t\sim{W.N.(\sigma^2)}
\end{eqnarray}

と定義されます。

\(\phi_1\)を元に\(y_t\)と\(y_{t-1}\)が相関を持っているのが分かりますね!

この時、\(|\phi_1|>1\)となってしまったらどうなるでしょうか。

そう、発散してしまうんですね。すなわち非定常です。

そのため基本的にARモデルにおける\(\phi_1\)は\(|\phi_1|<1\)で与えます。

 

ARMAモデル

そして、これらのMAモデルとARモデルをどちらもモデルに組み込んだのが、

ARMAモデル!

ARMAモデルを記述するとこんな感じ!

\begin{eqnarray}
y_t=c+\phi_1{y_{t-1}}+\epsilon_t+\theta_1\epsilon_{t-1},   \epsilon_t\sim{W.N.(\sigma^2)}
\end{eqnarray}

単純にARモデルとMAモデルのモデル式を組み合わせただけですね!

これはARモデルもMAモデルも1次相関しか持たせていませんが、2次、3次・・・と項を増やすことでより柔軟なモデリングが可能になります!

多くの時系列データに対してこのARMAモデルに当てはめて構造把握や予測を行うことになります!

 

ARIMAモデル

ARMAモデルを少し拡張したのがARIMAモデル!

基本的に株価や視聴率や売り上げなどのトレンドや季節要因のある非定常データは、そのままARMAモデルを当てはめても上手くいかないことが多いです。

しかし、それらのデータは期ごとの差分をとることで定常性が満たされることが多いです。

その時系列データの差分をとって差分のデータに落とし込むことで定常にし、ARMAモデルを適用しよう!とするのがARIMAモデルです!

 

まとめ

いかがだったでしょうか?

時系列データにおける定常性の概念からモデリングの理論的な話をしてきました。

具体的な解析に関しては、Rのパッケージで簡単にできるので次回にまわしたいと思います。