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

1 Pesiapan Data

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

2 Buat objek ts dan plot runtun waktu dari data suhu tersebut

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.

3 Rata-rata & variansi per tahun, apakah keduanya relatif stabil?

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.

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

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.

5 Terapkan uji signifikansi 𝑟𝑘 dan Box-Pierce. Simpulkan apakah data ini dapat dikategorikan stasioner, dan jelaskan alasannya.

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.