PPT Pertemuan 6

1. Buat objek ts dari data di atas, lalu lakukan dekomposisi additive menggunakan decompose().

# Data volume produksi air minum PDAM Kab. Serang (ribu m3/bulan)
air <- c(410,415,405,420,430,445,455,440,425,420,418,435,   # 2022
         440,445,438,452,462,478,488,472,458,452,450,468,   # 2023
         470,476,468,483,494,510,521,504,489,483,480,499)   # 2024

# Objek time series bulanan, mulai Januari 2022
air_ts <- ts(air, start = c(2022, 1), frequency = 12)
air_ts
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2022 410 415 405 420 430 445 455 440 425 420 418 435
## 2023 440 445 438 452 462 478 488 472 458 452 450 468
## 2024 470 476 468 483 494 510 521 504 489 483 480 499
plot(air_ts, main = "Volume Produksi Air Minum PDAM Kab. Serang (2022-2024)",
     ylab = "ribu m3/bulan", xlab = "Waktu", lwd = 1.5)

Plot data menunjukkan produksi air minum PDAM Kabupaten Serang memiliki tren naik dan pola musiman yang berulang tiap tahun (puncak sekitar Juli, lembah sekitar Oktober–November dan Maret). Ayunan musimannya relatif konstan, sehingga dekomposisi additive tepat digunakan.

dekomp_add <- decompose(air_ts, type = "additive")
plot(dekomp_add)

Plot menunjukkan produksi air minum PDAM Kabupaten Serang memiliki tren naik yang stabil dan pola musiman yang jelas dan berulang setiap tahun, dengan puncak sekitar Juli dan lembah sekitar November. Komponen residu berfluktuasi acak di sekitar nol dengan nilai sangat kecil dan tanpa pola sistematis. Model additive sesuai untuk data ini.

2. Tampilkan dan gambarkan komponen tren. Apakah produksi air minum menunjukkan tren naik?

dekomp_add$trend
##           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

Tren dihitung dengan CMA 2×12, sehingga 6 bulan pertama (Jan–Jun 2022) dan 6 bulan terakhir (Jul–Des 2024) bernilai NA.

plot(air_ts, main = "Data Asli dan Komponen Tren (CMA 2x12)",
     ylab = "ribu m3/bulan", col = "grey50", lwd = 1.5)
lines(dekomp_add$trend, col = "red", lwd = 2.5)
legend("topleft", legend = c("Data asli", "Tren (CMA 2x12)"),
       col = c("grey50", "red"), lty = 1, lwd = c(1.5, 2.5), bty = "n")

tren <- na.omit(dekomp_add$trend)
awal <- as.numeric(tren[1])
akhir <- as.numeric(tren[length(tren)])
n_bulan <- length(tren) - 1

cat("Tren awal  (Jul 2022):", round(awal, 2), "\n")
## Tren awal  (Jul 2022): 427.75
cat("Tren akhir (Jun 2024):", round(akhir, 2), "\n")
## Tren akhir (Jun 2024): 488.46
cat("Kenaikan rata-rata per bulan:", round((akhir - awal) / n_bulan, 2), "ribu m3\n")
## Kenaikan rata-rata per bulan: 2.64 ribu m3
cat("Kenaikan rata-rata per tahun:", round(12 * (akhir - awal) / n_bulan, 1), "ribu m3\n")
## Kenaikan rata-rata per tahun: 31.7 ribu m3
cat("Apakah tren selalu naik? ", all(diff(tren) > 0), "\n")
## Apakah tren selalu naik?  TRUE

Interpretasi: Ya, produksi air minum menunjukkan tren naik yang mulus dan konsisten, dari sekitar 427,75 (Jul 2022) menjadi sekitar 488,46 (Jun 2024), atau kira-kira +2,64 ribu m³ per bulan (±31,7 ribu m³ per tahun). Garis tren tidak pernah turun.

3. Tampilkan 12 indeks musiman. Bulan apa yang cenderung tertinggi dan terendah? Berikan dugaan penjelasannya.

