PENDAHULUAN

Data time series adalah data yang dicatat secara berurutan berdasarkan waktu. Dalam analisis data, time series sering digunakan untuk memahami perubahan suatu fenomena dari waktu ke waktu. Oleh karena itu, visualisasi memegang peranan penting dalam memahami pola yang terkandung di dalam data tersebut. Contoh data time series antara lain jumlah penjualan bulanan, temperatur harian, atau jumlah pengguna aplikasi setiap hari.

Visualisasi data time series biasanya menggunakan grafik garis (line chart) karena mampu menunjukkan perubahan nilai secara berurutan dari waktu ke waktu.Secara umum, data time series memiliki dua komponen utama, yaitu:

  1. Dimensi waktu (time index) Menunjukkan kapan suatu pengamatan dilakukan, misalnya tanggal, bulan, atau tahun.
  2. Nilai observasi (value) Merupakan nilai variabel yang diamati pada waktu tertentu, misalnya jumlah penjualan atau suhu.

Melalui visualisasi time series, kita dapat mengidentifikasi beberapa pola umumnya, antara lain:

  1. Trend : menunjukkan kecenderungan arah pergerakan data dalam jangka panjang, apakah meningkat, menurun, atau stabil.
  2. Seasonality : merupakan pola perubahan data yang berulang secara teratur dalam periode waktu tertentu. Periode seasonality dapat berupa: harian, mingguan, bulanan, tahunan.
  3. Cyclical pattern (Pola siklus) : merupakan fluktuasi jangka panjang yang biasanya terkait dengan kondisi ekonomi atau fenomena tertentu.
  4. Random variation (Variasi acak) : merupakan perubahan yang tidak dapat diprediksi dan tidak mengikuti pola tertentu.

DATASET

Dataset yang digunakan berasal dari sistem bike sharing di Washington, D.C., yang tersedia pada UCI Machine Learning Repository https://archive.ics.uci.edu/dataset/275/bike+sharing+dataset. Dataset ini mencatat aktivitas penyewaan sepeda setiap hari selama dua tahun, yaitu 2011 hingga 2012. Selain jumlah penyewaan sepeda, dataset ini juga mencatat berbagai informasi lain seperti waktu, cuaca, dan kategori hari. Informasi tersebut memberikan gambaran mengenai kondisi lingkungan saat data dikumpulkan.

Dalam analisis ini, variabel target yang akan menjadi fokus adalah cnt. cnt adalah jumlah sepeda yang disewa pada suatu hari. Melalui visualisasi data time series, kita ingin memahami bagaimana jumlah penyewaan sepeda berubah sepanjang waktu. Beberapa pertanyaan awal yang dapat diajukan antara lain:

  • Apakah jumlah penyewaan sepeda mengalami peningkatan atau penurunan selama periode pengamatan?
  • Apakah kondisi cuaca memengaruhi jumlah penyewaan sepeda harian?
  • Bagaimana pengaruh hari kerja dan hari libur terhadap jumlah penyewaan sepeda?

TAMPILAN DATASET

