Bab 6 Trend

//TODO: Membahas cara mebuat visualisasi untuk melihat trend menggunakan R.

Pada Bab ini kita akan menggunakan package {tidyverse}, {lubridate} dan {scales}. Pastikan package tersebut sudah terinstall.

library(tidyverse)
library(lubridate)
library(scales)

Data yang digunakan adalah data dari Flow_Of_Docs terminal JICT selama tahun 2020. Data ini sudah diolah dan disiapkan dalam file “fl_pelatihan.rds”. Oleh karena itu pastikan kita sudah import data tersebut dengan menjalankna perintah berikut ini.

library(readr)
fl_pelatihan <- readr::read_rds("data/fl_pelatihan.rds")

Umunya data yang digunakan adalah deret waktu (time series). Ketika data yang kita punyai terdapat variabel waktu (time series) maka variabel waktu tersebut dapat kita jadikan sebagai sumbu horizontal. Pada sumbu vertikal dapat kita tempatkan variabel yang ingin kita lihat trend-nya. Untuk menampilkan atau memvisualisasikan data trend, umunya grafik yang digunakan adalah diagram garis (line chart). Dengan menggunakan package {ggplot2} kita dapat gunakan geom_line() untuk membuatnya.

fl_pelatihan %>% 
  filter(tanggal >= as_date("2020-01-01")) %>% 
  group_by(tanggal) %>% 
  summarise(n = mean(dt)) %>% 
  ggplot(mapping = aes(x = tanggal, y = n)) + 
  geom_line() + 
  scale_x_date(date_breaks = "2 weeks", date_labels = "%d %b") + 
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",")) + 
  labs(title = "Trend Rataan Dwelling Time Per Hari Terminal JICT Tahun 2020", 
       x = "Tanggal", 
       y = "Rataan DT (Hari)") + 
  theme_minimal() + 
  theme(legend.position = "none", text = element_text(size = 12))
## `summarise()` ungrouping output (override with `.groups` argument)

Sekilas tidak ada perubahan trend atau hampir sama setiap harinya. Hal yang menjadi perhatian dari grafik adalah pada bulan April. Pada pekan pertama bulan April terjadi kenaikan rataan DT harian hingga mencapai puncak di akhir pekan rataan DT lebih dari 8 hari. Kemudian terjadi penurunan pada pekan kedua, namun kembali naik di pekan ketiga. Selanjutnya terjadi pola penurunan trend setelah pekan ketiga di bulan April. Jika dilihat dari awal data, nilai rataan DT harian di bulan Januari 2020 sekitar 4 hari. Pada akhir periode, yaitu di bulan Mei 2020 rataan DT hariannya menjadi sekitar 2 hari.

Untuk lebih meyakinkan bahwa terjadi trend penurunan rataan DT harian, kita tambahkan garis pemulusan (smoothing) yang mengikuti pola secara umum pada data. Terlihat bahwa ada trend penurunan rataan DT harian pada bulan Januari dan Februari. Kemudian trend kembali naik hingga pertengahan bulan April dan terus menurun hingga akhir periode data, atau hingga akhir bulan Mei 2020.

fl_pelatihan %>% 
  filter(tanggal >= as_date("2020-01-01")) %>% 
  group_by(tanggal) %>% 
  summarise(n = mean(dt)) %>% 
  ggplot(mapping = aes(x = tanggal, y = n)) + 
  geom_line() + 
  geom_smooth() + 
  scale_x_date(date_breaks = "2 weeks", date_labels = "%d %b") + 
  scale_y_continuous(labels = scales::comma_format(big.mark = ".", decimal.mark = ",")) + 
  labs(title = "Trend Rataan Dwelling Time Per Hari Terminal JICT Tahun 2020", 
       x = "Tanggal", 
       y = "Rataan DT (Hari)") + 
  theme_minimal() + 
  theme(legend.position = "none", text = element_text(size = 12))
## `summarise()` ungrouping output (override with `.groups` argument)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'