indeks_musiman <- round(dekomp_add$seasonal[1:12], 2)
names(indeks_musiman) <- month.abb
indeks_musiman
##    Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep    Oct    Nov 
##  -4.54  -1.75 -11.91  -0.06   7.84  21.21  27.75   9.73  -7.35 -15.48 -20.12 
##    Dec 
##  -5.31
cat("\nJumlah 12 indeks musiman:", round(sum(dekomp_add$seasonal[1:12]), 6), "\n")
## 
## Jumlah 12 indeks musiman: 0
cat("Bulan tertinggi:", month.abb[which.max(indeks_musiman)],
    "(", max(indeks_musiman), ")\n")
## Bulan tertinggi: Jul ( 27.75 )
cat("Bulan terendah :", month.abb[which.min(indeks_musiman)],
    "(", min(indeks_musiman), ")\n")
## Bulan terendah : Nov ( -20.12 )
warna <- ifelse(indeks_musiman >= 0, "#0B2A5B", "#6B2A2F")
barplot(indeks_musiman, names.arg = month.abb, col = warna,
        main = "Indeks Musiman (Additive)",
        ylab = "Indeks musiman (ribu m3)", ylim = c(-25, 32))
abline(h = 0)

Plot indeks musiman menunjukkan produksi air minum tertinggi pada bulan Juli (+27,75 ribu m³) dan terendah pada bulan November (−20,12 ribu m³). Pola ini diduga terkait musim kemarau (kebutuhan air meningkat) dan musim hujan (kebutuhan air PDAM menurun).

knitr::kable(
  data.frame(Bulan = month.abb, Indeks = as.numeric(indeks_musiman)),
  caption = "Dua belas indeks musiman"
)
Dua belas indeks musiman
Bulan Indeks
Jan -4.54
Feb -1.75
Mar -11.91
Apr -0.06
May 7.84
Jun 21.21
Jul 27.75
Aug 9.73
Sep -7.35
Oct -15.48
Nov -20.12
Dec -5.31

Interpretasi:

  • Tertinggi: Juli (+27,75), diikuti Juni (+21,21) dan Agustus (+9,73).

  • Terendah: November (−20,12), diikuti Oktober (−15,48) dan Maret (−11,91).

  • Dugaan penjelasan: produksi tinggi pada Mei–Agustus diduga terkait musim kemarau, ketika kebutuhan air bersih meningkat (mandi, mencuci, menyiram) dan sumber air tanah/sumur warga menyusut sehingga pelanggan lebih bergantung pada PDAM. Produksi rendah pada Oktober–November dan Maret diduga terkait musim hujan, ketika warga memanfaatkan air hujan dan sumur kembali terisi. Ini hanya dugaan karena data tidak memuat variabel curah hujan.

4. Periksa komponen residu (ringkasan statistik dan simpangan bakunya). Apakah residu tampak berfluktuasi acak di sekitar nol?

dekomp_add$random
##              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
summary(dekomp_add$random)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
## -0.9184 -0.4184 -0.0434 -0.0434  0.3316  0.8316      12
cat("\nSimpangan baku residu:", round(sd(dekomp_add$random, na.rm = TRUE), 4), "\n")
## 
## Simpangan baku residu: 0.4863
cat("Rata-rata residu     :", round(mean(dekomp_add$random, na.rm = TRUE), 4), "\n")
## Rata-rata residu     : -0.0434
plot(dekomp_add$random, type = "p", pch = 19, col = "#0B2A5B",
     main = "Komponen Residu", ylab = "Residu", xlab = "Waktu")
abline(h = 0, col = "red", lwd = 2)

Plot menunjukkan komponen residu berfluktuasi acak di sekitar nol (rata-rata −0,0434; simpangan baku 0,4863 ribu m³) tanpa pola sistematis yang tersisa. Artinya tren dan musiman sudah menangkap hampir seluruh pola pada data, sehingga model additive sesuai untuk data produksi air minum PDAM Kabupaten Serang.

