ANALISIS DERET WAKTU TUGAS 2

Berikut data suhu udara rata-rata bulanan Kota Cilegon periode Januari 2023–Desember 2024 (°C)

Data Rata-Rata Suhu Bulanan Tahun 2023–2024

Rata-Rata Suhu Bulanan Tahun 2023–2024
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.

# Data suhu udara rata-rata bulanan Kota Cilegon
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
)

# Membuat objek time series
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
# 1. Plot runtun waktu
plot(
  suhu_ts,
  type = "o",
  xlab = "Tahun",
  ylab = "Suhu Udara (°C)",
  col = "purple",
  main = "Runtun Waktu Suhu Udara Kota Cilegon"
)

Interpretasi

Berdasarkan plot, suhu udara Kota Cilegon selama Januari 2023 hingga Desember 2024 mengalami perubahan setiap bulannya. Suhu cenderung meningkat hingga sekitar April–Mei, kemudian mulai menurun pada bulan-bulan setelahnya. Pola tersebut terlihat hampir sama pada tahun 2023 dan 2024. Hal ini menunjukkan bahwa suhu memiliki pola yang berulang setiap tahun, sehingga data diduga memiliki pola musiman.

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

# 2. Rata-rata dan variansi per tahun
suhu_2023 <- window(suhu_ts, start = c(2023, 1), end = c(2023, 12))
suhu_2024 <- window(suhu_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

Interpretasi

Rata-rata suhu tahun 2023 sebesar 28,325°C, sedangkan tahun 2024 sebesar 28,550°C. Selisih rata-rata kedua tahun hanya 0,225°C. Variansi tahun 2023 sebesar 0,1784 dan tahun 2024 sebesar 0,2045, yang juga memiliki nilai cukup berdekatan. Jadi rata-rata dan variansi suhu pada tahun 2023 dan 2024 relatif stabil, karena perbedaan nilainya tidak terlalu besar.

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

# 3. ACF sampai lag 12
acf_suhu <- acf(
  suhu_ts,
  lag.max = 12,
  plot = FALSE
)

hasil_acf <- data.frame(
  Lag = 0:12,
  ACF = round(as.numeric(acf_suhu$acf), 3)
)

hasil_acf
##    Lag    ACF
## 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
# Plot ACF
acf(
  suhu_ts,
  lag.max = 12,
  main = "ACF Suhu Udara Kota Cilegon"
)

Interpretasi

Dari hasil ACF, nilai pada lag 1 cukup tinggi yaitu 0,541, kemudian pada lag 2 sampai lag 4 nilainya menurun dan menjadi negatif. Setelah itu, nilai ACF kembali naik dan turun di beberapa lag. Pada lag 12, nilainya kembali positif dan cukup tinggi yaitu 0,430.

Jadi, pola ACF cenderung berulang, bukan turun terus secara cepat atau lambat. Nilai yang kembali cukup tinggi pada lag 12 menunjukkan adanya pola musiman tahunan pada data suhu.

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

# 4. Uji signifikansi r_k
n <- length(suhu_ts)

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

batas
## [1] 0.4000833
# Menentukan ACF yang signifikan
nilai_acf <- as.numeric(acf_suhu$acf[-1])

hasil_signifikansi <- data.frame(
  Lag = 1:12,
  ACF = round(nilai_acf, 3),
  Batas_95 = round(batas, 3),
  Signifikan = abs(nilai_acf) > batas
)

hasil_signifikansi
##    Lag    ACF Batas_95 Signifikan
## 1    1  0.541      0.4       TRUE
## 2    2 -0.195      0.4      FALSE
## 3    3 -0.499      0.4       TRUE
## 4    4 -0.250      0.4      FALSE
## 5    5  0.126      0.4      FALSE
## 6    6  0.175      0.4      FALSE
## 7    7 -0.056      0.4      FALSE
## 8    8 -0.290      0.4      FALSE
## 9    9 -0.310      0.4      FALSE
## 10  10 -0.034      0.4      FALSE
## 11  11  0.307      0.4      FALSE
## 12  12  0.430      0.4       TRUE
# Uji Box-Pierce sampai lag 12
box_pierce <- Box.test(
  suhu_ts,
  lag = 12,
  type = "Box-Pierce"
)

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

Interpretasi

Dari uji signifikansi \(r_k\), ada 3 lag yang signifikan, yaitu lag 1, lag 3, dan lag 12, karena nilai ACF-nya melewati batas ±0,400. Artinya, masih ada hubungan antara suhu pada beberapa waktu dengan waktu sebelumnya.

Untuk uji Box-Pierce, diperoleh nilai p-value = 0,006215. Karena nilainya lebih kecil dari 0,05, maka \(H_0\) ditolak. Jadi, masih terdapat hubungan antarwaktu pada data suhu tersebut.

Jadi data suhu belum bisa dikatakan stasioner sepenuhnya, karena masih terdapat autokorelasi pada beberapa lag. Walaupun rata-rata dan variansinya relatif stabil, hasil uji menunjukkan masih ada hubungan antarwaktu dalam data.