Campak merupakan salah satu penyakit menular yang masih menjadi masalah kesehatan masyarakat di Indonesia, terutama pada anak-anak. Penyakit ini memiliki potensi menimbulkan kejadian luar biasa (KLB) apabila tidak dilakukan pengendalian dan perencanaan yang tepat. Oleh karena itu, pemantauan dan peramalan jumlah kasus campak menjadi penting sebagai dasar pengambilan kebijakan di bidang kesehatan masyarakat.
Jumlah penderita campak klinis cenderung mengalami fluktuasi dari waktu ke waktu dan dipengaruhi oleh berbagai faktor, seperti musim, tingkat imunisasi, serta kondisi lingkungan. Pola data yang bersifat dinamis dan berurutan berdasarkan waktu tersebut menjadikan pendekatan deret waktu (time series) sebagai metode yang sesuai untuk menganalisis dan memodelkan perkembangan jumlah kasus campak.
Salah satu metode yang umum digunakan dalam analisis deret waktu adalah Autoregressive Integrated Moving Average (ARIMA). Metode ARIMA mampu menangkap pola ketergantungan data masa lalu serta mengakomodasi ketidakstasioneran melalui proses differencing. Dengan tahapan Box–Jenkins yang sistematis, ARIMA dapat digunakan untuk membangun model peramalan yang akurat dan dapat diandalkan.
Penelitian ini bertujuan untuk memodelkan dan meramalkan jumlah penderita campak klinis di Kota Surabaya menggunakan metode ARIMA berdasarkan data bulanan periode Januari 2012 hingga Desember 2017. Hasil peramalan diharapkan dapat memberikan gambaran tren kasus campak di masa mendatang serta menjadi bahan pertimbangan dalam perencanaan dan evaluasi program pengendalian penyakit campak di Kota Surabaya.
Data yang digunakan merupakan data sekunder jumlah penderita campak klinis bulanan di Kota Surabaya periode Januari 2012 – Desember 2017 (72 observasi).
Variabel penelitian:
Y : Jumlah penderita campak klinis (orang)
t : Waktu (tahun)
Data diambil dari jurnal: Indrayatna, K. P. (2019). Peramalan Jumlah Penderita Campak Klinis di Kota Surabaya Menggunakan Metode ARIMA. Jurnal Keperawatan Muhammadiyah.
library(tseries)
## Warning: package 'tseries' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.3
campak <- c(
58,48,79,76,86,72,50,48,58,66,44,32,
40,71,84,89,81,61,66,34,24,28,35,15,
27,44,64,92,99,80,59,44,55,48,56,43,
50,40,60,51,60,42,27,38,72,78,95,42,
56,71,56,56,52,66,64,53,85,88,118,73,
54,91,61,40,42,27,25,30,21,22,11,4
)
campak_ts <- ts(campak, start = c(2012,1), frequency = 12)
plot(campak_ts,
main = "Jumlah Penderita Campak Klinis Kota Surabaya (2012–2017)",
ylab = "Jumlah Kasus",
xlab = "Tahun")
Interpretasi: Plot deret waktu menunjukkan bahwa jumlah penderita campak klinis mengalami fluktuasi setiap bulan dengan kecenderungan naik dan turun pada periode tertentu. Hasil uji ADF pada data asli menunjukkan bahwa data belum stasioner, sehingga dilakukan proses differencing orde pertama untuk menghilangkan tren dan menstabilkan rata-rata data. Pola ini mengindikasikan adanya musiman dan ketidakstasioneran, sehingga diperlukan pengujian stasioneritas sebelum pemodelan ARIMA.
Metode utama yang digunakan adalah ARIMA (Autoregressive Integrated Moving Average) dengan tahapan Box–Jenkins, yaitu:
Uji stasioneritas
Identifikasi model (ACF & PACF)
Estimasi parameter
Uji diagnostik
Pemilihan model terbaik
Peramalan
adf.test(campak_ts)
##
## Augmented Dickey-Fuller Test
##
## data: campak_ts
## Dickey-Fuller = -2.6329, Lag order = 4, p-value = 0.3176
## alternative hypothesis: stationary
Interpretasi: Hasil uji ADF menunjukkan bahwa nilai p-value >0,05 yang berarti data belum sepenuhnya stasioner, sehingga selanjutnya akan dilakukan differencing.
campak_diff <- diff(campak_ts, differences = 1)
plot(campak_diff,
main = "Data Campak Klinis Setelah Differencing Orde 1",
ylab = "Perubahan Jumlah Kasus",
xlab = "Tahun")
Interpretasi: Setelah differencing orde 1, data berfluktuasi di sekitar nol tanpa pola tren yang jelas, yang menunjukkan bahwa tren pada data asli telah berhasil dihilangkan dan data menjadi lebih stasioner. Fluktuasi yang terjadi bersifat relatif acak dengan variansi yang cukup stabil, meskipun terdapat beberapa lonjakan ekstrem pada periode tertentu, sehingga data ini sudah layak digunakan untuk pemodelan deret waktu seperti ARIMA.
adf.test(campak_diff)
## Warning in adf.test(campak_diff): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: campak_diff
## Dickey-Fuller = -4.1821, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Interpretasi: Berdasarkan hasil Augmented Dickey-Fuller (ADF) test, nilai statistik Dickey–Fuller sebesar −4,1821 dengan p-value 0,01 menunjukkan bahwa hipotesis nol adanya unit root ditolak, sehingga data tersebut bersifat stasioner dan hasil differencing orde 1 sudah memadai.
acf(campak_ts, main="ACF Data Campak")
pacf(campak_ts, main="PACF Data Campak")
Interpretasi: Berdasarkan plot ACF, terlihat beberapa lag awal yang signifikan dan kemudian nilai ACF menurun secara bertahap (tailing off), yang mengindikasikan adanya komponen AR dalam model. Sementara itu, plot PACF menunjukkan lonjakan signifikan pada lag pertama dan lag selanjutnya relatif tidak signifikan, sehingga menguatkan dugaan bahwa model yang sesuai untuk data campak yang sudah didiferensi adalah AR(1), atau secara keseluruhan ARIMA(1,0,0)
model1 <- arima(campak_ts, order = c(1,0,0))
model2 <- arima(campak_ts, order = c(0,0,2))
model3 <- arima(campak_ts, order = c(0,0,3))
model1
##
## Call:
## arima(x = campak_ts, order = c(1, 0, 0))
##
## Coefficients:
## ar1 intercept
## 0.6951 53.7929
## s.e. 0.0876 6.3007
##
## sigma^2 estimated as 280.4: log likelihood = -305.39, aic = 616.78
model2
##
## Call:
## arima(x = campak_ts, order = c(0, 0, 2))
##
## Coefficients:
## ma1 ma2 intercept
## 0.6621 0.3653 54.7391
## s.e. 0.1105 0.1220 4.0493
##
## sigma^2 estimated as 292.4: log likelihood = -306.86, aic = 621.71
model3
##
## Call:
## arima(x = campak_ts, order = c(0, 0, 3))
##
## Coefficients:
## ma1 ma2 ma3 intercept
## 0.7652 0.512 0.2142 54.5862
## s.e. 0.1186 0.145 0.1011 4.8142
##
## sigma^2 estimated as 276: log likelihood = -304.86, aic = 619.71
Box.test(residuals(model1), lag = 18, type = "Ljung")
##
## Box-Ljung test
##
## data: residuals(model1)
## X-squared = 18.69, df = 18, p-value = 0.4112
Box.test(residuals(model2), lag = 18, type = "Ljung")
##
## Box-Ljung test
##
## data: residuals(model2)
## X-squared = 17.084, df = 18, p-value = 0.5173
Box.test(residuals(model3), lag = 18, type = "Ljung")
##
## Box-Ljung test
##
## data: residuals(model3)
## X-squared = 14.532, df = 18, p-value = 0.6938
shapiro.test(residuals(model1))
##
## Shapiro-Wilk normality test
##
## data: residuals(model1)
## W = 0.98333, p-value = 0.4578
Interpretasi: Ketiga model ARIMA menghasilkan residual yang tidak berkorelasi karena uji Ljung–Box memberikan p-value > 0,05, sehingga asumsi white noise terpenuhi. Residual ARIMA(1,0,0) juga berdistribusi normal berdasarkan uji Shapiro–Wilk (p-value = 0,4578), dan karena model ini memiliki AIC paling kecil, maka ARIMA(1,0,0) layak dipilih sebagai model terbaik untuk data campak.
forecast_2018_2019 <- predict(model1, n.ahead = 24)
forecast_2018_2019
## $pred
## Jan Feb Mar Apr May Jun Jul Aug
## 2018 19.18332 29.73680 37.07221 42.17084 45.71475 48.17802 49.89016 51.08022
## 2019 53.35281 53.48700 53.58028 53.64511 53.69018 53.72150 53.74327 53.75840
## Sep Oct Nov Dec
## 2018 51.90739 52.48234 52.88197 53.15974
## 2019 53.76892 53.77623 53.78132 53.78485
##
## $se
## Jan Feb Mar Apr May Jun Jul Aug
## 2018 16.74382 20.39122 21.93716 22.64626 22.98101 23.14100 23.21790 23.25496
## 2019 23.28864 23.28911 23.28933 23.28944 23.28950 23.28952 23.28954 23.28954
## Sep Oct Nov Dec
## 2018 23.27284 23.28148 23.28565 23.28766
## 2019 23.28954 23.28955 23.28955 23.28955
fit <- Arima(campak_ts, order = c(1,0,0))
fc <- forecast(fit, h = 24)
plot(fc,
main = "Forecast Jumlah Penderita Campak Klinis Kota Surabaya",
xlab = "Tahun",
ylab = "Jumlah Kasus")
Interpretasi: Hasil peramalan ARIMA(1,0,0) untuk periode 2018–2019 menunjukkan bahwa jumlah penderita campak klinis di Kota Surabaya diprediksi meningkat di awal 2018, kemudian cenderung stabil dan mendekati nilai rata-rata sekitar 50–55 kasus hingga akhir 2019. Nilai standard error yang semakin konstan serta area bayangan pada grafik yang merepresentasikan interval kepercayaan menunjukkan bahwa ketidakpastian ramalan relatif stabil dan masih dalam batas wajar, sehingga model ARIMA(1,0,0) memberikan proyeksi yang konsisten tanpa fluktuasi ekstrem.
Berdasarkan seluruh tahapan analisis, data jumlah penderita campak klinis telah memenuhi asumsi stasioneritas setelah pengujian, sehingga dapat dimodelkan menggunakan ARIMA. Pola ACF dan PACF serta perbandingan beberapa model menunjukkan bahwa ARIMA(1,0,0) merupakan model terbaik dengan nilai AIC terendah dan parameter yang signifikan. Hasil uji diagnostik menegaskan bahwa residual bersifat white noise dan berdistribusi normal, sehingga model layak digunakan. Peramalan periode 2018–2019 menunjukkan peningkatan kasus di awal periode yang kemudian cenderung stabil di kisaran 50–55 kasus, dengan tingkat ketidakpastian yang relatif stabil, sehingga model ARIMA(1,0,0) mampu memberikan proyeksi jumlah kasus campak klinis yang konsisten dan dapat dijadikan dasar perencanaan ke depan.
Indrayatna, K. P. (2019). Peramalan Jumlah Penderita Campak Klinis di Kota Surabaya Menggunakan Metode ARIMA. Jurnal Keperawatan Muhammadiyah.