res <- na.omit(dekomp_add$random)
par(mfrow = c(1, 2))
hist(res, main = "Histogram Residu", xlab = "Residu", col = "grey80", border = "white")
acf(res, main = "ACF Residu")

par(mfrow = c(1, 1))

Interpretasi: Ya, residu tampak berfluktuasi acak di sekitar nol.

  • Rata-rata (≈ −0,04) dan median hampir tepat nol, dengan sebaran di kedua sisi nol (sekitar −0,92 sampai +0,83) tanpa kemencengan yang ekstrem.

  • Simpangan baku hanya ≈ 0,49 ribu m³, sangat kecil dibandingkan amplitudo musiman (±20–28) dan level data (±400–500), sehingga hampir seluruh variasi sudah tertangkap oleh tren dan musiman.

  • Tanda residu bolak-balik tanpa pola sistematis. Pada ACF, hampir seluruh lag berada di dalam batas signifikansi; hanya lag 12 (1 tahun) yang sedikit melewati batas. Dengan hanya 24 residu, hal ini masih dapat dianggap wajar dan tidak menunjukkan pola sistematis yang berarti.

Kesimpulan

Hasil dekomposisi additive pada data volume produksi air minum PDAM Kabupaten Serang periode Januari 2022–Desember 2024 menunjukkan bahwa:

  • Tren: naik stabil dari ≈ 427,75 (Jul 2022) menjadi ≈ 488,46 (Jun 2024), ≈ +2,64 ribu m³ per bulan.

  • Musiman: berulang tiap tahun, tertinggi Juli (+27,75) dan terendah November (−20,12), diduga terkait musim kemarau dan hujan.

  • Residu: acak di sekitar nol (rata-rata −0,0434; SD ≈ 0,49 ribu m³) tanpa pola sistematis.

Model dekomposisi additive sesuai untuk data produksi air minum PDAM Kabupaten Serang ini.

PPT Pertemuan 7

1. Buat plot data di atas. Apakah lonjakan April dan Desember membesar dari 2023 ke 2024?

plot(air_ts, main = "Volume Produksi Air Minum PDAM Kab. Serang (2022-2024)",
     ylab = "ribu m3/bulan", xlab = "Waktu", lwd = 1.5)

Plot data menunjukkan produksi air minum PDAM Kabupaten Serang memiliki tren naik dan pola musiman yang berulang tiap tahun, dengan ayunan musiman yang tampak relatif konstan meskipun level data terus naik.

# Lonjakan April (Apr - Mar) dan Desember (Des - Nov) tiap tahun
tabel <- matrix(air, nrow = 3, byrow = TRUE,
                dimnames = list(2022:2024, month.abb))
lonjakan_apr <- tabel[, "Apr"] - tabel[, "Mar"]
lonjakan_des <- tabel[, "Dec"] - tabel[, "Nov"]
lonjakan_apr; lonjakan_des
## 2022 2023 2024 
##   15   14   15
## 2022 2023 2024 
##   17   18   19

Interpretasi: Lonjakan April dan Desember tidak membesar secara berarti dari 2023 ke 2024.

  • Lonjakan April: +15 (2022), +14 (2023), +15 (2024). Dari 2023 ke 2024 hanya berubah +14 menjadi +15.

  • Lonjakan Desember: +17 (2022), +18 (2023), +19 (2024). Dari 2023 ke 2024 hanya berubah +18 menjadi +19.

  • Level data naik sekitar 6–7% (±450 menjadi ±480), tetapi lonjakannya hampir tetap. Dalam persen, lonjakan April (3,20% menjadi 3,21%) dan Desember (4,00% menjadi 3,96%) tidak membesar. Artinya ayunan musiman tidak ikut membesar mengikuti level data.

2. Lakukan dekomposisi multiplicative. Tampilkan 12 faktor musiman dan identifikasi bulan tertinggi/terendah.

dekomp_mul <- decompose(air_ts, type = "multiplicative")
plot(dekomp_mul)

