Data dan Studi Kasus

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
  1. Buat objek ts dan plot runtun waktu dari data suhu tersebut.
  2. Hitung rata-rata dan variansi data per tahun. Apakah keduanya relatif stabil?
  3. Hitung dan plot ACF hingga lag 12. Apakah pola ACF turun cepat, lambat, atau berulang periodik?
  4. Terapkan uji signifikansi \(r_k\) dan Box-Pierce. Simpulkan apakah data ini dapat dikategorikan stasioner, dan jelaskan alasannya.

Penyelesaian

1. Buat objek ts dan plot runtun waktu dari data suhu tersebut.

a. Membuat Objek ts

# Memasukkan data secara berurutan dari Jan 2023 hingga Des 2024
suhu_data <- 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)

# 1. Membuat objek ts
suhu_ts <- ts(suhu_data, 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

b. Plot Runtun Waktu

# Buat data frame 
data_plot <- data.frame(
  Tanggal = seq(as.Date("2023-01-01"), as.Date("2024-12-01"), by = "month"),
  Suhu = suhu_data
)

# Plot menggunakan ggplot
ggplot(data_plot, aes(x = Tanggal, y = Suhu)) +
  geom_line(color = "gold", linewidth = 1) +
  geom_point(color = "darkblue", size = 2) +
  # Mengatur sumbu X agar menampilkan format: Nama Bulan Singkat (%b) dan Tahun (%y)
  # date_breaks = "1 month" artinya label muncul di setiap bulan
  scale_x_date(date_labels = "%b %y", date_breaks = "1 month") +
  labs(title = "Plot Runtun Waktu Suhu Udara Rata-rata Bulanan Kota Cilegon",
       x = "Bulan & Tahun",
       y = "Suhu (°C)") +
  theme_minimal() +
  # Memutar teks sumbu X sebesar 45 derajat agar rapi dan terbaca
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1, face = "bold"))

2. Hitung rata-rata dan variansi data per tahun. Apakah keduanya relatif stabil?

suhu_2023 <- suhu_data[1:12]
suhu_2024 <- suhu_data[13:24]

rata_2023 <- mean(suhu_2023); var_2023 <- var(suhu_2023)
rata_2024 <- mean(suhu_2024); var_2024 <- var(suhu_2024)

data.frame(Tahun = c(2023, 2024),
           Rata_rata = round(c(rata_2023, rata_2024), 3),
           Variansi = round(c(var_2023, var_2024), 4))
##   Tahun Rata_rata Variansi
## 1  2023    28.325   0.1784
## 2  2024    28.550   0.2045

Interopretasi: Ya Rata-rata dan variansi suhu Cilegon Keduanya relatif stabil

Alasannya yaitu : berdasarkan dari rata-rata yang cuma naik tipis dari 28,325°C pada tahun 2023 jadi 28,550°C pada tahun 2024, selisihnya cuma 0,225°C. Variansinya juga ga jauh beda, antara 0,178 pada tahun 2023 dan 0,205 pada tahun 2024, artinya sebaran suhu bulanan di kedua tahun itu konsisten, ga ada tahun yang tiba-tiba lebih fluktuatif dari yang lain.

3. Hitung dan plot ACF hingga lag 12. Apakah pola ACF turun cepat, lambat, atau berulang periodik?

a. Perhitungan \(r_k\)

# Hitung ACF, disimpan sebagai data frame (bukan langsung diplot)
acf_hasil <- acf(suhu_ts, lag.max = 12, plot = FALSE)

df_acf <- data.frame(
  Lag = 0:12,
  r_k = round(acf_hasil$acf, 3)
)
df_acf
##    Lag    r_k
## 1    0  1.000
## 2    1  0.541
## 3    2 -0.195
## 4    3 -0.499
## 5    4 -0.250
## 6    5  0.126
## 7    6  0.175
## 8    7 -0.056
## 9    8 -0.290
## 10   9 -0.310
## 11  10 -0.034
## 12  11  0.307
## 13  12  0.430

Interpretasi : Berdasarkan hasil perhitungan numerik, nilai koefisien autokorelasi menunjukkan pola yang berulang periodik dan bukan turun secara cepat atau lambat. Hal ini terlihat jelas dari pergerakan angka yang dinamis, di mana nilai korelasi tercatat tinggi positif pada lag 1 sebesar 0,541, lalu berbalik menjadi negatif kuat di sekitar lag menengah seperti pada lag 3 sebesar -0,499, sebelum akhirnya kembali menguat dan membentuk lonjakan positif yang tinggi kembali menjelang lag tahunan pada lag 12 sebesar 0,430.

b.Plot ACF

n <- length(suhu_ts)
batas <- 1.96 / sqrt(n)