library(readxl)
dataset <- read_excel("C:/Users/Lenovo/Downloads/datasetbikeday.xlsx")
View(dataset)
colnames(dataset)
##  [1] "instant"    "dteday"     "season"     "yr"         "mnth"      
##  [6] "holiday"    "weekday"    "workingday" "weathersit" "temp"      
## [11] "atemp"      "hum"        "windspeed"  "casual"     "registered"
## [16] "cnt"
str(dataset)
## tibble [731 × 16] (S3: tbl_df/tbl/data.frame)
##  $ instant   : num [1:731] 1 2 3 4 5 6 7 8 9 10 ...
##  $ dteday    : POSIXct[1:731], format: "2011-01-01" "2011-01-02" ...
##  $ season    : num [1:731] 1 1 1 1 1 1 1 1 1 1 ...
##  $ yr        : num [1:731] 0 0 0 0 0 0 0 0 0 0 ...
##  $ mnth      : num [1:731] 1 1 1 1 1 1 1 1 1 1 ...
##  $ holiday   : num [1:731] 0 0 0 0 0 0 0 0 0 0 ...
##  $ weekday   : num [1:731] 6 0 1 2 3 4 5 6 0 1 ...
##  $ workingday: num [1:731] 0 0 1 1 1 1 1 0 0 1 ...
##  $ weathersit: num [1:731] 2 2 1 1 1 1 2 2 1 1 ...
##  $ temp      : num [1:731] 0.344 0.363 0.196 0.2 0.227 ...
##  $ atemp     : num [1:731] 0.364 0.354 0.189 0.212 0.229 ...
##  $ hum       : num [1:731] 0.806 0.696 0.437 0.59 0.437 ...
##  $ windspeed : num [1:731] 0.16 0.249 0.248 0.16 0.187 ...
##  $ casual    : num [1:731] 331 131 120 108 82 88 148 68 54 41 ...
##  $ registered: num [1:731] 654 670 1229 1454 1518 ...
##  $ cnt       : num [1:731] 985 801 1349 1562 1600 ...

Berdasarkan output tersebut, dataset ini memiliki 16 variabel yang memiliki total observasi sebanyak 731 observasi. Variabel yang digunakan dalam analisis ini, yaitu:

  1. dteday
  2. cnt
  3. weathershit
  4. Workingday

VISUALISASI DATA TIME SERIES

VISUALISASI TREN AWAL

Berikut ini adalah visualisasi tren awal dari dataset penyewaan sepeda selama masa periode*

# library
library(tidyverse)

# Mengubah format tanggal
dataset$dteday <- as.Date(dataset$dteday)

# visualisasi
ggplot(dataset, aes(x = dteday, y = cnt)) +
  geom_line(color = "brown") +

  scale_x_date(date_breaks = "1 month",
               date_labels = "%b-%Y") +

  labs(title = "Trend Jumlah Penyewaan Sepeda",
       x = "Bulan",
       y = "Jumlah Penyewaan") +

  theme_minimal() +

  theme(axis.text.x = element_text(angle = 45,
                                   hjust = 1))

Grafik tersebut menunjukkan bahwa jumlah penyewaan sepeda cenderung meningkat dari awal 2011 hingga 2012. Pada awal periode, jumlah penyewaan sepeda masih relatif rendah, yaitu sekitar 1.000–2.000 penyewaan. Seiring berjalannya waktu, jumlah penyewaan terus meningkat dan mencapai puncaknya pada pertengahan hingga akhir tahun 2012 dengan jumlah mendekati 9.000 penyewaan.

Meskipun tren utamanya meningkat, grafik juga memperlihatkan fluktuasi (perubahan naik turun) yang cukup besar dari waktu ke waktu. Terdapat beberapa penurunan tajam pada periode tertentu, yang kemungkinan dipengaruhi oleh faktor musiman, kondisi cuaca, hari libur, atau aktivitas masyarakat. Secara keseluruhan, grafik ini menunjukkan bahwa minat masyarakat terhadap penggunaan sepeda semakin meningkat dari tahun ke tahun, meskipun tetap dipengaruhi oleh faktor-faktor tertentu yang menyebabkan perubahan jumlah penyewaan setiap harinya.

Berikut ini Visualisasi Smoothing (dengan LOESS smoothing) yang digunakan untuk melihat kecenderungan umum data

ggplot(dataset, aes(x = dteday, y = cnt)) +
  geom_line(alpha = 0.4) +
  geom_smooth(method = "loess",
              se = FALSE,
              color = "red",
              linewidth = 1.2) +
  scale_x_date(date_breaks = "1 month",
               date_labels = "%b-%Y") +
  labs(title = "Smoothing Trend Penyewaan Sepeda",
       x = "Tanggal",
       y = "Jumlah Penyewaan") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45,
                                   hjust = 1))

