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
Buat objek ts dari data di atas, lalu lakukan
dekomposisi additive menggunakan decompose().
Dekomposisi additive digunakan untuk memisahkan data menjadi komponen tren, musiman, dan residu.
Model additive:
\[ Z_t = T_t + S_t + e_t \]
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 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.
Dari hasil dekomposisi terlihat bahwa data memiliki pola tren yang meningkat, pola musiman yang berulang setiap tahun, serta komponen residu yang relatif kecil.
Tampilkan dan gambarkan komponen tren. Apakah produksi air minum menunjukkan tren naik?
Komponen tren dapat dilihat dari hasil dekomposisi additive.
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()
Nilai tren pada awal periode yang dapat dihitung sekitar 427,75 ribu m³, sedangkan pada akhir periode sekitar 488,46 ribu m³.
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.
Tampilkan 12 indeks musiman. Bulan apa yang cenderung tertinggi dan terendah? Berikan dugaan penjelasannya.
Indeks musiman menunjukkan pengaruh masing-masing bulan terhadap nilai produksi setelah memperhitungkan tren.
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()
| 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 |
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.
Periksa komponen residu melalui ringkasan statistik dan simpangan bakunya. Apakah residu tampak berfluktuasi acak di sekitar nol?
Komponen residu diperiksa menggunakan summary() dan
simpangan baku.
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()
Simpangan baku residu additive adalah sekitar 0,4863.
Nilai rata-rata residu berada sangat dekat dengan nol.
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.
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.
Lakukan dekomposisi multiplicative pada data produksi air minum PDAM.
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
Dekomposisi multiplicative menghasilkan komponen observed, trend, seasonal, dan random. Komponen seasonal pada model ini berbentuk faktor dan nilainya berada di sekitar 1.
Model multiplicative menunjukkan pola tren yang meningkat dengan pengaruh musiman dalam bentuk proporsi terhadap nilai tren.
Tampilkan dan gambarkan komponen tren dari dekomposisi multiplicative.
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()
Nilai tren pada awal periode yang dapat dihitung sekitar 427,75 ribu m³ dan pada akhir periode sekitar 488,46 ribu m³.
Komponen tren pada model multiplicative juga menunjukkan bahwa produksi air minum cenderung meningkat dari waktu ke waktu.
Tampilkan 12 faktor musiman dan identifikasi bulan dengan faktor musiman tertinggi dan terendah.
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()
| 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 |
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.
Periksa komponen residu multiplicative dan bandingkan dengan model additive.
Pada model additive, residu berada di sekitar 0. Sedangkan pada model multiplicative, residu berada di sekitar 1.
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
Simpangan baku residu additive sekitar 0,4863, sedangkan simpangan baku residu multiplicative sekitar 0,00125.
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.
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.