Data

Data yang digunakan adalah volume produksi air minum PDAM Kabupaten Serang dari Januari 2022 sampai Desember 2024 dalam satuan ribu m³ per bulan.

volume <- 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
)

volume_ts <- ts(
  volume,
  start = c(2022, 1),
  frequency = 12
)

volume_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

Dekomposisi Additive


Soal 1

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

Jawaban

Dekomposisi additive digunakan untuk memisahkan data menjadi komponen tren, musiman, dan residu.

Model additive:

\[ Z_t = T_t + S_t + e_t \]

R-code

dekomp_add <- decompose(
  volume_ts,
  type = "additive"
)

plot(dekomp_add)

Untuk melihat masing-masing komponen:

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

Hasil

Hasil dekomposisi menghasilkan empat bagian, yaitu observed, trend, seasonal, dan random. Pada komponen trend terdapat beberapa nilai NA pada awal dan akhir periode karena perhitungan menggunakan moving average terpusat.

Interpretasi

Dari hasil dekomposisi terlihat bahwa data memiliki pola tren yang meningkat, pola musiman yang berulang setiap tahun, serta komponen residu yang relatif kecil.


Soal 2

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

Jawaban

Komponen tren dapat dilihat dari hasil dekomposisi additive.

R-code

trend_add <- data.frame(
  tanggal = seq(
    from = as.Date("2022-01-01"),
    by = "month",
    length.out = length(volume_ts)
  ),
  trend = as.numeric(dekomp_add$trend)
)

