Rで時系列データの要約(可視化)

顔妻です。
今回はRで時系列データの要約(可視化)についてです。

時系列データを要約する意義は季節性やその他の周期(パターン)を見出すためです。また見方として、変化率でみたり、基準決めてそこからどれだけ変化したかをみる指標でみることでよりデータの性質を理解しやすくなります。

時系列データの要約

library(ggplot2)

#### データの準備 ####
date <- c(‘2019/10/1′ ,’2019/10/2′ ,’2019/10/3’, ‘2019/10/4′ ,’2019/10/5′ ,’2019/10/6′ ,’2019/10/7’)
sales <- c(2066 ,751 ,978, 1244 ,1531 , 1531 ,2260)
temperature <- c(25.8 ,24.2 , 23.2, 25.2 , 24.8 , 24.8 ,23.2)

# 表データ作成
d <- data.frame(date = as.Date(date), sales, temperature)

# 可視化
theme_set( theme_bw( ) )
ggplot(d, aes(x = as.Date(date), y = sales)) +
geom_line(stat = “identity”) +
geom_point() +
scale_x_date(breaks = “day”, date_labels = “%m/%d”) +
ylim(0,max(d$sales))

時系列データの要約2 変化率

次は変化率です、前月の売上からどの程度伸びているかを比率で確認しましょう。

#### 変化率 ####
library(dplyr)
d <- d %>%
mutate( sales_previous = lag(sales, n = 1)) %>% # 前月データの取得
mutate(rate_change = round(sales / sales_previous,digits = 2))

# 可視化
ggplot(d, aes(x = as.Date(date), y = rate_change)) +
geom_line(stat = “identity”) +
geom_point() +
scale_x_date(breaks = “day”, date_labels = “%m/%d”) +
ylim(min(d$rate_change),max(d$rate_change)) +
ggtitle(“前月比の推移”)

datesalessales_previousrate_change
2019/10/12066
2019/10/275120660.36
2019/10/39787511.3
2019/10/412449781.27
2019/10/5153112441.23
2019/10/6153115311
2019/10/7226015311.48

時系列データの要約3 指数

#### 指数 ####
d <- d %>%
mutate(sales_index = round(sales / d$sales[1], 2)) # 10月1日を基準として指数化

# 可視化
ggplot(d, aes(x = as.Date(date), y = sales_index)) +
geom_line(stat = “identity”) +
geom_point() +
scale_x_date(breaks = “day”, date_labels = “%m/%d”) +
ylim(min(d$sales_index),max(d$sales_index)) +
ggtitle(“売上の指数”)

まとめ

時系列データも工夫の仕方でより深くデータの性質を理解し現状を理解することができたのではないでしょうか。周期性の確認はもちろんですが、どんな施策が効果がありそうかというのも読み取りやすくなると思います。一方で、前月比をパッと見ると堅調に売上が伸びたように見えてしまうことがあります。こんなときは受け手への注意が必要です。また、指標化も基準をどこにおくかで理解が大きく変わってしまいますので、使いどころや受け手に合わせて工夫しながら活用してみてください。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA