Analisis Deret Waktu: Suhu Udara Rata-Rata Bulanan Kota Cilegon Periode Januari 2023–Desember 2024

Gambaran Umum Data

Berikut data suhu udara rata-rata bulanan Kota Cilegon periode Januari 2023 – Desember 2024 (°C):

Tahun Jan Feb Mar Apr Mei Jun Jul Agu Sep Okt Nov Des
2023 27.8 27.9 28.3 28.9 29.1 28.6 28.0 28.1 28.4 28.7 28.2 27.9
2024 28.0 28.1 28.6 29.2 29.4 28.8 28.2 28.3 28.6 28.9 28.4 28.1

Analisis ini bertujuan untuk memeriksa pola data runtun waktu suhu udara dan menguji kestabilannya dari waktu ke waktu. Pengujian dilakukan melalui visualisasi tren, perhitungan kestabilan rata-rata dan variansi tahunan, analisis autokorelasi (ACF), serta uji stasioneritas untuk memastikan apakah pola data konsisten secara statistik.


1. Membuat objek ts dan plot runtun waktu

Objek Time Series

# Data suhu udara rata-rata bulanan Kota Cilegon (°C)
suhu <- c(27.8,27.9,28.3,28.9,29.1,28.6,28.0,28.1,28.4,28.7,28.2,27.9,
          28.0,28.1,28.6,29.2,29.4,28.8,28.2,28.3,28.6,28.9,28.4,28.1)

suhu_ts <- ts(suhu, start = c(2023, 1), frequency = 12)
suhu_ts
##       Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
## 2023 27.8 27.9 28.3 28.9 29.1 28.6 28.0 28.1 28.4 28.7 28.2 27.9
## 2024 28.0 28.1 28.6 29.2 29.4 28.8 28.2 28.3 28.6 28.9 28.4 28.1

Plot Runtun Waktu

# Label bulan-tahun untuk sumbu-x (Jan-23, Feb-23, ..., Des-24)
label_bulan <- format(seq(as.Date("2023-01-01"), by = "month", length.out = length(suhu)),
                       "%b-%y")

plot(1:length(suhu), suhu, type = "o", pch = 16, col = "#2C3E7B", lwd = 1.5,
     xaxt = "n",
     main = "Suhu Udara Rata-rata Bulanan Kota Cilegon (Jan 2023 - Des 2024)",
     xlab = "Bulan", ylab = "Suhu (°C)")
axis(1, at = 1:length(suhu), labels = label_bulan, las = 2, cex.axis = 0.75)
abline(v = 1:length(suhu), col = "grey92", lty = 3)
grid(col = "grey85", nx = NA, ny = NULL)

Interpretasi:

Plot menunjukkan pola naik-turun yang berulang setiap 12 bulan (suhu memuncak sekitar Mei dan paling rendah sekitar Januari/Desember), dengan level rata-rata yang naik sedikit demi sedikit dari tahun ke tahun.


2. Rata-rata dan Variansi per Tahun

tahun <- rep(2023:2024, each = 12)
rata2_tahun   <- tapply(suhu, tahun, mean)
variansi_tahun <- tapply(suhu, tahun, var)

data.frame(
  Tahun    = names(rata2_tahun),
  `Rata-rata (°C)` = round(rata2_tahun, 3),
  `Variansi`        = round(variansi_tahun, 4),
  check.names = FALSE
)
##      Tahun Rata-rata (°C) Variansi
## 2023  2023         28.325   0.1784
## 2024  2024         28.550   0.2045

Interpretasi:

Rata-rata suhu tahun 2023 dan 2024 hanya berbeda sekitar 0.2°C yaitu 28.325 di tahun 2023 dan 28.550 di tahun 2024, dan variansi kedua tahun juga sangat berdekatan, 0.1784 pada tahun 2023 dan 0.2045 pada tahun 2024 (selisih relatif kecil). Dengan kata lain, rata-rata dan variansi relatif stabil dari tahun ke tahun.


3. ACF dan Correlogram hingga Lag 12

Plot ACF

hasil_acf <- acf(suhu, lag.max = 12, plot = TRUE,
                  main = "Correlogram Suhu Udara Kota Cilegon",
                  col = "#7B2C2C", lwd = 6)

Nilai \(r_k\)

n <- length(suhu)
batas_ci <- 1.96 / sqrt(n)

