Làm thế nào để phân chia dữ liệu cho dự đoán chuỗi thời gian?


22

Tôi có dữ liệu bán hàng lịch sử từ một tiệm bánh (hàng ngày, hơn 3 năm). Bây giờ tôi muốn xây dựng một mô hình để dự đoán doanh số trong tương lai (sử dụng các tính năng như ngày trong tuần, biến thời tiết, v.v.).

Làm thế nào tôi nên chia dữ liệu cho phù hợp và đánh giá các mô hình?

  1. Có cần phải là một đào tạo theo thời gian / xác nhận / phân tách thử nghiệm?
  2. Sau đó tôi có thể điều chỉnh siêu tham số với tập xác thực và xác thực không?
  3. Là (lồng nhau) xác nhận chéo là một chiến lược tồi cho một vấn đề chuỗi thời gian?


EDIT

Đây là một số liên kết tôi đã gặp sau khi theo URL được đề xuất bởi @ ene100:

  • Rob Hyndman mô tả "nguồn gốc dự báo cán" trong lý thuyết và trong thực tế (với mã R)
  • các thuật ngữ khác cho nguồn gốc dự báo cán là "tối ưu hóa đi bộ" ( ở đây hoặc ở đây ), "đường chân trời lăn" hoặc "nguồn gốc di chuyển"
  • Dường như những kỹ thuật này sẽ không được tích hợp vào scikit-learn trong tương lai gần, bởi vì nhu cầu và tính chuyên môn của các kỹ thuật này không rõ ràng (được nêu ở đây ).

đây là một gợi ý khác để xác nhận chéo chuỗi thời gian.

Câu trả lời:


8

Liên kết này từ blog của Rob Hyndman có một số thông tin có thể hữu ích: http://robjhyndman.com/hyndsight/crossvalidation/

Theo kinh nghiệm của tôi, việc chia dữ liệu thành các bộ theo thời gian (năm 1, năm 2, v.v.) và kiểm tra tính ổn định của thông số theo thời gian là rất hữu ích trong việc xây dựng một thứ gì đó mạnh mẽ. Hơn nữa, nếu dữ liệu của bạn là theo mùa hoặc có một cách rõ ràng khác để chia thành các nhóm (ví dụ: khu vực địa lý) thì việc kiểm tra tính ổn định của tham số trong các nhóm phụ đó cũng có thể giúp xác định mô hình sẽ mạnh mẽ như thế nào và liệu nó có phù hợp không mô hình riêng biệt cho các loại dữ liệu riêng biệt.

Tôi nghĩ rằng các bài kiểm tra thống kê có thể hữu ích nhưng kết quả cuối cùng cũng phải vượt qua "bài kiểm tra mùi".


3

1) Về mặt kỹ thuật, bạn không cần phải kiểm tra mẫu nếu bạn sử dụng AIC và các tiêu chí tương tự vì chúng giúp tránh tình trạng thừa.

3) Tôi không thấy cách bạn có thể làm CV tiêu chuẩn vì nó ngụ ý đào tạo mô hình chuỗi thời gian với một số giá trị còn thiếu. Thay vào đó, hãy thử sử dụng một cửa sổ cuộn để đào tạo và dự đoán phản ứng tại một hoặc nhiều điểm theo sau cửa sổ.


3
AIC trong chuỗi thời gian thường dựa trên một khoảng thời gian trước lỗi dự báo. Nó không nói nhiều về hiệu suất dự báo trước giai đoạn n. Do đó, nó hoàn toàn không đủ.
Aksakal

Bạn có thể cung cấp một tài liệu tham khảo?
James

1

Tôi thường tiếp cận các vấn đề từ góc độ Bayes. Trong trường hợp này, tôi sẽ xem xét sử dụng quá mức như một chiến lược. Điều này có nghĩa là thiết lập khả năng cho dữ liệu của bạn, nhưng bỏ qua một số kết quả của bạn. Hãy coi các giá trị đó là thiếu và mô hình hóa các kết quả bị thiếu bằng cách sử dụng các đồng biến tương ứng của chúng. Sau đó xoay qua dữ liệu được bỏ qua. Bạn có thể làm điều này bên trong, ví dụ, thủ tục CV 10 lần.

Khi được triển khai bên trong chương trình lấy mẫu, điều này có nghĩa là ở mỗi bước bạn rút ra một giá trị ứng cử viên của giá trị dữ liệu bị bỏ qua (bên cạnh các tham số của bạn) và đánh giá khả năng của nó so với mô hình đề xuất của bạn. Sau khi đạt được sự ổn định, bạn có các giá trị được lấy mẫu thực tế được đưa ra cho mô hình của bạn mà bạn có thể sử dụng để đánh giá lỗi dự đoán: các mẫu này trả lời câu hỏi "mô hình của tôi sẽ trông như thế nào nếu không có các giá trị này?" Lưu ý rằng những dự đoán này cũng sẽ kế thừa độ không đảm bảo từ độ không đảm bảo trong các ước tính hệ số, vì vậy khi bạn thu thập tất cả các giá trị dự đoán của mình cho, ví dụ: ngày 1 tháng 3 năm 2010, bạn sẽ có phân phối dự đoán cho ngày đó.

