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
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
)
bulan <- c(
"Jan", "Feb", "Mar", "Apr", "Mei", "Jun",
"Jul", "Agu", "Sep", "Okt", "Nov", "Des"
)
df <- data.frame(
Tahun = rep(2023:2024, each = 12),
Bulan = rep(bulan, 2),
Suhu_Udara = suhu
)
df
## Tahun Bulan Suhu_Udara
## 1 2023 Jan 27.8
## 2 2023 Feb 27.9
## 3 2023 Mar 28.3
## 4 2023 Apr 28.9
## 5 2023 Mei 29.1
## 6 2023 Jun 28.6
## 7 2023 Jul 28.0
## 8 2023 Agu 28.1
## 9 2023 Sep 28.4
## 10 2023 Okt 28.7
## 11 2023 Nov 28.2
## 12 2023 Des 27.9
## 13 2024 Jan 28.0
## 14 2024 Feb 28.1
## 15 2024 Mar 28.6
## 16 2024 Apr 29.2
## 17 2024 Mei 29.4
## 18 2024 Jun 28.8
## 19 2024 Jul 28.2
## 20 2024 Agu 28.3
## 21 2024 Sep 28.6
## 22 2024 Okt 28.9
## 23 2024 Nov 28.4
## 24 2024 Des 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(suhu_ts,
main = "Suhu Udara Rata-rata Bulanan Kota Cilegon (2023–2024)",
xlab = "Waktu",
ylab = "Suhu Udara (°C)",
col = "purple"
)
grid()
Interpretasi
Terlihat pola suhu bulanan Kota Cilegon 2023–2024:
Suhu naik dari Januari, puncak di Mei (~29.1–29.4°C), lalu turun menuju Desember (~27.9–28.1°C).
Pola ini berulang setiap tahun dengan bentuk yang mirip, menandakan adanya komponen musiman (seasonal) dengan periode 12 bulan.
Level suhu tahun 2024 secara umum sedikit lebih tinggi dari 2023, indikasi ada tren naik, meski kecil.
Kesimpulan:
Data punya pola musiman yang jelas + sedikit tren naik, ini adalah ciri khas data belum stasioner.
tahun <- rep(2023:2024, each = 12)
tapply(suhu, tahun, mean)
## 2023 2024
## 28.325 28.550
tapply(suhu, tahun, var)
## 2023 2024
## 0.1784091 0.2045455
Interpretasi
Mean naik dari 28.325 ke 28.550 (selisih 0.225°C). Perubahan ini relatif kecil, tapi konsisten dengan tren naik yang terlihat di plot.
Variansi juga naik sedikit (0.178 ke 0.205), tapi masih dalam skala yang mirip (tidak melonjak drastis).
Kesimpulan:
Variansi bisa dibilang relatif stabil (perbedaan kecil), tapi mean tidak sepenuhnya stabil karena ada kecenderungan naik dari tahun ke tahun. Ini salah satu tanda ketidakstasioneran dalam mean.
acf(suhu_ts, lag.max = 12)
Interpretasi
Dari plot terlihat pola berikut:
Lag 1 (~0.55): korelasi positif dan signifikan (melewati garis putus-putus biru), artinya nilai suhu bulan ini sangat berkaitan dengan bulan sebelumnya.
Lag 2–4: ACF turun tajam, bahkan menjadi negatif dan sempat melewati batas signifikansi di sekitar lag 3 (~ -0.5), ini menunjukkan pola musiman.
Lag 5–7: nilai ACF kembali naik mendekati nol/positif kecil, lalu turun lagi ke arah negatif di lag 8–9, ini mengonfirmasi adanya gelombang berulang.
Lag ~12: ACF naik kembali ke nilai positif cukup tinggi (~0.4, mendekati/menyentuh batas signifikansi), ini adalah ciri khas data musiman dengan periode 12 bulan, nilai suatu bulan berkorelasi kuat dengan nilai bulan yang sama satu tahun sebelumnya.
Kesimpulan pola ACF:
Pola ACF ini tidak turun cepat menuju nol (yang jadi ciri data stasioner), melainkan menunjukkan pola naik-turun berulang secara periodik, tinggi di awal, turun/negatif di pertengahan, lalu naik lagi mendekati lag 12. Ini adalah indikasi kuat adanya struktur musiman (seasonality) pada data suhu.
Box.test(suhu, lag = 12, type = "Box-Pierce")
##
## Box-Pierce test
##
## data: suhu
## X-squared = 27.653, df = 12, p-value = 0.006215
Interpretasi
Hipotesis: - H0: tidak ada autokorelasi (data bersifat white noise/independen) - H1: ada autokorelasi
Karena p-value (0.006) < 0.05 maka tolak H0.
Kesimpulan
Ada autokorelasi yang signifikan secara keseluruhan hingga lag 12. Artinya nilai suhu di satu bulan berhubungan erat dengan nilai-nilai sebelumnya,data tidak acak/independen, ada pola/struktur waktu yang jelas.
adf.test(suhu)
##
## Augmented Dickey-Fuller Test
##
## data: suhu
## Dickey-Fuller = -2.6421, Lag order = 2, p-value = 0.3278
## alternative hypothesis: stationary
Interpretasi
Hipotesis: - H0: data memiliki unit root, tidak stasioner - H1: data stasioner
Karena p-value (0.3278) > 0.05 maka gagal tolak H0.
Kesimpulan:
Secara statistik, tidak cukup bukti untuk mengatakan data ini stasioner. Data suhu Kota Cilegon 2023–2024 belum stasioner, kemungkinan besar karena adanya tren naik dan pola musiman yang konsisten dengan temuan di langkah 1–4.