医療職からデータサイエンティストへスマートフォン用の表示で見る医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。R前回は時系列解析の考え方や基本用語についてまとめました。今回はもう一歩進んで、実践に近づいた内容にしていきます。www.medi-08-data-06.work今回扱う範囲は、時系列データの前処理方法、AR、MA、ARMA、ARIMAです。それではいきましょう。時系列解析は以下のステップで行うのが基本的な流れになります。データの可視化まずはデータを可視化します。時系列における可視化は、データがどんな動きをしているのか、トレンドがあるのか、定常過程に従いそうか、周期性がありそうか、などデータのイメージを掴むためにも重要です。可視化でイメージを掴んだらデータが定常過程に従っているかどうかを確認します。定常過程に従っていれば統計モデルを作りやすいんでしたね。定常過程かどうかの検定方法については次回以降に扱っていきますが、見た目でもある程度は分かります。www.medi-08-data-06.work前処理もし、定常過程に従っていなさそうであれば、以下の前処理を行っていきましょう。は時系列データの分散が一定ではない時に行うことで、分散を一定と見なせる場合があります。こんなデータ値が大きくなっていくごとに分散が広がっているのが分かります。これを対数変換するとデータのバラツキが少なくなりましたね。対数変換をさらに一般化した方法としては、Box-Cox変換というものもありますが、使用頻度はあまり多くありません。差分(階差)差分はデータのトレンドを除くために行われます。先ほどのデータは右肩上がりのトレンドを持つデータになっていました。一つ前の値から次の値を引く一階差分にするとトレンドを除去することができます。一階差分を行ったデータが以下になります。トレンドが除かれていますね。し、トレンドが直線であれば、と表すことができ、ここから一階差分をとるととなります。定数に誤差を足した値になっていることから、トレンドが除去できていることが分かります。は時系列の前処理において、データの変動を明らかにしたい時に用いられます。企業収益やお店の売り上げなど一つ前の時点からどれぐらい変化したかを知りたい場合などが当てはまります。対数差分は、対数変換した系列の一階差分ですが、一つ前の値と次の値の比をとったものを対数変換していることと同じなので、変動を表すことができるのです。先ほどのデータの対数差分をとってみましょう。y軸をみて頂くとわかる通り、変動のバラツキがだいぶ小さくなりました。以上のような前処理行うことでデータを定常過程と見なせる場合があります。統計モデルの同定さて、データが定常過程に従っていることが分かれば、いよいよもっともらしい確率過程を見つけていきます。確率過程と言っても無数存在します。その中からどれがもっともらしいか一つずつ試すわけにも行かないので、定常過程に従う統計モデルの型が必要になります。それが今回扱うMA過程、AR過程、ARMA過程です。この中からもっともらしそうな型を決める作業が統計モデルの型を決めることになります。この作業をモデルの同定と呼びます。これらの型は時系列データ特有の過去の自分と相関があるという特徴を持っている確率過程です。)MA過程は過去の自分の誤差と相関を持つ確率過程になります。一期前の自分と相関のあるMA過程をMA(1)とし、以下のように表されます。正規ホワイトノイズと仮定することが多いです。共通項に持つので、一期前と相関する確率過程を表すことができます。したMA(1)をグラフにしてみるとこのような感じになります。平均値10の周りを一定の分散でばらついているので、定常過程に従っていますね。このMA(1)過程のコレログラムを書いてみると見ての通り2期以上離れると自己相関が0になっています。ここで偏自己相関というものも紹介しておきます。偏自己相関とは、ある時点tをt+k時点との自己相関を計算する時に、t+1、t+2、t+3.....t+k-1時点との自己相関を除いた自己相関と言えます。イメージしにくいかもしれませんが、今はそんなものがあるんだぐらいで構いません。その偏自己相関のコレログラムを書いてみるとこんな感じになります。分かりにくいですが、偏自己相関が少しずつ減衰しているように見えませんか?実は、MA過程の特徴として偏自己相関は段々と減衰することが分かっています。ここまででMA過程の特徴を一般化してまとめておきます。MA(q)過程q時点までと自己相関を持ち、q時点以降は0になる偏自己相関は少しずつ減衰する。process)AR過程は過去の自分の値そのものと自己相関を持つ確率過程です。一期前の自分と相関を持つAR(1)過程は以下のように表されます。実は前回のアイスクリームの売り上げモデルである、今月の売り上げは先月の売り上げに誤差を足した値であるというこの式もAR過程だったのです。したAR(1)過程は以下のような感じになります。先ほどと同じように10の周りを一定の分散で散らばっているので、定常過程に従っていそうです。このAR(1)過程の自己相関のコレログラムを書いてみるとこんな感じになります。AR(1)過程では、自己相関が少しずつ減衰することが分かります。偏自己相関のコレログラムを書いてみると1期までは偏自己相関がありますが、それ以上先になると0になってなっていますね。自己相関は少しずつ減衰する。p時点までと偏自己相関を持ち、p時点以降は0になる。絶対値を足した値が1より小さい時に限りAR過程は定常になります。従って、先ほどのアイスクリームの売り上げモデルは係数が1であるため定常とはならないんですね。ARMA・ARIMA過程さて最後はAR過程、MA過程の特徴を合わせ持ったARMA過程です。1)とするとと表すことができます。したARMA(1,1)過程はこんな感じになります。こちらも定常過程に従っていそうですね。コレログラムを書いてみるとどちらも少しずつ減衰しているように見えます。ともに指数的に減衰するという特徴があります。p時点までと偏自己相関を持ち、p時点以降は0になる。時に定常となるMA過程は常に定常になります。足した値が1より小さい時にARMA過程は定常となります。process)と呼びます。ARIMA過程はARIMA(p,d,q)と表し、dは差分値、p,qはAR,MA過程の次数を表します。モデルの同定さて、それではここから統計モデルを作成する方法について紹介してきましょう。モデルの同定には以下の二つのステップが一般的です。コレログラムからモデル候補を見つける。情報量基準を用いてモデルを同定する。コレログラムの特徴からそれらしいモデル候補を見つけます。step2では、それらのモデル候補から情報量基準(一般的にはAIC)を使って、一番もっともらしいモデルを同定します。www.medi-08-data-06.work実際にやってみましょう。今回のデータはこんなデータです。前処理として差分をとってデータのトレンドを無くします。定常過程っぽくなりましたね。このデータの自己相関(上)、偏自己相関(下)のコレログラムを書いてみましょう。自己相関は徐々に減衰しているのでMA過程ではなさそうです。次に偏自己相関をみてみると少しずつ減衰しているようにも見えますが、4期目以降の自己相関が3期目までと比べて小さいのでAR過程の可能性もありそうです。ここから、AR(3)過程とARMA過程を候補のモデルとします。ARMA過程はコレログラムから次数を判断することが難しいためARMA(2,2)までのARMA(1,1),ARMA(1,2),ARMA(2,1),ARMA(2,2)を網羅的にモデル候補とします。これら5個のモデルのAICを求めて、AICが一番小さくなったモデルがもっともらしいモデルと言えそうです。1396.538となります。ここからARMA(2,2)過程、差分をとっているのでARIMA(2,1,2)過程が一番当てはまりのよいモデルであることが分かります。Rでの実践ARIMA過程を扱うには{forecast}パッケージをインストールします。コードは以下になります。geom_line(aes(x=Time,y=Value))モデル同定編MA過程、AR過程、ARMA過程はパッケージを使わずに作成しましたが、最後の練習データであるARIMA過程は{forecast}パッケージを使用しました。geom_line(aes(x=Time,y=Value))acf(arma)acf(arma,type="partial"){forecast}のarima.sim関数はARIMA過程に従うシミュレーションデータを作成できます。今回は一階差分系列がのARMA(2,2)過程に従うデータを作成しました。diff(arima)#コレログラムacf(arma)acf(arma,type="partial")ARIMA過程に従うモデルを推定するには{forecast}のArimaを使います。次数をorderの中に(p,d,q)の順に指定するとその係数の推定やAICの計算などを自動でやってくれます。BIC=1428.25これを使って5つのモデルでAICを計算します。}また、各モデルに対してそれぞれAICを計算しましたが、実は{forecast}のauto.arimaを使うとAICに基づいて勝手にモデルを推定してくれます。BIC=1415.83同じようにARMA(2,2)が選ばれました。係数をみても、シミュレーションで設定した値に近い係数が推定されていますね。まとめ今回はデータの前処理からモデルの同定方法までをまとめました。次回からはいよいよ予測の方法や多変量時系列モデルについて書いていきます。:分散が一定ではない時に用いる差分:トレンドを除去するために用いる対数差分:変動を確認するために用いる定常過程の特徴MA(q)過程q時点までとの自己相関を持ち、q時点以降は0になる偏自己相関は少しずつ減衰する。自己相関は少しずつ減衰する。p時点までとの偏自己相関を持ち、p時点以降は0になる。