Đánh giá độ chính xác dự báo của các phương pháp không theo mùa
Trong khoa học dữ liệu, training set (tập huấn luyện) là tập dữ liệu dùng để khám phá các mối quan hệ có thể có. Test set (tập kiểm tra) là tập dữ liệu dùng để kiểm chứng độ mạnh của các mối quan hệ tiềm năng đó. Khi bạn tách một tập dữ liệu thành hai phần này, thường sẽ dành nhiều dữ liệu hơn cho huấn luyện và ít hơn cho kiểm tra.
Một hàm có thể dùng để tạo tập huấn luyện và tập kiểm tra là subset(), trả về một phần con của chuỗi thời gian, trong đó các đối số tùy chọn start và end được chỉ định bằng chỉ số.
> # x là một vector số hoặc chuỗi thời gian
> # Lấy các quan sát từ 101 đến 500
> train <- subset(x, start = 101, end = 500, ...)
> # Lấy 500 quan sát đầu tiên
> train <- subset(x, end = 500, ...)
Như bạn đã thấy trong video, một hàm khác, accuracy(), tính nhiều thống kê độ chính xác dự báo dựa trên dự báo và các quan sát thực tế tương ứng. Hàm này đủ "thông minh" để tự tìm các quan sát liên quan nếu bạn đưa cho nó nhiều dữ liệu hơn phạm vi bạn đang dự báo.
> # f là một đối tượng thuộc lớp "forecast"
> # x là một vector số hoặc chuỗi thời gian
> accuracy(f, x, ...)
Các thước đo độ chính xác bao gồm root mean squared error (RMSE), là căn bậc hai của mean squared error (MSE). Việc tối thiểu hóa RMSE (tương ứng với tăng độ chính xác) là tương đương với tối thiểu hóa MSE.
Chuỗi thời gian gold đã được nạp sẵn gồm giá vàng theo ngày trong 1108 ngày. Ở đây, bạn sẽ dùng 1000 ngày đầu làm tập huấn luyện và tính dự báo cho 108 ngày còn lại. Các dự báo này sẽ được so sánh với giá trị thực tế của các ngày đó bằng các hàm dự báo đơn giản naive(), mà bạn đã dùng trước đó trong chương này, và meanf(), hàm cho dự báo bằng trung bình của tất cả quan sát. Bạn sẽ cần chỉ định từ khóa h (số lượng giá trị cần dự báo) cho cả hai hàm.
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
subset()để tạo tập huấn luyện chogoldgồm 1000 quan sát đầu tiên. Gán vàotrain. - Tính dự báo cho tập kiểm tra (phần dữ liệu còn lại) bằng
naive()và gán vàonaive_fc. Đặthcho phù hợp. - Tiếp theo, tính dự báo cho cùng tập kiểm tra bằng
meanf()và gán vàomean_fc. Đặthcho phù hợp. - So sánh các thống kê độ chính xác dự báo của hai phương pháp bằng hàm
accuracy(). - Dựa trên kết quả trên, lưu các dự báo có độ chính xác cao hơn vào
bestforecasts.
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 the training data as train
train <- subset(___, end = ___)
# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)
# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)
# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)
# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___