Buat objek ts dan plot data di atas. Apakah data
menunjukkan tren yang cukup jelas?
Data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang dari
Januari 2023 sampai Juni 2024 dibuat menjadi objek ts
dengan frekuensi 12 karena data merupakan data bulanan.
# Data jumlah pengunjung Perpustakaan Daerah Kabupaten Serang
pengunjung <- c(
210, 195, 220, 205, 230, 215, 240, 225, 250, 235, 245, 260,
255, 265, 270, 280, 275, 290
)
pengunjung_ts <- ts(pengunjung,
start = c(2023, 1),
frequency = 12)
plot(pengunjung_ts,
main = "Jumlah Pengunjung Perpustakaan Daerah Kabupaten Serang",
xlab = "Tahun",
ylab = "Jumlah Pengunjung (orang)")
Interpretasi:
Berdasarkan plot, jumlah pengunjung perpustakaan secara umum menunjukkan tren yang meningkat dari Januari 2023 hingga Juni 2024. Walaupun terdapat beberapa penurunan pada bulan tertentu, jumlah pengunjung pada periode 2024 cenderung lebih tinggi dibandingkan periode 2023. Jadi, data menunjukkan tren naik yang cukup jelas.
Hitung dan plot SMA(3). Bandingkan dengan data asli pada 5 bulan terakhir, apakah SMA terlihat tertinggal?
library(zoo)
## Warning: package 'zoo' was built under R version 4.4.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
# Single Moving Average, orde 3
sma3 <- rollmean(pengunjung_ts,
k = 3,
align = "right",
fill = NA)
ts.plot(pengunjung_ts, sma3,
col = c("black", "purple"),
main = "SMA(3) Jumlah Pengunjung Perpustakaan",
xlab = "Tahun",
ylab = "Jumlah Pengunjung (orang)")
legend("topleft",
legend = c("Data Aktual", "SMA(3)"),
col = c("black", "purple"),
lty = 1)
Untuk melihat perbandingan pada 5 bulan terakhir:
tail(data.frame(
Aktual = as.numeric(pengunjung_ts),
SMA3 = as.numeric(sma3)
), 5)
## Aktual SMA3
## 14 265 260.0000
## 15 270 263.3333
## 16 280 271.6667
## 17 275 275.0000
## 18 290 281.6667
Interpretasi:
Pada lima bulan terakhir, nilai SMA(3) cenderung berada di bawah data aktual ketika jumlah pengunjung mengalami kenaikan. Misalnya pada Juni 2024, jumlah pengunjung aktual mencapai 290 orang, sedangkan SMA(3) hanya sebesar 281,67 orang.
Hal tersebut menunjukkan bahwa SMA(3) terlihat sedikit tertinggal terhadap data aktual, terutama ketika terjadi kenaikan jumlah pengunjung. Hal ini terjadi karena SMA menggunakan beberapa data sebelumnya sehingga perubahan terbaru tidak langsung sepenuhnya tercermin pada nilai rata-rata.
Hitung Double Moving Average dengan \(m = 3\) (hitung \(M'_t\), \(M''_t\), \(a_t\), dan \(b_t\)).
# Double Moving Average, orde m = 3
m <- 3
Mp <- rollmean(pengunjung_ts,
k = m,
align = "right",
fill = NA)
Mpp <- rollmean(Mp,
k = m,
align = "right",
fill = NA)
a_t <- 2*Mp - Mpp
b_t <- (2/(m-1)) * (Mp - Mpp)
a_last <- tail(na.omit(a_t), 1)
b_last <- tail(na.omit(b_t), 1)
a_last
## [1] 287.2222
b_last
## [1] 5.555556
Untuk melihat hasil perhitungannya:
hasil_dma <- data.frame(
Data = as.numeric(pengunjung_ts),
Mp = as.numeric(Mp),
Mpp = as.numeric(Mpp),
a_t = as.numeric(a_t),
b_t = as.numeric(b_t)
)
hasil_dma
## Data Mp Mpp a_t b_t
## 1 210 NA NA NA NA
## 2 195 NA NA NA NA
## 3 220 208.3333 NA NA NA
## 4 205 206.6667 NA NA NA
## 5 230 218.3333 211.1111 225.5556 7.222222
## 6 215 216.6667 213.8889 219.4444 2.777778
## 7 240 228.3333 221.1111 235.5556 7.222222
## 8 225 226.6667 223.8889 229.4444 2.777778
## 9 250 238.3333 231.1111 245.5556 7.222222
## 10 235 236.6667 233.8889 239.4444 2.777778
## 11 245 243.3333 239.4444 247.2222 3.888889
## 12 260 246.6667 242.2222 251.1111 4.444444
## 13 255 253.3333 247.7778 258.8889 5.555556
## 14 265 260.0000 253.3333 266.6667 6.666667
## 15 270 263.3333 258.8889 267.7778 4.444444
## 16 280 271.6667 265.0000 278.3333 6.666667
## 17 275 275.0000 270.0000 280.0000 5.000000
## 18 290 281.6667 276.1111 287.2222 5.555556
Pada periode terakhir diperoleh:
Interpretasi:
Pada data terakhir, nilai \(a_t\) sebesar 287,22 menunjukkan nilai level data yang telah disesuaikan oleh metode Double Moving Average. Sementara itu, nilai \(b_t\) sebesar 5,56 menunjukkan adanya kecenderungan peningkatan jumlah pengunjung.
Karena nilai \(b_t\) bernilai positif, maka jumlah pengunjung diperkirakan masih mengalami peningkatan pada periode berikutnya.
Gunakan hasil DMA untuk meramalkan jumlah pengunjung 1 dan 2 bulan setelah data terakhir. Bandingkan dengan ramalan SMA biasa, lalu jelaskan mengapa hasilnya berbeda.
# Ramalan DMA untuk 1 dan 2 bulan ke depan
forecast_1 <- a_last + b_last * 1
forecast_2 <- a_last + b_last * 2
forecast_1
## [1] 292.7778
forecast_2
## [1] 298.3333
Hasil ramalan DMA:
Selanjutnya, ramalan menggunakan SMA(3):
# Ramalan SMA(3)
sma_forecast <- tail(na.omit(sma3), 1)
sma_forecast_1 <- sma_forecast
sma_forecast_2 <- sma_forecast
sma_forecast_1
## [1] 281.6667
sma_forecast_2
## [1] 281.6667
Hasil ramalan SMA(3):
Perbandingan:
perbandingan <- data.frame(
Periode = c("1 bulan ke depan", "2 bulan ke depan"),
SMA_3 = c(sma_forecast_1, sma_forecast_2),
DMA = c(forecast_1, forecast_2)
)
perbandingan
## Periode SMA_3 DMA
## 1 1 bulan ke depan 281.6667 292.7778
## 2 2 bulan ke depan 281.6667 298.3333
Interpretasi:
Hasil ramalan SMA(3) untuk 1 dan 2 bulan ke depan tetap sebesar 281,67 orang karena SMA biasa menggunakan nilai rata-rata terakhir sebagai ramalan.
Sementara itu, hasil DMA meningkat dari 292,78 orang pada 1 bulan ke depan menjadi 298,33 orang pada 2 bulan ke depan. Perbedaan ini terjadi karena DMA mempertimbangkan kecenderungan atau tren data melalui nilai \(b_t\), sedangkan SMA biasa tidak secara langsung memasukkan tren ke dalam ramalannya.
Pada data jumlah pengunjung ini terdapat kecenderungan meningkat pada periode terakhir, sehingga DMA menghasilkan ramalan yang ikut meningkat, sedangkan SMA(3) menghasilkan ramalan yang lebih tetap.