Grafik smoothing trend dengan LOESS smoothing tersebut menunjukkan pola umum perkembangan jumlah penyewaan sepeda dengan lebih jelas karena garis merah telah menghaluskan fluktuasi harian pada data asli. Teknik LOESS smoothing ini sangat baik digunakan untuk melihat pola umum tanpa harus menentukan bentuk model tertentu. Terlihat bahwa jumlah penyewaan mengalami peningkatan bertahap dari awal tahun 2011 hingga pertengahan 2011. Setelah itu, tren cenderung stabil dan sedikit menurun pada akhir 2011 hingga awal 2012.

Memasuki pertengahan tahun 2012, jumlah penyewaan kembali meningkat secara signifikan dan mencapai puncaknya pada sekitar pertengahan hingga akhir 2012 dengan jumlah lebih dari 7.500 penyewaan. Namun, menjelang awal tahun 2013, tren kembali mengalami penurunan.

Secara keseluruhan, grafik smoothing menunjukkan bahwa penggunaan sepeda cenderung meningkat dari tahun ke tahun, meskipun terdapat periode kenaikan dan penurunan yang dipengaruhi oleh faktor musiman, cuaca, maupun aktivitas masyarakat.

VISUALISASI PENGARUH CUACA TERHADAP JUMLAH PENYEWAAN SEPEDA

Berikut visualisasi boxplot

library(tidyverse)
# Membaca data
dataset <- read_excel("C:/Users/Lenovo/Downloads/datasetbikeday.xlsx")


# Mengubah variabel cuaca menjadi factor
dataset$weathersit <- factor(dataset$weathersit,
                             levels = c(1, 2, 3),
                             labels = c("Cerah",
                                        "Berawan",
                                        "Hujan Ringan"))

# Boxplot dengan satu warna
ggplot(dataset,
       aes(x = weathersit,
           y = cnt)) +

  geom_boxplot(fill = "yellow") +

  labs(title = "Pengaruh Kondisi Cuaca terhadap Penyewaan Sepeda",
       x = "Kondisi Cuaca",
       y = "Jumlah Penyewaan") +

  theme_minimal()

Boxplot tersebut menunjukkan bahwa kondisi cuaca memiliki pengaruh terhadap jumlah penyewaan sepeda. Semakin baik kondisi cuaca, maka jumlah penyewaan cenderung lebih tinggi.Pada kondisi cerah, jumlah penyewaan sepeda memiliki median paling tinggi dibanding kondisi lainnya. Hal ini menunjukkan bahwa masyarakat lebih banyak menyewa sepeda saat cuaca cerah. Selain itu, sebaran data juga cukup luas, yang menandakan variasi jumlah penyewaan cukup besar.

Pada kondisi berawan, jumlah penyewaan masih tergolong tinggi, tetapi sedikit lebih rendah dibandingkan saat cuaca cerah. Hal ini menunjukkan bahwa cuaca berawan masih cukup mendukung aktivitas bersepeda.Sementara itu, pada kondisi hujan ringan, jumlah penyewaan mengalami penurunan yang cukup signifikan. Median penyewaan berada jauh di bawah kondisi cerah dan berawan, sehingga dapat disimpulkan bahwa saat terjadi hujan ringan menyebabkan terjadinya penurunan minat masyarakat untuk menggunakan sepeda.

Berikut tabel frekuensi

table(dataset$weathersit)
## 
##        Cerah      Berawan Hujan Ringan 
##          463          247           21

Berdasarkan tabel frekuensi, kondisi cuaca cerah memiliki data penyewaan sepeda terbanyak dengan 463 data, diikuti berawan sebanyak 247 data, dan hujan ringan hanya 21 data. Hal ini juga menunjukkan bahwa sebagian besar aktivitas penyewaan sepeda terjadi saat kondisi cuaca yang lebih baik.

VISUALISASI PENGARUH HARI KERJA DAN HARI LIBUR TERHADAP JUMLAH PENYEWAAN SEPEDA

