【R言語】decomposeで時系列データの要素を分解してみる
Rで時系列データを手軽に分析したいなってときにdecomposeをよく使うのですが、 その方法を簡単に説明します。
decompose関数は、時系列データを
・tread ・seasonal ・random
の3つに分解してくれます。 トレンドと季節性を分解してくれるので、例えば季節の影響なく売上が伸びているのか(減っているのか)を調べる時に使えそうだなと。
ただ、このdecomposeが中でどういう処理をしているのかはよく知らないので、 ちゃんと勉強しないとですね・・・
データはAirPassengersを用いました。
ダウンロードはこちら: https://www.kaggle.com/rakannimer/air-passengers/data
data <- read.csv('airpassengers.csv') ts.d <- ts(data$X.Passengers, frequency = 12) decomposed.ts.d <- decompose(ts.d) plot(decomposed.ts.d)
1年単位で周期しているだろうと思いfrequency = 12と指定しました(月単位でデータが格納されているので)。
たった4行で書けるので、手軽!
▼plotした結果
けれど、Random項がランダムじゃないっぽい波形をしているので、このモデルでは不十分そうなことがわかります。
もっと詳しくやるなら、やはりこの本からですかね。 ARモデルが詳しく解説されています。