データアナリストのメモ帳

データアナリストのメモ帳

IT企業で働くデータアナリストのブログ

【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した結果 R decompose

けれど、Random項がランダムじゃないっぽい波形をしているので、このモデルでは不十分そうなことがわかります。

もっと詳しくやるなら、やはりこの本からですかね。 ARモデルが詳しく解説されています。