ggplot(trend_add, aes(x = tanggal, y = trend)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(
    title = "Komponen Tren Produksi Air Minum PDAM",
    x = "Waktu",
    y = "Tren (ribu m³)"
  ) +
  scale_x_date(
    date_breaks = "3 months",
    date_labels = "%b\n%Y"
  ) +
  theme_minimal()

Hasil

Nilai tren pada awal periode yang dapat dihitung sekitar 427,75 ribu m³, sedangkan pada akhir periode sekitar 488,46 ribu m³.

Interpretasi

Dari grafik terlihat komponen tren cenderung meningkat dari waktu ke waktu. Jadi, produksi air minum PDAM Kabupaten Serang menunjukkan tren naik selama periode Januari 2022–Desember 2024.


Soal 3

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

Jawaban

Indeks musiman menunjukkan pengaruh masing-masing bulan terhadap nilai produksi setelah memperhitungkan tren.

R-code

bulan <- month.abb

indeks_add <- data.frame(
  Bulan = bulan,
  Indeks_Musiman = as.numeric(
    dekomp_add$seasonal[1:12]
  )
)

indeks_add
##    Bulan Indeks_Musiman
## 1    Jan    -4.53993056
## 2    Feb    -1.74826389
## 3    Mar   -11.91493056
## 4    Apr    -0.06076389
## 5    May     7.83506944
## 6    Jun    21.21006944
## 7    Jul    27.75173611
## 8    Aug     9.73090278
## 9    Sep    -7.35243056
## 10   Oct   -15.47743056
## 11   Nov   -20.12326389
## 12   Dec    -5.31076389

Visualisasi indeks musiman:

ggplot(
  indeks_add,
  aes(
    x = factor(Bulan, levels = bulan),
    y = Indeks_Musiman
  )
) +
  geom_col() +
  geom_point(size = 3) +
  labs(
    title = "Indeks Musiman Produksi Air Minum",
    x = "Bulan",
    y = "Indeks Musiman (ribu m³)"
  ) +
  theme_minimal()

Hasil

Bulan Indeks Musiman
Januari -4,54
Februari -1,75
Maret -11,91
April -0,06
Mei 7,84
Juni 21,21
Juli 27,75
Agustus 9,73
September -7,35
Oktober -15,48
November -20,12
Desember -5,31

Interpretasi

Indeks musiman tertinggi terdapat pada bulan Juli sebesar 27,75, sedangkan indeks terendah terdapat pada bulan November sebesar -20,12.

Artinya, setelah memperhitungkan tren, produksi pada bulan Juli cenderung sekitar 27,75 ribu m³ lebih tinggi dari tren. Sementara itu, produksi pada bulan November cenderung sekitar 20,12 ribu m³ lebih rendah dari tren.

Dugaan penyebabnya dapat berkaitan dengan perubahan kebutuhan atau aktivitas penggunaan air pada bulan-bulan tertentu. Namun, penyebab tersebut tidak dapat dipastikan hanya dari data yang tersedia.


Soal 4

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

Jawaban

Komponen residu diperiksa menggunakan summary() dan simpangan baku.

R-code

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
sd_add <- sd(
  dekomp_add$random,
  na.rm = TRUE
)

sd_add
## [1] 0.4862621

Grafik residu:

residu_add <- data.frame(
  tanggal = seq(
    from = as.Date("2022-01-01"),
    by = "month",
    length.out = length(volume_ts)
  ),
  residu = as.numeric(dekomp_add$random)
)

ggplot(residu_add, aes(x = tanggal, y = residu)) +
  geom_hline(
    yintercept = 0,
    linetype = "dashed"
  ) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(
    title = "Komponen Residu Model Additive",
    x = "Waktu",
    y = "Residu"
  ) +
  theme_minimal()

Hasil

Simpangan baku residu additive adalah sekitar 0,4863.

Nilai rata-rata residu berada sangat dekat dengan nol.

Interpretasi

Dari grafik terlihat residu berfluktuasi di sekitar nol dan tidak menunjukkan pola tertentu yang kuat. Jadi, residu dapat dikatakan relatif berfluktuasi secara acak di sekitar nol.

Hal ini menunjukkan bahwa komponen tren dan musiman sudah menangkap sebagian besar pola pada data.

Dekomposisi Multiplicative

Model multiplicative menyatakan data sebagai hasil kali komponen tren, musiman, dan residu.

\[ Z_t = T_t \times S_t \times e_t \]

Pada model ini, faktor musiman sebesar 1 menunjukkan kondisi rata-rata. Nilai lebih dari 1 menunjukkan kondisi di atas tren, sedangkan nilai kurang dari 1 menunjukkan kondisi di bawah tren.


Soal 1

Lakukan dekomposisi multiplicative pada data produksi air minum PDAM.

Jawaban

R-code

dekomp_mul <- decompose(
  volume_ts,
  type = "multiplicative"
)

plot(dekomp_mul)

Untuk melihat masing-masing komponen:

dekomp_mul$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
dekomp_mul$seasonal
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2022 0.9901875 0.9962547 0.9744168 0.9999039 1.0166776 1.0449005 1.0625939
## 2023 0.9901875 0.9962547 0.9744168 0.9999039 1.0166776 1.0449005 1.0625939
## 2024 0.9901875 0.9962547 0.9744168 0.9999039 1.0166776 1.0449005 1.0625939
##            Aug       Sep       Oct       Nov       Dec
## 2022 1.0218486 0.9835709 0.9656814 0.9556379 0.9883262
## 2023 1.0218486 0.9835709 0.9656814 0.9556379 0.9883262
## 2024 1.0218486 0.9835709 0.9656814 0.9556379 0.9883262
dekomp_mul$random
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 2022        NA        NA        NA        NA        NA        NA 1.0010461
## 2023 1.0014693 1.0005740 1.0008342 1.0004650 0.9998269 1.0005500 0.9987391
## 2024 0.9983158 0.9992111 0.9989510 0.9993202 0.9999583 0.9992351        NA
##            Aug       Sep       Oct       Nov       Dec
## 2022 1.0007953 0.9982074 0.9984910 0.9980699 0.9981398
## 2023 0.9989899 1.0015778 1.0012941 1.0017152 1.0016454
## 2024        NA        NA        NA        NA        NA

Hasil

Dekomposisi multiplicative menghasilkan komponen observed, trend, seasonal, dan random. Komponen seasonal pada model ini berbentuk faktor dan nilainya berada di sekitar 1.

Interpretasi

Model multiplicative menunjukkan pola tren yang meningkat dengan pengaruh musiman dalam bentuk proporsi terhadap nilai tren.


Soal 2

Tampilkan dan gambarkan komponen tren dari dekomposisi multiplicative.

R-code

trend_mul <- data.frame(
  tanggal = seq(
    from = as.Date("2022-01-01"),
    by = "month",
    length.out = length(volume_ts)
  ),
  trend = as.numeric(dekomp_mul$trend)
)

ggplot(trend_mul, aes(x = tanggal, y = trend)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(
    title = "Komponen Tren Model Multiplicative",
    x = "Waktu",
    y = "Tren (ribu m³)"
  ) +
  scale_x_date(
    date_breaks = "3 months",
    date_labels = "%b\n%Y"
  ) +
  theme_minimal()

Hasil

Nilai tren pada awal periode yang dapat dihitung sekitar 427,75 ribu m³ dan pada akhir periode sekitar 488,46 ribu m³.

Interpretasi

Komponen tren pada model multiplicative juga menunjukkan bahwa produksi air minum cenderung meningkat dari waktu ke waktu.


Soal 3

Tampilkan 12 faktor musiman dan identifikasi bulan dengan faktor musiman tertinggi dan terendah.

Jawaban

R-code

indeks_mul <- data.frame(
  Bulan = bulan,
  Faktor_Musiman = as.numeric(
    dekomp_mul$seasonal[1:12]
  )
)

indeks_mul
##    Bulan Faktor_Musiman
## 1    Jan      0.9901875
## 2    Feb      0.9962547
## 3    Mar      0.9744168
## 4    Apr      0.9999039
## 5    May      1.0166776
## 6    Jun      1.0449005
## 7    Jul      1.0625939
## 8    Aug      1.0218486
## 9    Sep      0.9835709
## 10   Oct      0.9656814
## 11   Nov      0.9556379
## 12   Dec      0.9883262

Visualisasi:

ggplot(
  indeks_mul,
  aes(
    x = factor(Bulan, levels = bulan),
    y = Faktor_Musiman
  )
) +
  geom_col() +
  geom_point(size = 3) +
  geom_hline(
    yintercept = 1,
    linetype = "dashed"
  ) +
  labs(
    title = "Faktor Musiman Model Multiplicative",
    x = "Bulan",
    y = "Faktor Musiman"
  ) +
  theme_minimal()

Hasil

Bulan Faktor Musiman
Januari 0,990
Februari 0,996
Maret 0,974
April 1,000
Mei 1,017
Juni 1,045
Juli 1,063
Agustus 1,022
September 0,984
Oktober 0,966
November 0,956
Desember 0,988

Interpretasi

Faktor musiman tertinggi terdapat pada bulan Juli sebesar 1,063. Artinya, produksi pada bulan Juli cenderung sekitar 6,3% lebih tinggi dari tren.

Faktor musiman terendah terdapat pada bulan November sebesar 0,956. Artinya, produksi pada bulan November cenderung sekitar 4,4% lebih rendah dari tren.


Soal 4

Periksa komponen residu multiplicative dan bandingkan dengan model additive.

Jawaban

Pada model additive, residu berada di sekitar 0. Sedangkan pada model multiplicative, residu berada di sekitar 1.

R-code

summary(dekomp_mul$random)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.9981  0.9989  0.9999  0.9999  1.0009  1.0017      12
sd_mul <- sd(
  dekomp_mul$random,
  na.rm = TRUE
)

sd_mul
## [1] 0.001249183

Grafik residu:

residu_mul <- data.frame(
  tanggal = seq(
    from = as.Date("2022-01-01"),
    by = "month",
    length.out = length(volume_ts)
  ),
  residu = as.numeric(dekomp_mul$random)
)

ggplot(residu_mul, aes(x = tanggal, y = residu)) +
  geom_hline(
    yintercept = 1,
    linetype = "dashed"
  ) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(
    title = "Komponen Residu Model Multiplicative",
    x = "Waktu",
    y = "Residu"
  ) +
  theme_minimal()

Perbandingan simpangan baku:

data.frame(
  Model = c(
    "Additive",
    "Multiplicative"
  ),
  SD_Residu = c(
    sd_add,
    sd_mul
  )
)
##            Model   SD_Residu
## 1       Additive 0.486262054
## 2 Multiplicative 0.001249183

Hasil

Simpangan baku residu additive sekitar 0,4863, sedangkan simpangan baku residu multiplicative sekitar 0,00125.

Interpretasi

Residu multiplicative berada di sekitar 1 dan memiliki penyimpangan yang kecil dari nilai tersebut.

Namun, nilai simpangan baku kedua model tidak dapat dibandingkan hanya berdasarkan besar angkanya karena skalanya berbeda. Residu additive menggunakan skala ribu m³, sedangkan residu multiplicative menggunakan skala rasio.

Oleh karena itu, pemilihan model tidak cukup hanya berdasarkan nilai simpangan baku. Pola visual data dan pola residu juga perlu diperhatikan.

Pada data PDAM ini, pola musiman terlihat relatif stabil meskipun terdapat tren kenaikan. Tidak terlihat perubahan amplitudo musiman yang semakin besar secara jelas dari tahun ke tahun.

Kesimpulan

Berdasarkan hasil dekomposisi additive dan multiplicative, produksi air minum PDAM Kabupaten Serang selama Januari 2022–Desember 2024 menunjukkan tren yang meningkat.

Pada model additive, indeks musiman tertinggi terdapat pada Juli sebesar 27,75, sedangkan yang terendah terdapat pada November sebesar -20,12.

Pada model multiplicative, faktor musiman tertinggi terdapat pada Juli sebesar 1,063, sedangkan yang terendah terdapat pada November sebesar 0,956.

Residu pada model additive berfluktuasi di sekitar 0, sedangkan residu multiplicative berfluktuasi di sekitar 1. Nilai simpangan baku residu additive adalah sekitar 0,4863, sedangkan multiplicative sekitar 0,00125. Kedua nilai tersebut tidak dibandingkan secara langsung karena berada pada skala yang berbeda.

Secara keseluruhan, data menunjukkan adanya tren naik dan pola musiman yang cukup jelas, dengan Juli sebagai bulan yang cenderung memiliki produksi lebih tinggi dan November sebagai bulan yang cenderung lebih rendah.