【相関/自己共分散】時系列データ分析の基礎と注意点について解説!

目次
ウマたん本記事では、実務の場で登場することの多い時系列データの分析方法についてカンタンにまとめていきます!時系列要素を加味しないとちゃんとしたモデリングができない状況に陥ります。注意しましょう!
こんにちは!データサイエンティスト兼デジタルマーケターのウマたん(@statistics1012)です
過去のデータを元に将来のデータを予測したい!
こういう場面って多いですよね?
店舗の売り上げに関してもそうだし、株価だってそうだし視聴率だって。
そんな時に登場するのが時系列分析!
ロボたん時系列データの扱いって難しいよねー!!
ウマたん時系列データは実務でよく登場するけど、意外と特別な扱い方が必要だという認識を持っている人は少ないよねー!
そんなやっかいな時系列データですが、なかなか分かりやすい書籍がない!
沖本さんの「計量時系列分析」は、確かに良書ですがとっかかりとしては難易度が高いんです。
こちらの「現場で使える時系列データ分析」は簡単な説明とRによる実装が分かりやすく書いてありますが、理論的な内容は薄いです。
個人的には「現場で使える時系列データ分析」を読んだ後に「計量時系列分析」を読めばよいかなと思ってます。
ちなみに以下の記事でおすすめの時系列分析の本をご紹介しているのでよかったら見てみてください。
厳選7冊!時系列分析を勉強する上でおすすめな本!当サイト【スタビジ】の本記事では、時系列データ分析を勉強するのにオススメな書籍を徹底的に紹介していきます。時系列データは実世界で頻出するデータセットであり、単純な分析では誤った解釈を得てしまいかねません。ぜひ時系列データ分析のエッセンスを学んでビジネスに活かしていきましょう!
そんなこんなでなかなか難しい!という声を聞く時系列分析についてこの記事でまとめておきます!
Rでの実装や深い理論が気になる方は前述した2冊を読んでみてください!
そもそも時系列分析とは?
当たり前ですが、得られたデータに順序があるデータを時系列データと呼びます。
逆にデータに順序がなく一つの時期に複数のデータがある状況をクロスセクションデータと呼びます。
また、結構実データ解析とか行っていると遭遇する可能性の高いデータにパネルデータと呼ばれるものがあります。
これは、時系列データとクロスセクションデータが組み合わさったもの!
簡単な具体例を挙げると、
となります。
パネルデータを用いることの利点は第一に,これまでのクロスセクション ・データや時系列デー夕と比べた場合,観察点が格段に増加するので推定精度が上がることが期待できる
(引用元:Google-「パネルデータの意義 とその活用」)
パネルデータの解析はまた違ったアプローチがあるので置いておいて、今回は一つの店舗での売り上げデータである時系列データのお話をしましょう!
時系列データ分析をする上でおさえておきたい基礎知識
まずはじめに時系列データ分析をする上でおさえておきたい基礎知識についてまとめておきましょう!
クロスセクションデータにはない自己共分散
クロスセクションデータいわゆる静的なデータに良く用いられる統計量として平均・分散・標準偏差・共分散・相関係数などがありますね。
その中で相関を求める上で重要になってくる共分散。
共分散を求めることで各変数の相関構造を求めたりデータの構造を知ることができるのですが、時系列データには自己共分散という概念が存在します。
各期の観測値、各期の期待値をとした時、自己共分散の定義はこんな感じ!(参考:計量時系列分析)
\begin{eqnarray}
Cov(y_t,y_{t-1})=E[(y_t-\mu_t)(y_{t-1}-\mu_{t-1})]
\end{eqnarray}
各期の共分散というイメージですね。
すなわち共分散が正の場合その期同士は平均に対して同じ方向への挙動を示しやすく、負の場合は平均に対して違う方向への挙動を示しやすいということです。
この自己共分散は自己相関につながり、時系列データの構造を把握する上で非常に重要になってきます。
定常性という概念
まず、時系列分析において確認しておかなくてはならないのが定常性の概念!
定常性には弱定常性と強定常性があるんですが、正直確認しておくのは弱定常性だけで良いでしょう!
基本的にこの弱定常性が仮定されないと統計的な解釈はできません。
弱定常性の定義はこちら!(参考:計量時系列分析)
任意のとにおいて
\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で簡単に記述できます。
a<-rnorm(1000)
plot(a,type="l")
弱定常性のことをただ単に定常と呼ぶこともあるのでここでも弱定常のことを定常と呼ぶことにします。
ちなみにこの定常性を満たさないものを非定常と呼びます。
店舗の売り上げデータも株価データも視聴率データもぜーんぶ基本的には非定常です。
このあとに出てくるMAモデルもARモデルも定常性を仮定して当てはめるのでこの定常性という概念は必ず覚えておきましょう!
強定常性という概念もあるんですが、弱定常性のことを単に定常と呼ぶこともあるくらい、そこまで解析においては重要でない概念なのでここでは弱定常性だけにとどめておきます。
強定常性に関しては沖本さんの本を読んでみてください!
定常性について詳しくはこちらでまとめています。
https://toukei-lab.com/%e5%ae%9a%e5%b8%b8%e3%81%a8%e9%9d%9e%e5%ae%9a%e5%b8%b8
時系列データ分析のモデル
続いて時系列データ分析に用いられるモデルについて簡単に見ていきましょう!
MAモデル
やっと時系列モデリングのお話に入ります。
時系列データのほとんどは、前述した自己共分散すなわち自己相関を持っています。
自己相関を持ったデータをモデリングする方法としてはどのようなものが考えられるでしょうか?
たとえば
\begin{eqnarray}
\left\{
\begin{array}{l}
y_t&=&a+b\\
y_{t-1}&=&b+c\\
\end{array}
\right.
\end{eqnarray}
こんな感じ。
このようにモデリングすると、共通の成分を通して、とが相関をもつことが期待できますね!
これが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}
※ホワイトノイズは全ての期において平均分散を満たし、と記述する。
こんな感じ。
ホワイトノイズを元にとが相関を持っているのが分かります!
また、というパラメータがとの相関の強さを決めているのが分かりますね。
これはとの相関しか記述していないので1次自己相関と呼びますが、2次、3次・・・といくらでも記述することは可能です。
最適なあてはまりの良い次数を決定してモデリングするんです→ここらへんは重回帰におけるモデリング決定理論と同じでAICを用いたりします。
詳細は省きますが、このMAモデルは常に定常になります。
ARモデル
またもう一つは、
こんな感じにしてをで表せるようにしたモデル。これが相関を持つのは明らかですね!
これが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}
と定義されます。
を元にとが相関を持っているのが分かりますね!
この時、となってしまったらどうなるでしょうか。
そう、発散してしまうんですね。すなわち非定常です。
そのため基本的にARモデルにおけるはで与えます。
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モデルです!
ディープラーニングによる時系列データ分析(RNN)
最先端の技術であり日々進化を続けるディープラーニング。
そんなディープラーニングにはRNN(リカレントニューラルネットワーク)という手法が存在します。
これにより、時系列データをディープラーニングにより分析できるようになったのです。
通常のディープラーニングは情報が別のレイヤーに伝播していきますが、

