Soal

No 1

Buat objek ts dan plot runtun waktu dari data suhu tersebut

# Input data suhu
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
)

ts <- ts(suhu, start = c(2023, 1), frequency = 12)

label_bulan = c(
  "Jan-23", "Feb-23", "Mar-23", "Apr-23", "Mei-23", "Jun-23",
  "Jul-23", "Agu-23", "Sep-23", "Okt-23", "Nov-23", "Des-23",
  "Jan-24", "Feb-24", "Mar-24", "Apr-24", "Mei-24", "Jun-24",
  "Jul-24", "Agu-24", "Sep-24", "Okt-24", "Nov-24", "Des-24"
)

plot(
  ts,
  type = "o",
  pch = 16,
  main = "Suhu Udara Rata-rata Bulanan Kota Cilegon",
  xlab = "Bulan",
  ylab = "Suhu(°C)",
  xaxt = "n"
)
axis(1, at = time(ts), labels = label_bulan, las = 2)
abline(v = 2023.91667, col = "gray30", lwd = 2)
mtext("2023", side = 3, at = 2023.4, col = "gray30", font = 2)
mtext("2024", side = 3, at = 2024.4, col = "gray30", font = 2)

Dari plot time series menunjukkan bahwa suhu rata-rata bulanan Kota Cilegon memiliki pola yang hampir sama di tahun 2023 dan 2024.`Suhu cenderung meningkat pada awal tahun hingga sekitar bulan April - Mei dan menurun setelah bulan tersebut. kemudian suhu menurun pada pertengahan tahun, dan mengalami kenaikan kembali sekitar bulan September–Oktober, dan kembali menurun menjelang akhir tahun. Pola tahun 2024 berada sedikit lebih tinggi dibandingkan tahun 2023.

No 2

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

suhu_2023 <- window(
  ts,
  start = c(2023, 1),
  end = c(2023, 12)
)

suhu_2024 <- window(
  ts,
  start = c(2024, 1),
  end = c(2024, 12)
)

mean_2023 <- mean(suhu_2023)
mean_2024 <- mean(suhu_2024)

var_2023 <- var(suhu_2023)
var_2024 <- var(suhu_2024)

hasil_tahunan <- data.frame(
  Tahun = c(2023, 2024),
  Rata_rata = c(mean_2023, mean_2024),
  Variansi = c(var_2023, var_2024)
)

hasil_tahunan
##   Tahun Rata_rata  Variansi
## 1  2023    28.325 0.1784091
## 2  2024    28.550 0.2045455

Rata-rata suhu pada tahun 2023 sebesar 28,325°C, sedangkan pada tahun 2024 rata-rata suhu sebesar 28,550°C. Ini menunjukkan adanya peningkatan rata-rata suhu sebesar 0,225°C pada tahun 2024. Variansi suhu tahun 2023 sebesar 0,1784 dan tahun 2024 sebesar 0,2045.

No 3

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

# No 3
acf(
  ts,
  lag.max = 12,
  main = "ACF Suhu Udara Kota Cilegon"
)

acf_hasil <- acf(
  ts,
  lag.max = 12,
  plot = FALSE
)

acf_table <- data.frame(
  Lag = 1:12,
  ACF = as.numeric(acf_hasil$acf[2:13])
)

acf_table
##    Lag         ACF
## 1    1  0.54051342
## 2    2 -0.19464434
## 3    3 -0.49941185
## 4    4 -0.25034597
## 5    5  0.12631470
## 6    6  0.17471630
## 7    7 -0.05587462
## 8    8 -0.28951010
## 9    9 -0.30974952
## 10  10 -0.03355937
## 11  11  0.30739690
## 12  12  0.43025187

Plot ACF menunjukkan bahwa nilai autokoreelasi tidka mengalami penurunan secara cepat maupun lambat mendekati nol. Nilai ACF berubah dari positif ke negatif dan kemudia kembali naik menjadi positif.

No 4

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

# No 4a
n <- length(ts)

# Batas signifikansi 95%
batas <- 1.96 / sqrt(n)

batas
## [1] 0.4000833
rk <- as.numeric(acf_hasil$acf[2:13])

uji_rk <- data.frame(
  Lag = 1:12,
  r_k = rk,
  Batas_Bawah = -batas,
  Batas_Atas = batas
)

uji_rk$Keputusan <- ifelse(
  abs(uji_rk$r_k) > batas,
  "Signifikan",
  "Tidak signifikan"
)

uji_rk
##    Lag         r_k Batas_Bawah Batas_Atas        Keputusan
## 1    1  0.54051342  -0.4000833  0.4000833       Signifikan
## 2    2 -0.19464434  -0.4000833  0.4000833 Tidak signifikan
## 3    3 -0.49941185  -0.4000833  0.4000833       Signifikan
## 4    4 -0.25034597  -0.4000833  0.4000833 Tidak signifikan
## 5    5  0.12631470  -0.4000833  0.4000833 Tidak signifikan
## 6    6  0.17471630  -0.4000833  0.4000833 Tidak signifikan
## 7    7 -0.05587462  -0.4000833  0.4000833 Tidak signifikan
## 8    8 -0.28951010  -0.4000833  0.4000833 Tidak signifikan
## 9    9 -0.30974952  -0.4000833  0.4000833 Tidak signifikan
## 10  10 -0.03355937  -0.4000833  0.4000833 Tidak signifikan
## 11  11  0.30739690  -0.4000833  0.4000833 Tidak signifikan
## 12  12  0.43025187  -0.4000833  0.4000833       Signifikan
# No 4b
box_pierce <- Box.test(
  ts,
  lag = 12,
  type = "Box-Pierce"
)

box_pierce
## 
##  Box-Pierce test
## 
## data:  ts
## X-squared = 27.653, df = 12, p-value = 0.006215

Berdasarkan uji signifikansi autokorelasi, terdapat 3 lag yang memiliki rk di luar batas ±0,4001, yaitu lag ke-1, ke-3 dan ke-12. dengan demikian, terdapat, auto korelasi yang signifikan pada ketiga lag tersebut. Signifikansi pada lag ke-12 juga memperkuat indikasi adanya pola musiman tahunan pada data suhu.

Berdasarkan uji Box-Pierce diperoleh nilai statistik uji sebesar 27,653 dengan p-value sebesar 0,006215. Karena p-value lebih kecil dari taraf signifikansi 0,05, maka \(H_0\) ditolak. Artinya, secara bersamaan masih terdapat autokorelasi yang signifikan hingga lag ke-12 sehingga data bukan merupakan deret yang bersifat acak atau white noise.

Kesimpulan apakahdata stasioner

library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
hasil_adf <- adf.test(
  ts,
  alternative = "stationary"
)

hasil_adf
## 
##  Augmented Dickey-Fuller Test
## 
## data:  ts
## Dickey-Fuller = -2.6421, Lag order = 2, p-value = 0.3278
## alternative hypothesis: stationary
# Keputusan ADF
if (hasil_adf$p.value < 0.05) {
  cat(
    "p-value =", hasil_adf$p.value,
    "\nKeputusan: Tolak H0",
    "\nKesimpulan: Data stasioner."
  )
} else {
  cat(
    "p-value =", hasil_adf$p.value,
    "\nKeputusan: Gagal menolak H0",
    "\nKesimpulan: Data belum stasioner."
  )
}
## p-value = 0.3277814 
## Keputusan: Gagal menolak H0 
## Kesimpulan: Data belum stasioner.

Hasil uji ADF menunjukkan bahwa data belum stasioner, meskipun rata-rata dan variansi tahunan terlihat relatif stabil. Hal ini berarti kestabilan secara visual dan deskriptif belum cukup untuk menyimpulkan stasioneritas secara formal. Dengan p-value sebesar 0,3278, belum terdapat bukti yang cukup untuk menyatakan bahwa data sudah stasioner.