ANALISIS DERET WAKTU (SINGLE & DOUBLE MOVING AVERAGE)
Data yang digunakan adalah jumlah pengunjung Perpustakaan Daerah Kabupaten Serang periode Januari 2023???Juni 2024 (18 observasi bulanan, dalam satuan orang/bulan). Tujuan dari analisis ini adalah untuk memahami pola atau tren pada data, menghaluskan data menggunakan Single Moving Average (SMA) orde 3, menghitung Double Moving Average (DMA) dengan orde m = 3, dan menggunakan hasil DMA untuk meramalkan jumlah pengunjung satu dan dua bulan setelah data terakhir, kemudian membandingkannya dengan ramalan SMA biasa.
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
pengunjung <- c(210,195,220,205,230,215,240,225,250,235,245,260, # 2023
255,265,270,280,275,290) # 2024
pengunjung_ts <- ts(pengunjung, start = c(2023,1), frequency = 12)
pengunjung_ts## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2023 210 195 220 205 230 215 240 225 250 235 245 260
## 2024 255 265 270 280 275 290
# Plot runtun waktu
plot(pengunjung_ts, type = "o", col = "navy",
xlab = "Tahun", ylab = "Jumlah pengunjung (orang/bulan)",
main = "Jumlah Pengunjung Perpustakaan Daerah Kab. Serang)")
Interpretasi: Data pengunjung diubah menjadi objek
ts dengan frequency = 12 karena data bersifat
bulanan. Grafik menunjukkan jumlah pengunjung hampir terus naik selama
satu setengah tahun, dimulai dari 210 orang di Januari 2023 mencapai 290
orang di Juni 2024, meskipun ada beberapa bulan di mana jumlah
pengunjungnya turun (misalnya Februari dan April 2023). Artinya, iya
data asli ini masih menunjukkan adanya tren kenaikan.
Kemudian, data diperhalus dengan menggunakan Single Moving Average orde 3 untuk melihat pola pergerakan data tanpa perubahan besar tiap bulan.
# 2. Single moving average orde 3
sma3 <- rollmean(pengunjung_ts, k = 3, align = "right", fill = NA)
sma3## Jan Feb Mar Apr May Jun Jul Aug
## 2023 NA NA 208.3333 206.6667 218.3333 216.6667 228.3333 226.6667
## 2024 253.3333 260.0000 263.3333 271.6667 275.0000 281.6667
## Sep Oct Nov Dec
## 2023 238.3333 236.6667 243.3333 246.6667
## 2024
# Bentuk tabelnya
hasil_sma <- data.frame(
Bulan = time(pengunjung_ts),
Aktual = as.numeric(pengunjung_ts),
SMA3 = round(as.numeric(sma3), 3)
)
hasil_sma## Bulan Aktual SMA3
## 1 2023.000 210 NA
## 2 2023.083 195 NA
## 3 2023.167 220 208.333
## 4 2023.250 205 206.667
## 5 2023.333 230 218.333
## 6 2023.417 215 216.667
## 7 2023.500 240 228.333
## 8 2023.583 225 226.667
## 9 2023.667 250 238.333
## 10 2023.750 235 236.667
## 11 2023.833 245 243.333
## 12 2023.917 260 246.667
## 13 2024.000 255 253.333
## 14 2024.083 265 260.000
## 15 2024.167 270 263.333
## 16 2024.250 280 271.667
## 17 2024.333 275 275.000
## 18 2024.417 290 281.667
# Plotnya
ts.plot(pengunjung_ts, sma3, col = c("black","purple"), lwd = 2,
main = "Data Asli vs SMA(3)", ylab = "Jumlah pengunjung")
legend("topleft", legend = c("Data asli","SMA(3)"),
col = c("black","purple"), lwd = 2)Interpretasi:
Berdasarkan tabel hasil_sma, garis SMA(3) selalu berada di bawah data aktual dalam beberapa bulan terakhir (misalnya Juni 2024: aktual 290 vs SMA3 281,667). Ini terjadi karena SMA hanya menghitung rata-rata dari nilai-nilai sebelumnya, jadi kalau datanya punya tren yang cukup kuat, hasil SMA biasanya cenderung tertinggal (lagging) dan tidak bisa langsung mengikuti kenaikan data aktual.
Berdasarkan grafik ts.plot, garis SMA(3) (ungu) terlihat lebih halus dari pada data asli (hitam) karena SMA mengurangi variasi setiap bulan. Namun, garis ungu ini biasanya berada di bawah garis hitam, terutama di bulan-bulan terakhir, sesuai dengan yang sudah terlihat di tabel hasil_sma sebelumnya, yang nunjukkin bahwa SMA(3) memang lambat (lagging) dalam mengikuti kenaikan data aktual.
Selanjutnya dihitung Double Moving Average untuk memperbaiki kekurangan dari Simple Moving Average sebelumnya, dengan menghitung dua kali rata-rata bergerak (M’t dan M’’t) lalu menurunkan komponen level (at) serta komponen tren (bt).
# 3. Double moving average (DMA) m = 3
m <- 3
# Moving average pertama
Mp <- rollmean(pengunjung_ts, k = m, align = "right", fill = NA)
# Moving average kedua
Mpp <- rollmean(Mp, k = m, align = "right", fill = NA)
# Menghitung komponen level
a_t <- 2*Mp - Mpp
# Menghitung komponen tren
b_t <- (2/(m-1)) * (Mp - Mpp)
# Membuat tabel hasil DMA
tabel_dma <- data.frame(
Bulan = time(pengunjung_ts),
Aktual = as.numeric(pengunjung_ts),
Mp = round(as.numeric(Mp), 2),
Mpp = round(as.numeric(Mpp), 2),
at = round(as.numeric(a_t), 2),
bt = round(as.numeric(b_t), 2)
)
tabel_dma## Bulan Aktual Mp Mpp at bt
## 1 2023.000 210 NA NA NA NA
## 2 2023.083 195 NA NA NA NA
## 3 2023.167 220 208.33 NA NA NA
## 4 2023.250 205 206.67 NA NA NA
## 5 2023.333 230 218.33 211.11 225.56 7.22
## 6 2023.417 215 216.67 213.89 219.44 2.78
## 7 2023.500 240 228.33 221.11 235.56 7.22
## 8 2023.583 225 226.67 223.89 229.44 2.78
## 9 2023.667 250 238.33 231.11 245.56 7.22
## 10 2023.750 235 236.67 233.89 239.44 2.78
## 11 2023.833 245 243.33 239.44 247.22 3.89
## 12 2023.917 260 246.67 242.22 251.11 4.44
## 13 2024.000 255 253.33 247.78 258.89 5.56
## 14 2024.083 265 260.00 253.33 266.67 6.67
## 15 2024.167 270 263.33 258.89 267.78 4.44
## 16 2024.250 280 271.67 265.00 278.33 6.67
## 17 2024.333 275 275.00 270.00 280.00 5.00
## 18 2024.417 290 281.67 276.11 287.22 5.56
Interpretasi: Dari tabel tabel_dma, keliatan kalau
M’t (rata-rata bergerak pertama) dan M’‘t (rata-rata bergerak kedua)
sama-sama tertinggal dari data aktual, tetapi M’’t tertinggal lebih jauh
karena dihaluskan dua kali. Komponenn a_t berfungsi
memperbaiki selisih yang ada agar nilainya makin mirip dengan data
aktual, sementara komponen b_t mencatat seberapa banyak
kenaikan (tren) setiap bulannya. Nilai b_t berada di antara
2,78 hingga 7,22, yang artinya rata-rata kenaikan jumlah pengunjung
setiap bulan sekitar 5 orang.
# 4. Peramalan dengan DMA vs SMA biasa
a_last <- tail(na.omit(a_t), 1) # Mengambil nilai a dan b terakhir
b_last <- tail(na.omit(b_t), 1)
forecast_1 <- a_last + b_last * 1 # ramalan 1 bulan ke depan (Jul 2024)
forecast_2 <- a_last + b_last * 2 # ramalan 2 bulan ke depan (Agu 2024)
sma3_last <- tail(na.omit(sma3), 1)
c(a_last = a_last, b_last = b_last)## a_last b_last
## 287.222222 5.555556
## Forecast_DMA_Jul24 Forecast_DMA_Agu24
## 292.7778 298.3333
## Forecast_SMA_Jul24 Forecast_SMA_Agu24
## 281.6667 281.6667
Interpretasi: a_last= 287,22 dan
b_last = 5,56, ramalan DMA untuk bulan Juli 2024 sekitar
292,78 orang, dan untuk bulan Agustus 2024 adalah sekitar 298,33 orang,
jadi ramalannya terus naik mengikuti tren yang ada. Sedangkan ramalan
SMA biasa hanya menggunakan nilai SMA(3) terakhir (281,67) dan dianggap
tetap sama (konstan) untuk kedua bulan itu, tanpa memperhatikan arah
pergerakan data. Selisih ramalan juga semakin jauh, dari sekitar 11
orang di bulan Juli menjadi hampir 17 orang di bulan Agustus. Ini
menunjukkan bahwa DMA lebih cocok dipakai ketika datanya punya tren
yang jelas, karena dapat menangkap arah kenaikan melalui komponen
b_t, sedangkan SMA biasa akan terus meleset (salah) karena
tidak ikut berubah sesuai tren tersebut.
KESIMPULAN AKHIR
Berdasarkan analisis jumlah pengunjung Perpustakaan Daerah Kabupaten Serang periode Januari 2023???Juni 2024, dapat disimpulkan bahwa jumlah pengunjung itu kebanyakan mengalami tren kenaikan seiring berjalannya waktu, meskipun ada beberapa bulan di mana pengunjungnya sedikit berkurang.
Kalau pakai cara penghalusan dengan Single Moving Average dengan orde 3, hasilnya itu selalu ketinggalan dari data aktual karena adanya tren naik. Tapi, kalau pakai Double Moving Average dengan orde m = 3, ini bisa memperbaiki masalah ketinggalan tadi. Caranya dengan melihat bagian data pokoknya (komponen level \(a_t\)) dan bagian kenaikan atau penurunannya (komponen tren \(b_t\)). Hasil ramalannya jadi lebih masuk akal. Ramalan DMA untuk bulan Juli dan Agustus 2024 itu masing-masing sekitar 292,78 dan 298,33 orang. Angka ini terus naik, mengikuti arah data aslinya, sedangkan ramalan SMA biasa malah tetap sama di angka 281,67 orang untuk kedua bulan itu.
Jadi, metode Double Moving Average (DMA) itu lebih cocok dipakai untuk meramalkan data yang memiliki tren yang jelas, seperti jumlah pengunjung perpustakaan ini. Dibandingkan dengan metode Single Moving Average (SMA) biasa, yang cenderung meleset karena tidak memperhatikan arah pergerakan data.