Thực tế là các giá trị này được lấy mẫu có nghĩa là bạn vẫn có thể sử dụng các thuật ngữ lỗi phụ thuộc vào việc có sẵn một chuỗi dữ liệu hoàn chỉnh (ví dụ: trung bình di chuyển), vì bạn có sẵn một giá trị kết quả được lấy mẫu ở mỗi bước.


1

Trong trường hợp của bạn, bạn không có nhiều lựa chọn. Bạn chỉ có một tiệm bánh, có vẻ như. Vì vậy, để chạy thử nghiệm ngoài mẫu, tùy chọn duy nhất của bạn là phân tách thời gian, tức là mẫu đào tạo sẽ bắt đầu từ thời điểm gần đây đến thời điểm gần đây và thời gian chờ đợi từ thời điểm đó đến ngày hôm nay.

yt= =f(t)+εtf(t)yS<t


Âm thanh đầy hứa hẹn. Chỉ số "s" trong y_s <= t là gì?
tobip

tySS<t

Tôi đoán doanh số bán bánh của tôi thay vì phụ thuộc vào các yếu tố ngoại sinh. Tôi không nghĩ rằng đó là một mô hình chuỗi thời gian rất năng động, ví dụ như giá cổ phiếu. Trong dữ liệu của tôi, Lỗi trung bình trung bình với CV 5 lần thông thường chỉ lớn hơn một chút so với CV chuỗi thời gian 5 lần duy trì thứ tự thời gian của các nếp gấp như được mô tả ở đây (ví dụ: 30,7 so với 33,8 cho ExtraTreesRegressor) . Không chắc chắn nếu đây là một cách hợp lệ để kiểm tra thực nghiệm cho một mô hình động?
tobip

Một cái gì đó như ARIMA sẽ là một mô hình năng động. Việc bán hàng thường kéo dài, tức là doanh số ngày hôm nay giống như ngày hôm qua.
Aksakal

0

Tuyên bố từ chối trách nhiệm: Phương pháp được mô tả ở đây không dựa trên việc đọc kỹ về phân loại. Đây là nỗ lực tốt nhất của tôi trong việc ứng dụng phương pháp CV gấp K cho phân tích thời gian đa biến với độ dài cửa sổ đầu vào tương đối ngắn (giả sử không phụ thuộc / thấp vào khoảng thời gian dài hơn), trong đó có vấn đề với sự hiện diện không đồng nhất của các nguồn dữ liệu giai đoạn thu thập dữ liệu.

Đầu tiên, chuỗi các quan sát được chuyển thành một loạt các cửa sổ lịch sử quan sát có độ dài window_length và với bước 1 giữa các cửa sổ (không có sải chân). Sau đó, nguyên tắc là phân chia tập dữ liệu cửa sổ trong "phân đoạn" dài hơn nhiều lần so với window_length (nhưng nhiều hơn số lượng phiên bản mô hình) và xử lý các phân đoạn (như thẻ chơi) làm dữ liệu xác thực cho các trường hợp mô hình riêng biệt. Để giữ cho các mô hình được phân tách rõ ràng hơn, một cửa sổ cách ly của window_length ở đầu mỗi phân đoạn được tổ chức trong tất cả các khóa đào tạo.

Các mô hình được đào tạo trên tất cả các phân đoạn ngoại trừ chính chúng và việc xác nhận được thực hiện trên các phân đoạn riêng của chúng. Việc xác thực bộ sưu tập / tập hợp các mô hình được thực hiện bằng cách tính tổng lỗi xác thực trên tất cả các phân đoạn, trong đó mỗi phân đoạn được xử lý bởi mô hình con tương ứng của nó. Thử nghiệm trên dữ liệu chưa xem có thể được thực hiện bằng cách sử dụng trung bình (hoặc kết hợp phù hợp khác) của các đầu ra của tất cả các mô hình được đào tạo.

Phương pháp này nhằm giảm sự phụ thuộc vào hệ thống (và nguồn dữ liệu) giống nhau trong toàn bộ thời gian thu thập dữ liệu. Nó cũng có ý định cung cấp cho mọi phần thô của dữ liệu có cùng ảnh hưởng đến mô hình. Lưu ý rằng để không cho phép các cửa sổ cách ly gây hại cho đào tạo, có một điểm là độ dài phân đoạn không phù hợp quá với các khoảng thời gian (dự kiến) xuất hiện trong dữ liệu, như (thường) theo chu kỳ hàng ngày, hàng tuần và hàng năm.

Mô hình đoàn có thể xử lý dữ liệu hoàn toàn mới một cách tồi tệ. (Tôi chưa biết.)

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.