Bắt đầu ngayBắt đầu miễn phí

Đánh giá độ chính xác của các phương pháp theo mùa

Như bạn đã học ở chương đầu, hàm window() chỉ định startend của một chuỗi thời gian bằng các mốc thời gian tương ứng thay vì giá trị chỉ số. Mỗi đối số có thể được truyền dưới dạng một vector như c(year, period) mà bạn cũng đã dùng làm đối số cho ts(). *Một lần nữa, period ở đây chính là quarter (quý).

Tại đây, bạn sẽ dùng số lượt khách theo quý của Melbourne (visnights[, "VICMetro"]) để tạo ba tập huấn luyện khác nhau, lần lượt bỏ đi 1, 2 và 3 năm cuối cùng. Hãy xem trước dữ liệu visnights đã được nạp sẵn trong console trước khi bắt đầu bài tập; điều này sẽ giúp bạn xác định giá trị đúng cho từ khóa h (số bước dự báo) trong các phương pháp dự báo của bạn.

Sau đó, với mỗi tập huấn luyện, hãy tính dự báo cho một năm tiếp theo, và cuối cùng so sánh mean absolute percentage error (MAPE) của các dự báo bằng accuracy(). Vì sao bạn nghĩ MAPE lại khác nhau nhiều như vậy?

Bài tập này là một phần của khóa học

Dự báo bằng R

Xem khóa học

Hướng dẫn bài tập

  • Dùng window() để tạo ba tập huấn luyện từ visnights[,"VICMetro"], lần lượt bỏ đi 1, 2 và 3 năm cuối; đặt tên là train1, train2train3. Thiết lập từ khóa end cho phù hợp.
  • Tính dự báo một năm cho mỗi tập huấn luyện bằng phương pháp snaive(). Đặt tên lần lượt là fc1, fc2fc3.
  • Theo cấu trúc của mã mẫu, so sánh MAPE của ba bộ dự báo bằng hàm accuracy() với tập kiểm tra của bạn.

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.

# Create three training series omitting the last 1, 2, and 3 years
train1 <- window(visnights[, "VICMetro"], end = c(2015, 4))
train2 <- ___
train3 <- ___

# Produce forecasts using snaive()
fc1 <- snaive(___, h = ___)
fc2 <- ___
fc3 <- ___

# Use accuracy() to compare the MAPE of each series
accuracy(fc1, visnights[, "VICMetro"])["Test set", "MAPE"]
___
___
Chỉnh sửa và Chạy Mã