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 |
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"))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.
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.
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\%\).
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")| 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) |
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.
##
## Box-Pierce test
##
## data: suhu_ts
## X-squared = 27.653, df = 12, p-value = 0.006215
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.