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

Connected

Bài tập

So sánh auto.arima() và ets() trên dữ liệu không có mùa vụ

Thống kê AICc hữu ích để chọn giữa các mô hình trong cùng một lớp. Ví dụ, bạn có thể dùng nó để chọn một mô hình ETS hoặc để chọn một mô hình ARIMA. Tuy nhiên, bạn không thể dùng nó để so sánh ETS và ARIMA vì chúng thuộc hai lớp mô hình khác nhau.

Thay vào đó, bạn có thể dùng cross-validation theo chuỗi thời gian để so sánh một mô hình ARIMA và một mô hình ETS trên dữ liệu austa. Vì tsCV() yêu cầu các hàm trả về đối tượng dự báo, bạn sẽ thiết lập một vài hàm đơn giản để khớp mô hình và trả về các dự báo. Các đối số của tsCV() là một chuỗi thời gian, hàm dự báo, và chân trời dự báo h. Xem đoạn mã từ chương 2 dưới đây:

e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
  e[, h] <- tsCV(goog, naive, h = h)
  ...

Bên cạnh đó, nhớ rằng toán tử pipe trong R lấy giá trị ở bên trái và truyền nó làm đối số cho những gì ở bên phải, từng bước, từ trái sang phải. Đây là một ví dụ dựa trên mã bạn đã thấy ở chương trước:

# Vẽ dự báo 20 năm cho chuỗi lynx được mô hình hóa bằng ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

Trong bài tập này, bạn sẽ so sánh MSE của hai hàm dự báo áp dụng cho austa, và vẽ dự báo của hàm cho kết quả tốt nhất. Nhắc lại, austa đã được nạp vào không gian làm việc của bạn.

Hướng dẫn

100 XP
  • Điền vào hàm farima() để dự báo kết quả của auto.arima(). Làm theo cấu trúc của mã đã viết sẵn trong fets() vốn làm điều tương tự cho ets().
  • Tính các sai số cross-validated cho mô hình ETS trên austa bằng tsCV() với sai số một bước, và lưu vào e1.
  • Tính các sai số cross-validated cho mô hình ARIMA trên austa bằng tsCV() với sai số một bước, và lưu vào e2.
  • Tính MSE cross-validated cho mỗi lớp mô hình và loại bỏ các giá trị thiếu. Tham khảo chương trước nếu bạn không nhớ cách tính MSE.
  • Tạo và vẽ dự báo 10 năm cho các giá trị tương lai của austa bằng lớp mô hình tốt nhất.