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

Connected

Bài tập

Đá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.

Hướng dẫn

100 XP
  • Dùng subset() để tạo tập huấn luyện cho gold gồm 1000 quan sát đầu tiên. Gán vào train.
  • 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ào naive_fc. Đặt h cho 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ào mean_fc. Đặt h cho 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.