ggplot(df_acf, aes(x = Lag, y = r_k, fill = Lag == 0)) +
  geom_col(width = 0.6) +
  geom_hline(yintercept = c(batas, -batas), 
             linetype = "dashed", color = "goldenrod", linewidth = 0.8) +
  annotate("text", x = 12.3, y = batas, label = "1.96/√n", 
           color = "goldenrod", hjust = 0, size = 3) +
  annotate("text", x = 12.3, y = -batas, label = "-1.96/√n", 
           color = "goldenrod", hjust = 0, size = 3) +
  scale_fill_manual(values = c("TRUE" = "navy", "FALSE" = "darkred"), guide = "none") +
  scale_x_continuous(breaks = 0:12) +
  labs(title = "Plot ACF Suhu Udara Kota Cilegon",
       x = "Lag (k)", y = "ACF (r_k)") +
  theme_minimal()

Interpretasi : Berdasarkan visualisasi pada plot ACF, karakteristik grafik menunjukkan pola berulang secara periodik dan tidak turun dengan cepat menuju nol. Hal ini dibuktikan oleh batang-batang koefisien yang membentuk gelombang naik-turun dan menembus garis batas signifikansi \(\pm 1.96/\sqrt{n}\), di mana pola tingginya nilai positif tampak jelas pada lag 1 dan lag 12, sementara nilai negatif yang kuat terkonsentrasi di sekitar lag menengah, yang menandakan adanya pengaruh siklus musiman yang kuat pada data.

4. Terapkan uji signifikansi \(r_k\) dan Box-Pierce. Simpulkan apakah data ini dapat dikategorikan stasioner, dan jelaskan alasannya.

a. Uji signifikansi \(r_k\)

