1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Dự báo bằng R

Connected

Bài tập

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.

Hướng dẫn

100 XP
  • Tạo ma trận xreg tên là harmonics bằng phương thức fourier() trên gasoline vớ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. Đặt xreg bằng harmonics và seasonal bằng FALSE vì yếu tố mùa vụ đã được xử lý qua các biến hồi quy.
  • Tạo ma trận xreg mới tên là newharmonics theo cách tương tự, rồi tính dự báo cho 3 năm tới và lưu vào fc.
  • Cuối cùng, vẽ biểu đồ các dự báo fc.