Plot menunjukkan produksi air minum PDAM Kabupaten Serang memiliki tren naik yang stabil dan pola musiman yang berulang setiap tahun, dengan puncak sekitar Juli dan lembah sekitar November. Komponen residu berfluktuasi di sekitar 1 dengan nilai sangat kecil.

faktor_musim <- round(dekomp_mul$seasonal[1:12], 4)
names(faktor_musim) <- month.abb
faktor_musim
##    Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep    Oct    Nov 
## 0.9902 0.9963 0.9744 0.9999 1.0167 1.0449 1.0626 1.0218 0.9836 0.9657 0.9556 
##    Dec 
## 0.9883
cat("Rata-rata 12 faktor:", mean(dekomp_mul$seasonal[1:12]), "\n")
## Rata-rata 12 faktor: 1

Interpretasi: Pada model multiplicative, faktor musiman berupa rasio terhadap tren (rata-rata 12 faktor = 1).

  • Tertinggi: Juli (1,0626), artinya produksi sekitar 6,26% di atas tren. Diikuti Juni (1,0449) dan Agustus (1,0218).

  • Terendah: November (0,9556), artinya produksi sekitar 4,44% di bawah tren. Diikuti Oktober (0,9657) dan Maret (0,9744).

  • Pola ini sama dengan hasil model additive (puncak Juli, lembah November), sehingga diduga tetap terkait musim kemarau (kebutuhan air meningkat) dan musim hujan (kebutuhan air PDAM menurun).

3. Bandingkan sd residu multiplicative dengan sd residu bila model additive dipaksakan.

sd_mul <- sd(dekomp_mul$random, na.rm = TRUE)
sd_add <- sd(dekomp_add$random, na.rm = TRUE)
sd_mul; sd_add
## [1] 0.001249183
## [1] 0.4862621

Interpretasi: Nilai sd mentah tidak dapat dibandingkan langsung karena skalanya berbeda. Residu multiplicative berupa rasio di sekitar 1 (sd = 0,0012), sedangkan residu additive berupa selisih di sekitar 0 (sd = 0,4863 ribu m³).

# Samakan skala agar adil dibandingkan
# (a) dalam satuan asli (ribu m3)
res_mul_unit <- air_ts - dekomp_mul$trend * dekomp_mul$seasonal
sd(res_mul_unit, na.rm = TRUE)
## [1] 0.5613295
# (b) dalam skala relatif terhadap tren
sd(dekomp_add$random / dekomp_add$trend, na.rm = TRUE)
## [1] 0.001059905

Interpretasi: Setelah skalanya disamakan:

  • Dalam satuan asli (ribu m³): sd residu additive 0,4863 lebih kecil dibandingkan multiplicative 0,5613.

  • Dalam skala relatif terhadap tren: sd residu additive 0,00106 lebih kecil dibandingkan multiplicative 0,00125.

  • Pada kedua skala, residu additive sedikit lebih kecil, artinya model additive menjelaskan data sedikit lebih baik.

4. Simpulkan model mana yang lebih sesuai, disertai alasan berbasis hasil poin 1–3.

Model additive lebih sesuai untuk data produksi air minum PDAM Kabupaten Serang, dengan alasan:

  • Poin 1: Lonjakan April (+14 menjadi +15) dan Desember (+18 menjadi +19) hampir tetap dari 2023 ke 2024 walaupun level data naik, sehingga amplitudo musiman konstan dan tidak membesar mengikuti level.

  • Poin 2: Faktor multiplicative (Juli +6,26%, November −4,44%) mengasumsikan persentase tetap, sedangkan data menunjukkan selisih yang hampir tetap tiap tahun.

  • Poin 3: Sd residu additive lebih kecil pada skala yang sama (0,4863 vs 0,5613 ribu m³; 0,00106 vs 0,00125 secara relatif).

Perbedaan kedua model memang kecil karena tren hanya naik sekitar 7% per tahun, sehingga keduanya sama-sama cocok. Namun seluruh bukti mengarah ke additive, sejalan dengan materi bahwa model additive tepat digunakan ketika ayunan musiman relatif konstan.