Tugas 2 - Analisis Deret Waktu

Data suhu udara rata-rata bulanan Kota Cilegon periode Januari 2023 - Desember 2024 (Celcius):

library(knitr)
## Warning: package 'knitr' was built under R version 4.4.3
data_suhu <- data.frame(
  Tahun = rep(c(2023, 2024), each = 12),
  Bulan = rep(month.abb, 2),
  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
    )
)

kable(data_suhu)
Tahun Bulan Suhu
2023 Jan 27.8
2023 Feb 27.9
2023 Mar 28.3
2023 Apr 28.9
2023 May 29.1
2023 Jun 28.6
2023 Jul 28.0
2023 Aug 28.1
2023 Sep 28.4
2023 Oct 28.7
2023 Nov 28.2
2023 Dec 27.9
2024 Jan 28.0
2024 Feb 28.1
2024 Mar 28.6
2024 Apr 29.2
2024 May 29.4
2024 Jun 28.8
2024 Jul 28.2
2024 Aug 28.3
2024 Sep 28.6
2024 Oct 28.9
2024 Nov 28.4
2024 Dec 28.1

1. Membuat Objek Time Series dan Plot Runtun Waktu

a. Objek Time Series

data_ts <- ts(data_suhu$Suhu,
              start = c(2023,1),
              frequency = 12)
data_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

plot(data_ts, 
     main = "Suhu Udara Rata-rata Bulanan Kota Cilegon",
     xlab = "Tahun",
     ylab = "Suhu Udara (C)",
     col = "blue",
     lwd = 2
     )

text(time(data_ts), data_ts,
     labels = data_ts,
     pos = 3, 
     cex = 0.7
     )

Berdasarkan grafik runtun waktu, suhu udara rata-rata bulanan Kota Cilegon tahun 2023 hingga 2024 mengalami fluktuasi dari waktu ke waktu. Rata-rata bulanan dengan suhu tertinggi setiap tahunnya yaitu berada pada bulan Mei. Grafik tersebut memperlihatkan adanya pola musiman tahunan, meskipun di tahun 2024 rata-rata setiap bulannya mengalami kenaikan dari tahun sebelumnya.

2. Hitung Rata-rata dan Variansi Data /tahun

a. Rata-rata

tapply(data_suhu$Suhu, data_suhu$Tahun, mean)
##   2023   2024 
## 28.325 28.550

Rata-rata mengalami peningkatan dengan selisih 0.255°C

b. Variansi Data

tapply(data_suhu$Suhu, data_suhu$Tahun, var)
##      2023      2024 
## 0.1784091 0.2045455

Variansi juga mengalami peningkatan dari 0.1784 menjadi 0.2045.

Berdasarkan rata-rata dan variansi suhu antara tahun 2023 dan 2024, keduanya memiliki perbedaan yang relatif kecil, sehingga data dapat dikatakan relatif stabil.

3. Hitung dan Plot ACF hingga lag 12

ACF <- acf(data_ts, lag.max = 12, plot = FALSE)

ACF$acf 
## , , 1
## 
##              [,1]
##  [1,]  1.00000000
##  [2,]  0.54051342
##  [3,] -0.19464434
##  [4,] -0.49941185
##  [5,] -0.25034597
##  [6,]  0.12631470
##  [7,]  0.17471630
##  [8,] -0.05587462
##  [9,] -0.28951010
## [10,] -0.30974952
## [11,] -0.03355937
## [12,]  0.30739690
## [13,]  0.43025187
plot(ACF,
     xaxt = "n",
     main = "ACF Suhu Udara Kota Cilegon",
     xlab = "Lag (k)")

axis(1,
     at = 0:12/12,
     labels = 0:12)

Pola ACF menunjukkan pola berulang secara periodik. Nilai ACF pada lag 1 (0.54051342) dan lag 12 (0.43025187) memiliki nilai positif yang cukup tinggi, sedangkan pada lag 3 (-0.49941185) nilainya negatif cukup kuat. Pola ini berfluktuasi antara positif dan negatif hingga kembali meningkat pada lag 12, sehingga diindikasikan adanya pola musiman tahunan.

4. Terapkan Uji Signifikansi rk dan Box-Pierce

a. rk

  1. Hipotesis

H0: 𝜌k = 0 (tidak ada autokorelasi)

H1: 𝜌k ≠ 0 (ada autokorelasi)

  1. Taraf signifikansi