tabel_acf <- data.frame(
  Lag = 0:12,
  r_k = round(as.numeric(hasil_acf$acf), 4)
)
tabel_acf
##    Lag     r_k
## 1    0  1.0000
## 2    1  0.5405
## 3    2 -0.1946
## 4    3 -0.4994
## 5    4 -0.2503
## 6    5  0.1263
## 7    6  0.1747
## 8    7 -0.0559
## 9    8 -0.2895
## 10   9 -0.3097
## 11  10 -0.0336
## 12  11  0.3074
## 13  12  0.4303

Interpretasi:

Dari correlogram terlihat nilai \(r_k\) tidak turun cepat menuju nol dalam 2-3 lag pertama, melainkan tetap tinggi dan positif di lag-lag awal (lag 1 hingga sekitar lag 4-5) lalu berangsur turun. Pola ini merupakan ciri turun lambat/hampir monoton.


4. Uji Signifikansi \(r_k\), Uji Box-Pierce, dan Kesimpulan

Uji Signifikansi \(r_k\) Secara Individual

Hipotesis:

\[H_0: \rho_k = 0 \text{ (tidak ada autokorelasi)} \qquad\] \[H_1: \rho_k \neq 0 \text{ (ada autokorelasi)}\]

\(r_k\) dikatakan signifikan jika berada di luar selang \(-1{,}96/\sqrt{n} < \rho_k < 1{,}96/\sqrt{n}\).

tabel_acf$Signifikan <- ifelse(abs(tabel_acf$r_k) > batas_ci & tabel_acf$Lag != 0,
                                "Ya", "Tidak")
tabel_acf
##    Lag     r_k Signifikan
## 1    0  1.0000      Tidak
## 2    1  0.5405         Ya
## 3    2 -0.1946      Tidak
## 4    3 -0.4994         Ya
## 5    4 -0.2503      Tidak
## 6    5  0.1263      Tidak
## 7    6  0.1747      Tidak
## 8    7 -0.0559      Tidak
## 9    8 -0.2895      Tidak
## 10   9 -0.3097      Tidak
## 11  10 -0.0336      Tidak
## 12  11  0.3074      Tidak
## 13  12  0.4303         Ya

Berdasarkan hasil Uji Signifikansi \(r_k\) secara individual didapat lag 1, lag 3, dan lag 12 memiliki autokorelasi yang signifikan sementara lag yang lainnya tidak signifikan.

Uji Box-Pierce Secara Serentak

\[Q = n\sum_{k=1}^{m} r_k^2 \sim \chi^2_m \qquad \]

Hipotesis: \[H_0: \text{data bersifat } \textit{white noise} \text{ (tidak ada autokorelasi)}\] \[H_1: \text{data tidak bersifat } \textit{white noise} \text{ (ada autokorelasi)}\]

uji_boxpierce <- Box.test(suhu, lag = 12, type = "Box-Pierce")
uji_boxpierce
## 
##  Box-Pierce test
## 
## data:  suhu
## X-squared = 27.653, df = 12, p-value = 0.006215
Q_hitung   <- as.numeric(uji_boxpierce$statistic)
chi_kritis <- qchisq(0.95, df = 12)

data.frame(
  Statistik = c("Q hitung", "Chi-square kritis (df=12, alpha=5%)", "p-value"),
  Nilai     = c(round(Q_hitung, 3), round(chi_kritis, 3), signif(uji_boxpierce$p.value, 4))
)
##                             Statistik     Nilai
## 1                            Q hitung 27.653000
## 2 Chi-square kritis (df=12, alpha=5%) 21.026000
## 3                             p-value  0.006215

\(Q = 27.653\), lebih besar dari batas kritis \(\chi^2 = 21.026\) (p-value = 0.006215, di bawah 0,05) maka tolak H0. Artinya data ini terbukti punya pola, bukan data acak tanpa pola (white noise).

Kesimpulan:

Berdasarkan seluruh analisis di atas, suhu udara rata-rata bulanan Kota Cilegon periode 2023–2024 menunjukkan rata-rata dan variansi yang cukup stabil antar tahun, sehingga data ini dapat digolongkan sebagai data yang stasioner. Correlogram ACF memperlihatkan nilai \(r_k\) yang berfluktuasi naik-turun pada beberapa lag, di mana autokorelasi terbukti signifikan pada lag 1, lag 3, dan lag 12 melalui uji signifikansi \(r_k\). Hasil ini didukung oleh uji Box-Pierce, yang juga mengonfirmasi adanya autokorelasi secara serentak hingga lag ke-12. Dengan kata lain, meskipun data ini tergolong stasioner, data tetap memiliki struktur autokorelasi yang jelas dan bukan merupakan white noise.