MulaiMulai sekarang secara gratis

Peramalan data mingguan

Untuk data mingguan, sulit menangani musiman menggunakan model ETS atau ARIMA karena panjang musimannya terlalu besar (sekitar 52). Sebagai gantinya, Anda dapat menggunakan regresi harmonik yang memanfaatkan fungsi sinus dan cosinus untuk memodelkan pola musiman.

Fungsi fourier() memudahkan pembuatan harmonik yang diperlukan. Semakin tinggi orde (\(K\)), semakin "bergelombang" pola musimannya. Dengan \(K=1\), polanya berupa kurva sinus sederhana. Anda dapat memilih nilai \(K\) dengan meminimalkan nilai AICc. Seperti yang Anda lihat di video, fourier() menerima deret waktu yang wajib, jumlah suku Fourier yang wajib untuk dibuat, dan jumlah baris opsional yang diperlukan untuk peramalan:

> # fourier(x, K, h = NULL)

> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
                    seasonal = FALSE, lambda = 0)
> fit %>%
    forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
    autoplot() + ylim(1.6, 5.1)

Data gasoline yang telah dimuat sebelumnya berisi data mingguan produk bensin motor jadi di AS. Pada latihan ini, Anda akan memasang regresi harmonik pada himpunan data ini dan meramalkan 3 tahun ke depan.

Latihan ini adalah bagian dari kursus

Peramalan di R

Lihat Kursus

Petunjuk latihan

  • Siapkan matriks xreg bernama harmonics menggunakan metode fourier() pada gasoline dengan orde \(K=13\) yang dipilih untuk meminimalkan AICc.
  • Pasang model regresi dinamis ke fit. Atur xreg sama dengan harmonics dan seasonal menjadi FALSE karena musiman ditangani oleh peubah penjelas.
  • Siapkan matriks xreg baru bernama newharmonics dengan cara serupa, lalu hitung peramalan untuk tiga tahun ke depan sebagai fc.
  • Terakhir, plot peramalan fc.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Set up harmonic regressors of order 13
harmonics <- fourier(___, K = ___)

# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)

# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)

# Plot forecasts fc
___
Edit dan Jalankan Kode