α = 5% = 0.05

Selang kepercayaan:

\[ -1.96\sqrt{\frac{1}{n}} < \rho_k < 1.96\sqrt{\frac{1}{n}} \]

# Batas signifikansi 

n <- length(data_ts)

batas <- 1.96 / sqrt(n)
batas
## [1] 0.4000833

Batas selang kepercayaannya adalah -0.4000833 < \(\rho_k\) < 0.4000833

  1. Uji signifikansi
(rk <- as.vector(ACF$acf)[-1])
##  [1]  0.54051342 -0.19464434 -0.49941185 -0.25034597  0.12631470  0.17471630
##  [7] -0.05587462 -0.28951010 -0.30974952 -0.03355937  0.30739690  0.43025187
hasil <- data.frame(
  Lag = 1:12,
  rk = rk,
  Keputusan = ifelse(abs(rk) > batas,
                     "Signifikan",
                     "Tidak signifikan")
)

hasil
##    Lag          rk        Keputusan
## 1    1  0.54051342       Signifikan
## 2    2 -0.19464434 Tidak signifikan
## 3    3 -0.49941185       Signifikan
## 4    4 -0.25034597 Tidak signifikan
## 5    5  0.12631470 Tidak signifikan
## 6    6  0.17471630 Tidak signifikan
## 7    7 -0.05587462 Tidak signifikan
## 8    8 -0.28951010 Tidak signifikan
## 9    9 -0.30974952 Tidak signifikan
## 10  10 -0.03355937 Tidak signifikan
## 11  11  0.30739690 Tidak signifikan
## 12  12  0.43025187       Signifikan
  1. Keputusan

Lag 1 (Signifikan): suhu bulan sekarang berkaitan dengan suhu 1 bulan sebelumnya. \[ 0.54051342 > 0.4000833 \]

Lag 3 (Signifikan): suhu bulan sekarang berkaitan dengan suhu 3 bulan sebelumnya. \[ -0.49941185 < -0.4000833 \]

Lag 12 (Signifikan): suhu bulan sekarang berkaitan dengan suhu 12 bulan sebelumnya. \[ 0.43025187 > 0.4000833 \]

  1. Kesimpulan

Berdasarkan uji signifikansi rk pada taraf nyata 5%, nilai autokorelasi yang signifikan terdapat pada lag 1, lag 3, dan lag 12. Nilai ACF pada lag 1 dan 12 lebih besar dari batas atas selang kepercayaan, sedangkan nilai ACF pada lag 3 lebih kecil dari batas bawah. Hal ini menunjukkan bahwa data terdapat autokorelasi karena adanya ketergantungan nilai suhu antarwaktu, serta adanya indikasi pola musiman tahunan pada lag 12.

b. Box-Pierce

  1. Hipotesis

H0: data bersifat white noise (tidak berautokorelasi)

  1. Taraf signifikansi

α = 5% = 0.05

  1. Uji signifikansi
Box.test(data_suhu$Suhu, lag = 12, type = "Box-Pierce")
## 
##  Box-Pierce test
## 
## data:  data_suhu$Suhu
## X-squared = 27.653, df = 12, p-value = 0.006215
  1. Keputusan

Tolak H0 jika p-value < 0.05

  1. Kesimpulan

Hasil perhitungan Box-Pierce memperoleh nilai X-squared = 27.653. Karena p-value (0.006215) < 0.05, maka H0 ditolak. Artinya data tidak bersifat white noise (terdapat autokorelasi) yang signifikan sampai lag 12.

c. Uji Dickey Fuller

  1. Hipotesis

H0: \(\delta \geq 0\) (tidak stasioner)

H1: \(\delta < 0\) (stasioner)

  1. Taraf signifikansi

α = 5% = 0.05

  1. Uji Signifikansi
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
adf.test(data_suhu$Suhu)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data_suhu$Suhu
## Dickey-Fuller = -2.6421, Lag order = 2, p-value = 0.3278
## alternative hypothesis: stationary
  1. Keputusan

Tolak H0 jika p-value < 0.05

  1. Kesimpulan

Hasil uji Dickey Fuller memperoleh nilai ADF = -2.6421 dengan nilai p-value 0.3278. Karena p-value > 0.05, maka H0 gagal ditolak. Artinya, belum terdapat cukup bukti untuk menyatakan bahwa data bersifat stasioner, sehingga berdasarkan uji ADF data suhu tidak stasioner.