# Data volume produksi air minum PDAM Kabupaten Serang (ribu m3/bulan)
air <- c(410,415,405,420,430,445,455,440,425,420,418,435,
440,445,438,452,462,478,488,472,458,452,450,468,
470,476,468,483,494,510,521,504,489,483,480,499)
air_ts <- ts(air, start = c(2022,1), frequency = 12)
# Dekomposisi additive
dekomp_add <- decompose(air_ts, type = "additive")
plot(dekomp_add)
# Melihat masing-masing komponen secara terpisah
dekomp_add$trend # komponen tren (CMA 2x12)
## Jan Feb Mar Apr May Jun Jul Aug
## 2022 NA NA NA NA NA NA 427.7500 430.2500
## 2023 443.7083 446.4167 449.1250 451.8333 454.5000 457.2083 459.8333 462.3750
## 2024 475.4583 478.1667 480.7917 483.3750 485.9167 488.4583 NA NA
## Sep Oct Nov Dec
## 2022 432.8750 435.5833 438.2500 440.9583
## 2023 464.9167 467.4583 470.0833 472.7500
## 2024 NA NA NA NA
dekomp_add$seasonal # 12 indeks musiman (berulang tiap tahun)
## Jan Feb Mar Apr May
## 2022 -4.53993056 -1.74826389 -11.91493056 -0.06076389 7.83506944
## 2023 -4.53993056 -1.74826389 -11.91493056 -0.06076389 7.83506944
## 2024 -4.53993056 -1.74826389 -11.91493056 -0.06076389 7.83506944
## Jun Jul Aug Sep Oct
## 2022 21.21006944 27.75173611 9.73090278 -7.35243056 -15.47743056
## 2023 21.21006944 27.75173611 9.73090278 -7.35243056 -15.47743056
## 2024 21.21006944 27.75173611 9.73090278 -7.35243056 -15.47743056
## Nov Dec
## 2022 -20.12326389 -5.31076389
## 2023 -20.12326389 -5.31076389
## 2024 -20.12326389 -5.31076389
dekomp_add$random # komponen residu
## Jan Feb Mar Apr May Jun
## 2022 NA NA NA NA NA NA
## 2023 0.83159722 0.33159722 0.78993056 0.22743056 -0.33506944 -0.41840278
## 2024 -0.91840278 -0.41840278 -0.87673611 -0.31423611 0.24826389 0.33159722
## Jul Aug Sep Oct Nov Dec
## 2022 -0.50173611 0.01909722 -0.52256944 -0.10590278 -0.12673611 -0.64756944
## 2023 0.41493056 -0.10590278 0.43576389 0.01909722 0.03993056 0.56076389
## 2024 NA NA NA NA NA NA
round(dekomp_add$seasonal[1:12], 2)
## [1] -4.54 -1.75 -11.91 -0.06 7.84 21.21 27.75 9.73 -7.35 -15.48
## [11] -20.12 -5.31
summary(dekomp_add$random); sd(dekomp_add$random, na.rm = TRUE)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -0.9184 -0.4184 -0.0434 -0.0434 0.3316 0.8316 12
## [1] 0.4862621
Pada model additive, nilai produksi diuraikan sebagai jumlah tren, musiman, dan residu. Tren (CMA 2×12) naik mulus dari sekitar 427,75 ribu m^3 pada Juli 2022 menjadi sekitar 488,46 ribu m^3 pada Juni 2024, atau sekitar 2,6 ribu m^3 per bulan, sehingga produksi air minum menunjukkan tren naik. Tren bernilai NA pada enam bulan pertama dan terakhir karena CMA membutuhkan data di kedua sisi. Indeks musiman dinyatakan sebagai selisih tetap terhadap tren dan berjumlah nol. Juli adalah bulan tertinggi dengan indeks +27,75 ribu m^3, diikuti Juni (+21,21) dan Agustus (+9,73). November adalah bulan terendah dengan indeks −20,12, diikuti Oktober (−15,48) dan Maret (−11,92). Pola ini diduga terkait cuaca, kebutuhan air meningkat pada musim kemarau (Juni–Agustus) dan menurun pada musim hujan (Oktober–November dan Maret). Residu berfluktuasi acak di sekitar nol. Tandanya berganti tanpa pola sistematis, sehingga tidak ada tren atau musiman yang tertinggal.
# Dekomposisi multiplicative
dekomp_mul <- decompose(air_ts, type = "multiplicative")
plot(dekomp_mul)
round(dekomp_mul$seasonal[1:12], 3) # 12 faktor musiman
## [1] 0.990 0.996 0.974 1.000 1.017 1.045 1.063 1.022 0.984 0.966 0.956 0.988
summary(dekomp_mul$random); sd(dekomp_mul$random, na.rm = TRUE)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.9981 0.9989 0.9999 0.9999 1.0009 1.0017 12
## [1] 0.001249183
Pada model multiplicative, tren yang diperoleh sama dengan model additive. Faktor musiman dibaca sebagai proporsi terhadap tren, nilai 1 berarti tepat di tren, lebih dari 1 berarti di atas tren, dan kurang dari 1 berarti di bawahnya. Juli adalah bulan tertinggi dengan faktor 1,063, diikuti Juni dan Agustus. November adalah bulan terendah dengan faktor 0,956, diikuti Oktober (0,966) dan Maret (0,974). April (1,000) tepat di tren. Residu berfluktuasi acak di sekitar satu (rata-rata 0,9999), bukan di sekitar nol, dengan simpangan baku 0,00125 dan rentang 0,998–1,002. Ini berarti residu tidak menunjukkan pola sistematis.
# Perbandingan additive vs multiplicative
sd(dekomp_add$random, na.rm = TRUE) # residu skala ribu m3
## [1] 0.4862621
sd(dekomp_mul$random, na.rm = TRUE) # residu skala rasio
## [1] 0.001249183
# Menelusuri residu additive bulan Juli tiap tahun
window(dekomp_add$random, start = c(2022,7), end = c(2022,7))
## Jul
## 2022 -0.5017361
window(dekomp_add$random, start = c(2023,7), end = c(2023,7))
## Jul
## 2023 0.4149306
Kedua model memberikan gambaran yang konsisten. Tren sama persis, dan bulan tertinggi (Juli) serta terendah (November) juga sama. Perbedaannya ada pada skala. Model additive menyatakan musiman sebagai selisih dalam ribu m³ dengan residu di sekitar 0 (SD 0,486), sedangkan model multiplicative menyatakannya sebagai faktor dengan residu di sekitar 1 (SD 0,00125). Kedua residu sama-sama kecil dan acak, sehingga keduanya menangkap pola data dengan baik. Residu additive bulan Juli adalah −0,502 pada 2022 dan +0,415 pada 2023. Tandanya memang berbeda, tetapi nilainya sangat kecil (kurang dari 1 ribu m^3) dan sejalan dengan rentang residu pada summary, sehingga tidak menunjukkan pola berbalik tanda yang sistematis seperti pada kasus yang memang multiplicative. Pada hasil plot, komponen musiman juga tampak memiliki rentang dengan besar yang sama dari tahun ke tahun, sesuai kriteria model additive. Karena itu model additive dipilih sebagai model yang lebih sesuai dan lebih sederhana diinterpretasikan, meskipun model multiplicative juga memberikan hasil yang cukup baik.