Đá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 start và end 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
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,train2vàtrain3. Thiết lập từ khóaendcho 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,fc2vàfc3. - 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"]
___
___