# 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.