Berikut visualisasi boxplot

library(tidyverse)

# Membaca data
dataset <- read_excel("C:/Users/Lenovo/Downloads/datasetbikeday.xlsx")

# Mengubah label workingday
dataset$workingday <- factor(dataset$workingday,
                             levels = c(0,1),
                             labels = c("Hari Libur",
                                        "Hari Kerja"))

# Boxplot
ggplot(dataset,
       aes(x = workingday,
           y = cnt)) +

  geom_boxplot(fill = "pink") +

  labs(title = "Pengaruh Hari Kerja dan Hari Libur terhadap Penyewaan Sepeda",
       x = "Kategori Hari",
       y = "Jumlah Penyewaan") +

  theme_minimal()

Boxplot tersebut menunjukkan bahwa jumlah penyewaan sepeda pada hari kerja dan hari libur memiliki pola yang relatif mirip, tetapi penyewaan pada hari kerja cenderung sedikit lebih tinggi.Median jumlah penyewaan pada hari kerja berada sedikit di atas hari libur. Hal ini menunjukkan bahwa masyarakat lebih sering menggunakan sepeda pada hari kerja, kemungkinan untuk aktivitas rutin seperti bekerja, sekolah, atau transportasi harian.

Selain itu, persebaran data pada kedua kategori cukup luas, yang menandakan bahwa jumlah penyewaan dapat berubah-ubah tergantung kondisi tertentu, seperti cuaca, musim, atau waktu tertentu. Pada hari kerja terlihat variasi penyewaan yang sedikit lebih besar dibanding hari libur.

Berikut tabel frekuensi

table(dataset$workingday)
## 
## Hari Libur Hari Kerja 
##        231        500

Berdasarkan tabel frekuensi, data hari kerja berjumlah 500, sedangkan hari libur sebanyak 231. Hal ini menunjukkan bahwa sebagian besar data observasi berada pada kategori hari kerja. Secara keseluruhan, dapat disimpulkan bahwa status hari kerja maupun hari libur memengaruhi jumlah penyewaan sepeda, dengan penyewaan yang lebih tinggi pada hari kerja.

KESIMPULAN

Berdasarkan hasil visualisasi data time series pada dataset penyewaan sepeda, dapat disimpulkan bahwa jumlah penyewaan sepeda mengalami kecenderungan meningkat selama periode 2011 hingga 2012. Peningkatan tersebut menunjukkan bahwa penggunaan layanan bike sharing semakin diminati masyarakat dari waktu ke waktu. Meskipun demikian, data juga menunjukkan adanya fluktuasi harian yang dipengaruhi oleh beberapa faktor tertentu.

Visualisasi smoothing menggunakan metode LOESS membantu memperjelas pola umum data dengan mengurangi pengaruh fluktuasi harian. Hasil smoothing menunjukkan adanya pola peningkatan penyewaan sepeda yang cukup signifikan terutama pada pertengahan hingga akhir tahun 2012.

Selain faktor waktu, kondisi cuaca juga memberikan pengaruh terhadap jumlah penyewaan sepeda. Pada kondisi cuaca cerah, jumlah penyewaan cenderung lebih tinggi dibandingkan kondisi berawan maupun hujan ringan. Hal ini menunjukkan bahwa cuaca yang baik mendukung aktivitas bersepeda masyarakat.

Selanjutnya, hasil visualisasi berdasarkan kategori hari kerja dan hari libur menunjukkan bahwa jumlah penyewaan sepeda pada hari kerja cenderung lebih tinggi dibandingkan hari libur. Kondisi ini menunjukkan bahwa sepeda banyak digunakan sebagai sarana transportasi harian untuk aktivitas rutin, seperti bekerja atau sekolah.

Secara keseluruhan, visualisasi data time series mampu memberikan gambaran yang jelas mengenai pola perubahan jumlah penyewaan sepeda serta faktor-faktor yang memengaruhinya, seperti waktu, kondisi cuaca, dan kategori hari.