Dự báo dữ liệu theo tuần
Với dữ liệu theo tuần, rất khó xử lý tính mùa vụ bằng các mô hình ETS hoặc ARIMA vì độ dài mùa vụ quá lớn (xấp xỉ 52). Thay vào đó, bạn có thể dùng hồi quy điều hòa (harmonic regression), sử dụng các hàm sin và cos để mô hình hóa mùa vụ.
Hàm fourier() giúp bạn dễ dàng tạo ra các điều hòa cần thiết. Bậc (\(K\)) càng cao thì mẫu hình mùa vụ càng "uốn lượn". Với \(K=1\), đó là một đường sin đơn giản. Bạn có thể chọn giá trị \(K\) bằng cách tối thiểu hóa AICc. Như bạn đã thấy trong video, fourier() nhận vào chuỗi thời gian bắt buộc, số lượng hạng Fourier cần tạo, và tùy chọn số dòng cần dự báo:
> # 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)
Dữ liệu gasoline đã được nạp sẵn gồm số liệu theo tuần về sản phẩm xăng động cơ thành phẩm của Mỹ. Trong bài tập này, bạn sẽ khớp một mô hình hồi quy điều hòa cho bộ dữ liệu này và dự báo 3 năm tiếp theo.
Bài tập này là một phần của khóa học
Dự báo bằng R
Hướng dẫn bài tập
- Tạo ma trận
xregtên làharmonicsbằng phương thứcfourier()trêngasolinevới bậc \(K=13\) (đã được chọn để tối thiểu hóa AICc). - Khớp một mô hình hồi quy động vào
fit. ĐặtxregbằngharmonicsvàseasonalbằngFALSEvì yếu tố mùa vụ đã được xử lý qua các biến hồi quy. - Tạo ma trận
xregmới tên lànewharmonicstheo cách tương tự, rồi tính dự báo cho 3 năm tới và lưu vàofc. - Cuối cùng, vẽ biểu đồ các dự báo
fc.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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
___