リカレントニューラルネットワークでは同じレイヤーに情報が伝播していきます。

時系列データ分析というと株価や売り上げデータなどをイメージされると思いますが、実は言語処理も文字の時系列データになるのです。
Google翻訳やAIスピーカーなどの技術もRNNを基にしているんですよー!!
詳しく知りたい方は、以下の書籍を見てみてください!
また記事でもまとめていますのでよければのぞいてみてください!
RNN(リカレントニューラルネットワーク)の概要とPython実装方法をわかりやすく解説!当サイト【スタビジ】の本記事では、ディープラーニングを時系列にも対応させたRNN(リカレントニューラルネットワーク)について解説していきます。RNNの仕組みや応用場面と一緒にPythonでの実装をしていきます。これからの応用が期待される領域なんですよー!
時系列データ分析 まとめ
本記事では、時系列データにおける定常性の概念からモデリングの理論的な話をしてきました。
時系列データ分析について学ぶにためにはもはや王道になっている以下の沖本さんの書籍は購入しておいて損はないでしょう!
さらに時系列データ分析についてもっと知りたいという方はこちらでオススメの本をまとめていますので是非ご覧ください!
ウマたん時系列データ分析はぜひ知っておいてほしい!
厳選7冊!時系列分析を勉強する上でおすすめな本!当サイト【スタビジ】の本記事では、時系列データ分析を勉強するのにオススメな書籍を徹底的に紹介していきます。時系列データは実世界で頻出するデータセットであり、単純な分析では誤った解釈を得てしまいかねません。ぜひ時系列データ分析のエッセンスを学んでビジネスに活かしていきましょう!
データサイエンスや機械学習の勉強方法については以下の記事で詳しくまとめているのでチェックしてみてください!
【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。
【5分で分かる】機械学習の独学勉強ロードマップを徹底的にまとめていく!当サイト【スタビジ】の本記事では、機械学習の独学勉強ロードマップについて徹底的にまとめていきます。機械学習をいきなり理論からしっかり勉強しようとすると挫折しかねません。そこで、この記事ではなるべく挫折しないロードマップをお伝えしてきますよ!読んだ内容を、手を動かして身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。
スタアカを見てみる