Pengujian signifikansi ini dilakukan untuk mengetahui apakah koefisien autokorelasi pada masing-masing lag berbeda secara signifikan dari nol pada taraf nyata \(\alpha = 5\%\).

  • 1. Hipotesis:
    • \(H_0: \rho_k = 0\) (Tidak ada autokorelasi yang signifikan pada lag ke-\(k\))
    • \(H_1: \rho_k \neq 0\) (Ada autokorelasi yang signifikan pada lag ke-\(k\))
  • 2. Kriteria Penolakan:
    • Tolak \(H_0\) jika nilai mutlak koefisien autokorelasi melebihi batas kritis selang kepercayaan, yaitu \(|r_k| > 1.96 \sqrt{\frac{1}{n}}\) (dengan jumlah pengamatan \(n = 24\), diperoleh batas kritis sebesar \(\pm 0.400\)).
    • Gagal tolak \(H_0\) jika \(|r_k| \le 0.400\) (nilai \(r_k\) berada di dalam selang \([-0.400, 0.400]\).
  • 3. Statistik Uji:
n <- length(suhu_ts)
batas <- 1.96 * sqrt(1/n)

# Hitung ACF untuk semua lag 1-12
acf_hasil <- acf(suhu_ts, lag.max = 12, plot = FALSE)
rk <- round(acf_hasil$acf[2:13], 3)   # r1 sampai r12 (index 1 = lag 0, jadi mulai dari 2)

# Buat tabel uji signifikansi per lag
tabel_uji <- data.frame(
  Lag = 1:12,
  r_k = rk,
  Batas_Bawah = round(-batas, 3),
  Batas_Atas = round(batas, 3),
  Keputusan = ifelse(abs(rk) > batas, "Tolak H0 (Signifikan)", "Gagal Tolak H0 (Tidak Signifikan)")
)
knitr::kable(tabel_uji, align = "c",
             caption = "Uji Signifikansi Individual r_k Suhu Udara Kota Cilegon")
Uji Signifikansi Individual r_k Suhu Udara Kota Cilegon
Lag r_k Batas_Bawah Batas_Atas Keputusan
1 0.541 -0.4 0.4 Tolak H0 (Signifikan)
2 -0.195 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
3 -0.499 -0.4 0.4 Tolak H0 (Signifikan)
4 -0.250 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
5 0.126 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
6 0.175 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
7 -0.056 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
8 -0.290 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
9 -0.310 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
10 -0.034 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
11 0.307 -0.4 0.4 Gagal Tolak H0 (Tidak Signifikan)
12 0.430 -0.4 0.4 Tolak H0 (Signifikan)
  • 4. Keputusan: Berdasarkan hasil perhitungan data suhu udara bulanan Kota Cilegon (\(n = 24\)), diperoleh keputusan untuk masing-masing lag sebagai berikut:
    • Lag 1 (\(r_1 = 0.541\)): \(|0.541| > 0.400 \rightarrow\) Tolak \(H_0\) (Signifikan)
    • Lag 2 (\(r_2 = -0.195\)): \(|-0.195| \le 0.400 \rightarrow\) Gagal Tolak \(H_0\) (Tidak Signifikan)
    • Lag 3 (\(r_3 = -0.499\)): \(|-0.499| > 0.400 \rightarrow\) Tolak \(H_0\) (Signifikan)
    • Lag 4 hingga Lag 11: Nilai \(|r_k| \le 0.400 \rightarrow\) Gagal Tolak \(H_0\) (Tidak Signifikan)
    • Lag 12 (\(r_{12} = 0.430\)): \(|0.430| > 0.400 \rightarrow\) Tolak \(H_0\) (Signifikan)
  • 5. Kesimpulan: Pada taraf nyata \(5\%\), terdapat autokorelasi yang signifikan secara individual pada Lag 1, Lag 3, dan Lag 12. Hal ini menunjukkan adanya hubungan linear yang kuat antara periode pengamatan saat ini dengan periode sebelumnya, sekaligus mengonfirmasi secara statistik adanya pola musiman tahunan (siklus 12 bulan) yang kuat pada data suhu udara Kota Cilegon.

b. Uji Box-Pierce
Uji Box-Pierce digunakan untuk menguji signifikansi \(m\) buah lag ACF secara serentak (uji portmanteau) guna menilai apakah data secara keseluruhan berperilaku sebagai white noise (tidak berautokorelasi.

  • 1. Hipotesis:
    • \(H_0:\) Data bersifat white noise (tidak ada autokorelasi secara simultan hingga lag ke-\(m\))
    • \(H_1:\) Data tidak bersifat white noise (terdapat autokorelasi secara simultan hingga lag ke-\(m\))
  • 2. Kriteria Penolakan:
    • Tolak \(H_0\) jika nilai statistik hitung \(Q > \chi^2_{(m,\alpha)}\) atau jika \(p\text{-value} < \alpha\) (dengan taraf nyata \(\alpha = 5\%\) dan derajat bebas \(df = m\)). Sebaliknya, gagal tolak \(H_0\) jika \(Q \le \chi^2_{(m,\alpha)}\) atau \(p\text{-value} \ge \alpha\).
  • 3. Statiistik Uji:
# Uji Box-Pierce
Box.test(suhu_ts, lag = 12, type = "Box-Pierce")
## 
##  Box-Pierce test
## 
## data:  suhu_ts
## X-squared = 27.653, df = 12, p-value = 0.006215
  • 3. Keputusan: Berdasarkan hasil pengujian pada data suhu udara bulanan Kota Cilegon dengan lag \(m = 12\):
    • Diperoleh nilai statistik uji \(X\text{-squared} = 27.653\), derajat bebas \(df = 12\), dan \(p\text{-value} = 0.006215\).
    • Karena nilai \(p\text{-value} = 0.006215 < 0.05\) (atau statistik \(Q\) berada di daerah penolakan), maka keputusan yang diambil adalah Tolak \(H_0\).
  • 4. Kesimpulan: Pada taraf nyata \(5\%\), secara simultan terdapat autokorelasi yang signifikan hingga lag ke-12. Hal ini menunjukkan bahwa data suhu udara Kota Cilegon tidak bersifat white noise..

Kesimpulan dan Interpretasi Stasioneritas Data

Berdasarkan hasil pengujian signifikansi autokorelasi (\(r_k\)), uji Box-Pierce, serta karakteristik visual dan statistik data, dapat disimpulkan bahwa data suhu udara rata-rata bulanan Kota Cilegon periode Januari 2023–Desember 2024 tidak stasioner.

Ketidakstasioneran data ini dapat dijelaskan secara lebih mendalam melalui dua parameter utama stasioneritas, yaitu rata-rata (mean) dan variansi (variance):

  • 1. Tidak Stasioner terhadap Rata-rata (Mean)
    Dilihat dari plot runtun waktu, nilai tengah atau level suhu udara pada tahun 2024 cenderung bergeser naik dibanding tahun 2023 (rata-ratanya tidak konstan di satu garis horizontal yang sama sepanjang waktu).

  • 2.Tidak Stasioner terhadap Variasi/Struktur Kovariansi (Musiman)
    Dilihat dari uji autokorelasi (Plot ACF dan uji Box-Pierce), terdapat autokorelasi yang signifikan secara serentak serta lonjakan pola musiman yang kuat pada Lag 12. Artinya, data ini memiliki siklus tahunan dan memori masa lalu yang membuat struktur varians/kovariansinya tidak homogen di semua waktu.

Karena tidak memenuhi syarat konstan pada rata-rata dan variansnya, data tersebut belum stasioner dan membutuhkan penanganan lanjutan (seperti differencing) sebelum bisa dimodelkan ke tahap ARIMA.