Lựa chọn mô hình chuỗi thời gian: AIC so với SSE ngoài mẫu và tính tương đương của chúng


9

AIC thường được đề xuất làm tiêu chí để so sánh các mô hình cho dự báo chuỗi thời gian. Xem ví dụ này trong bối cảnh mô hình hồi quy động :

AIC có thể được tính cho mô hình cuối cùng và giá trị này có thể được sử dụng để xác định các yếu tố dự đoán tốt nhất. Đó là, quy trình nên được lặp lại cho tất cả các tập hợp con của các yếu tố dự đoán sẽ được xem xét và mô hình có giá trị AICc thấp nhất được chọn.

Tại sao không so sánh các mô hình dựa trên hiệu suất ngoài mẫu của chúng? (ví dụ: chọn mô hình có SSE thấp nhất trong dự báo ngoài mẫu). Tôi đã đọc một số sách giáo khoa và trang web về dự báo chuỗi thời gian và không tìm thấy cuộc thảo luận này. Gần nhất tôi nhận được là mục blog này về Sự kiện và ngụy biện của AIC :

AIC không thực sự là một biện pháp trong mẫu của người Viking. Vâng, nó được tính toán bằng cách sử dụng dữ liệu đào tạo. Nhưng không có triệu chứng, tối thiểu hóa AIC tương đương với giảm thiểu MSE xác thực chéo một lần cho dữ liệu cắt ngang và tương đương với giảm thiểu MSE dự báo một bước ngoài mẫu cho các mô hình chuỗi thời gian. Đặc tính này là những gì làm cho nó trở thành một tiêu chí hấp dẫn để sử dụng trong việc lựa chọn các mô hình để dự báo.

Trong một ví dụ tôi đã làm việc (tuy nhiên không thể đăng các lô ở đây; tôi cần danh tiếng hơn trong trang này), tôi đã thử cả hai cách tiếp cận và hầu hết thời gian AIC và SSE ngoài mẫu không mang lại kết quả như nhau kết quả. Quy trình tôi sử dụng như sau:

  1. Tôi đã chia dữ liệu trong các mẫu đào tạo và kiểm tra (tại một điểm tùy ý; một câu hỏi về điều này bên dưới)
  2. Tôi ước tính các mô hình cạnh tranh (ARIMA với các biến hồi quy bên ngoài, thay đổi các tham số ARIMA và các biến hồi quy) bằng cách sử dụng mẫu đào tạo (230 tiết đầu tiên; tất cả các mô hình đều có cùng số lượng quan sát để AIC có thể so sánh được).
  3. Sau đó, tôi dự báo loạt cho các giai đoạn tương tự như mẫu thử nghiệm (giai đoạn 231-260).
  4. Đối với mỗi mô hình, tôi đã tính SSE đơn giản như trong đó là giá trị quan sát của chuỗi (mẫu thử) và là giá trị được dự báo bởi mô hình.SSE= =Σt= =231260(yt^-yt)2ytyt^
  5. Tôi đã so sánh mô hình được chỉ định bởi AIC (được tính toán sử dụng dữ liệu đào tạo) với mô hình có SSE ngoài mẫu thấp nhất. Hầu hết thời gian các mô hình được chọn là khác nhau (và ít nhất là về mặt trực quan, các mô hình được chọn bởi SSE hoạt động tốt hơn).

Nếu ai đó có thể giải thích cho tôi những gì đang xảy ra đằng sau điều này, tôi sẽ rất biết ơn. Tôi rõ ràng không phải là một chuyên gia trong việc này. Tôi chỉ cố gắng dạy bản thân mình một chút, vì vậy xin lỗi nếu tôi bỏ qua điều gì đó quan trọng trong sách giáo khoa tôi đã đọc.

Cuối cùng, một câu hỏi liên quan đến việc phân tách dữ liệu trong các mẫu đào tạo và kiểm tra cho chuỗi thời gian. Dường như với tôi có một cái gì đó khác biệt cơ bản so với việc sử dụng cùng một quy trình cho dữ liệu cắt ngang. Đối với dữ liệu cắt ngang, bạn có thể lấy hai mẫu ngẫu nhiên từ toàn bộ dữ liệu của mình. Đối với chuỗi thời gian, điều này không có nhiều ý nghĩa. Vì vậy, bạn cần lấy một điểm tùy ý để phân chia chuỗi trong các mẫu đào tạo và kiểm tra. Điều thường là mô hình tốt nhất là khác nhau cho mỗi điểm tùy ý. Có lẽ đó là lý do tại sao phương pháp này dường như không được sử dụng thường xuyên. Đây có phải là lý do tại sao AIC được ưa thích để lựa chọn mô hình? (Cho rằng "không có triệu chứng, giảm thiểu AIC là ... tương đương với giảm thiểu MSE dự báo một bước ra khỏi mẫu cho các mô hình chuỗi thời gian".)

Câu trả lời:


6

Tại sao không so sánh các mô hình dựa trên hiệu suất ngoài mẫu của chúng?

Tất nhiên, bạn có thể làm điều đó. Tôi cho rằng ưu điểm của AIC là tính toán nhanh hơn và ít mã hóa hơn (trong khi AIC thường được báo cáo tự động như một phần của chẩn đoán mô hình, xác thực chéo cho chuỗi thời gian có thể không có sẵn trong phần mềm yêu thích của bạn).

Tôi đã thử cả hai cách tiếp cận và hầu hết thời gian AIC và SSE ngoài mẫu không cho kết quả như nhau.

Bạn dường như không thực hiện xác nhận chéo đúng cách. Đầu tiên, bạn chỉ phân tách dữ liệu một lần trong khi bạn phải chia dữ liệu nhiều lần. Thứ hai, bạn đã đánh giá hiệu suất dự báo dựa trên một thử nghiệm dự báo nhiều chân trời khác nhau thay vì nhiều thử nghiệm dự báo một chân trời cố định. Có lẽ do đó bạn có sự khác biệt giữa AIC và xác nhận chéo

Khi thực hiện xác nhận chéo trong cài đặt chuỗi thời gian, bạn có thể sử dụng các cửa sổ cuộn. Bạn sẽ quan sát từ đến trong đó là chiều dài cửa sổ và cuộn từ 1 đến trong đó là cỡ mẫu. Bạn sẽ ước tính mô hình của bạn trong mỗi cửa sổ cuộn và dự đoán trước một giai đoạn. Sau đó, bạn sẽ thu thập các dự đoán này và so sánh chúng với các giá trị thực tế. Điều đó sẽ cung cấp cho bạn một số liệu mẫu hiệu suất dự báo khi sử dụng xác thực chéo trong cài đặt chuỗi thời gian.tt+mmtT-m-1T

Xem thêm Hyndman và Athanasopoulos "Dự báo: nguyên tắc và thực hành", phần 2.5 (cuộn xuống hết cỡ) và Bergmeir et al. "Một lưu ý về tính hợp lệ của xác thực chéo để đánh giá dự đoán chuỗi thời gian" (2015, tài liệu làm việc).

ít nhất là về mặt trực quan, những [mô hình] được chọn bởi SSE hoạt động tốt hơn

Có thể là phần dư của mô hình không hoàn toàn có phân phối giả định hoặc mô hình có một số lỗi khác làm mất hiệu lực AIC của nó theo một cách nào đó. Đó là một lý do tại sao độ chính xác dự báo ngoài mẫu có thể được ưu tiên hơn AIC trong lựa chọn mô hình.


Cảm ơn, tôi sẽ xác nhận chéo như bạn đề xuất và tôi sẽ đăng những gì tôi tìm thấy. Rất cám ơn
lập trình
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.