第1回:時系列解析の基礎的な関数
第2回:時系列のデータビジュアライゼーション
第3回:時系列の現状分析
第4回:時系列の予想
第5回:予想モデルの評価
前回、時系列解析の基礎的な関数の解説をしました。今回は、時系列のデータビジュアライゼーションについて解説します。
使用する言語:R
パッケージ:fpp2(forecast)、tidyverse(ggplot2)
fpp2の中に、elecという電気使用量のデータが入っているのでそのデータを使ってグラフを作っていきます。自分のデータでグラフを作る場合には、tsデータにしてから以下の操作を行ってください。
時系列データの基本的なグラフ作成方法
autoplotという関数を使います。ggplotをベースに作られていますので、基本的に調整の仕方等も同じです。
autoplot(tsオブジェクト)
autoplot(elec)
autolayer( )
時系列を追加します。だいたいの使い方は、予測したところを追加するというものです。
autoplot(elec)+autolayer(forecast(elec)) autolayerで層追加
ggseasonplot(tsオブジェクト, year.labels = T, polar = T)
tsオブジェクトのfrequencyに応じたseasonplotを作成します。
ggseasonplot(elec, year.labels = F, polar = F)
ggsubseriesplot(tsオブジェクト)
月ごとの平均が分かるからいい感じです。
ggsubseriesplot(elec)
ggtsdisplay(tsオブジェクト)
時系列のプロット、自己相関関数プロット、偏自己相関関数プロットを自動でしてくれます。自己相関は、自分の過去との相関です。偏自己相関は、ある時点とある時点の相関を他の時点の影響を除いたときの相関です。自己相関は、前後の相関の影響が次に影響し、次に影響しということになります。その影響を除いたのが偏自己相関です。以下の例だとlag13のときに偏自己相関が高くなっていて、影響が強い事が一目瞭然です。
ggtsdisplay(elec)
acfとpacfは個別にプロットもできます。
ggAcf(elec)
ggPacf(elec)
autoplotでx軸の調整がうまくいかないとき
Timeseriesで、autoplotでうまくx軸の調整ができないときには、tsにする前のデータフレームを使って、ggplotで描写すればうまくx軸の調整ができます。
例えば、日ごとのデータを読み込んでautoplotでグラフを作ってみます。
anl_df <- read.csv("C:\\Users\\analytics.csv")
anl_df$hinichi <- as.Date(anl_df$hinichi, format="%Y/%m/%d")
anl <- ts(anl_df$user, start = c(2021,1), frequency =365)
autoplot(anl)
2021年のあとにxラベルが全然表示されていません。わかりにくいです。scale_x_continuousを調整してもうまくいきませんでした。autoplot()でグラフを作ったときは、調整のされ方が少し違うみたいです。
autoplotを諦めて、ggplot本来のやり方でいきます。
tsオブジェクトにする前のデータフレームを使っています。
ggplot(anl_df, aes(x=hinichi,y=user))+
geom_line()+
scale_x_date(date_breaks ="7 day")+
theme(axis.text.x = element_text(angle = 90))
ggplot(anl_df, aes(x=hinichi,y=user))+
geom_line()+
scale_x_date(date_labels="%Y/%m/%d")
ggplotでいった場合には、予想を追加するautolayerと同等の機能がないように思います。私は、見つけられていないのであきらめています。
forecastパッケージが引退し、fableパッケージがでてきたのはこういったところに原因があるのではないでしょうか。
やり方を知っている方がいれば教えてください!