Đánh giá dự báo của chuỗi thời gian


11

Giả sử tôi có hơn 20.000 chuỗi thời gian hàng tháng kéo dài từ ngày 1 tháng 1 đến ngày 11 tháng 12. Mỗi trong số này đại diện cho dữ liệu bán hàng toàn cầu cho một sản phẩm khác nhau. Điều gì sẽ xảy ra nếu, thay vì tính toán dự báo cho từng người trong số họ, tôi chỉ muốn tập trung vào một số lượng nhỏ sản phẩm "thực sự quan trọng"?

Tôi có thể xếp hạng các sản phẩm đó theo tổng doanh thu hàng năm và cắt giảm danh sách bằng cách sử dụng Pareto cổ điển. Tuy nhiên, dường như đối với tôi, mặc dù chúng không đóng góp nhiều vào điểm mấu chốt, một số sản phẩm rất dễ dự báo rằng việc bỏ chúng đi sẽ là phán xét tồi. Một sản phẩm bán được 50 đô la mỗi tháng trong 10 năm qua nghe có vẻ không nhiều, nhưng nó đòi hỏi rất ít nỗ lực để tạo ra các dự đoán về doanh số trong tương lai mà tôi có thể làm điều đó.

Vì vậy, giả sử tôi chia các sản phẩm của mình thành bốn loại: doanh thu cao / dễ dự báo - doanh thu thấp / dễ dự báo - doanh thu cao / khó dự báo - doanh thu thấp / khó dự báo.

Tôi nghĩ sẽ hợp lý nếu chỉ để lại những chuỗi thời gian thuộc về nhóm thứ tư. Nhưng làm thế nào chính xác tôi có thể đánh giá "dự báo"?

Hệ số biến đổi có vẻ như là một điểm khởi đầu tốt (tôi cũng nhớ đã thấy một số bài viết về nó một thời gian trước đây). Nhưng điều gì sẽ xảy ra nếu chuỗi thời gian của tôi thể hiện tính thời vụ / thay đổi cấp độ / hiệu ứng lịch / xu hướng mạnh mẽ?

Tôi sẽ tưởng tượng rằng tôi chỉ nên dựa vào đánh giá của tôi về sự biến đổi của thành phần ngẫu nhiên chứ không phải là một trong những dữ liệu "thô". Hay tôi đang thiếu một cái gì đó?

Có ai vấp phải một vấn đề tương tự trước đây? Các bạn sẽ làm thế nào về nó?

Như mọi khi, bất kỳ trợ giúp được đánh giá rất cao!

Câu trả lời:


9

Đây là một ý tưởng thứ hai dựa trên stl.

Bạn có thể điều chỉnh phân tách stl cho từng chuỗi và sau đó so sánh lỗi tiêu chuẩn của thành phần còn lại với giá trị trung bình của dữ liệu gốc bỏ qua bất kỳ năm nào. Các chuỗi dễ dự báo nên có tỷ lệ nhỏ (phần còn lại) so với trung bình (dữ liệu).

Lý do tôi đề nghị bỏ qua một phần năm là tính thời vụ sẽ ảnh hưởng đến giá trị trung bình của dữ liệu. Trong ví dụ trong câu hỏi, tất cả các chuỗi có bảy năm hoàn thành, vì vậy nó không phải là một vấn đề. Nhưng nếu chuỗi mở rộng một phần vào năm 2012, tôi đề nghị giá trị trung bình chỉ được tính đến cuối năm 2011 để tránh ô nhiễm trung bình theo mùa.

Ý tưởng này cho rằng có nghĩa là (dữ liệu) có ý nghĩa - đó là dữ liệu có nghĩa là đứng yên (ngoài tính thời vụ). Nó có thể sẽ không hoạt động tốt cho dữ liệu với các xu hướng mạnh hoặc gốc đơn vị.

Nó cũng giả định rằng một stl phù hợp chuyển thành dự báo tốt, nhưng tôi không thể nghĩ ra một ví dụ mà điều đó không đúng vì vậy có lẽ đó là một giả định ok.


Xin chào Rob, cảm ơn vì đã quay lại với tôi. Tôi thích ý tưởng của bạn vì vậy tôi sẽ dùng thử và xem nó có cung cấp mức lọc mong muốn không. Chỉ một điều nữa, có bất kỳ lý do cụ thể cho việc sử dụng trung bình (dữ liệu) trên trung bình (phần còn lại) không? Tôi sợ một số chuỗi thời gian của tôi có thể có một xu hướng hơi mạnh mẽ. STL loạt phân hủy, thay vào đó, không nên. Ngoài ra, bạn có nghĩ rằng cách tiếp cận chúng tôi vạch ra cho đến nay để đánh giá khả năng dự báo / phát hiện ra các ngoại lệ là đủ tốt để được thực hiện trong môi trường kinh doanh thực sự? Hay là quá "nghiệp dư"? Bạn có thường làm điều khác đi nhiều không?
Bruder

trung bình (phần còn lại) sẽ gần bằng không. Bạn muốn so sánh nhiễu với quy mô của dữ liệu, vì vậy trung bình (dữ liệu) sẽ ổn. Không chắc chắn làm thế nào để đối phó với xu hướng của bạn. Tôi sẽ kiểm tra cách tiếp cận cẩn thận trên một loạt dữ liệu trước khi tin vào kết quả.
Rob Hyndman

8

Đây là một vấn đề khá phổ biến trong dự báo. Giải pháp truyền thống là tính toán sai số phần trăm tuyệt đối trung bình (MAPEs) trên mỗi mục. MAPE càng thấp, mặt hàng càng dễ dự báo.

Một vấn đề với đó là nhiều chuỗi chứa các giá trị 0 và MAPE không được xác định.

Tôi đã đề xuất một giải pháp trong Hyndman và Koehler (IJF 2006) [Phiên bản in sẵn] sử dụng các lỗi tỷ lệ tuyệt đối trung bình (MASEs). Đối với chuỗi thời gian hàng tháng, việc chia tỷ lệ sẽ dựa trên dự báo ngây thơ theo mùa trong mẫu. Đó là nếu là một quan sát tại thời điểm , dữ liệu có sẵn từ lần 1 đến và sau đó một lỗi được chia tỷ lệ là , trong đó là dự báo của bằng bất kỳ phương pháp dự báo nào bạn đang triển khai cho mục đó. Lấy giá trị tuyệt đối trung bình của các lỗi được chia tỷ lệ để lấy MASE. Ví dụ: bạn có thể sử dụng nguồn gốc cán (akayttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Qy^tytxác thực chéo chuỗi thời gian ) và lấy giá trị tuyệt đối trung bình của các lỗi một bước (hoặc -step).h

Sê-ri dễ dự báo nên có giá trị MASE thấp. Ở đây "dễ dự báo" được giải thích liên quan đến dự báo ngây thơ theo mùa. Trong một số trường hợp, có thể có ý nghĩa hơn khi sử dụng một biện pháp cơ sở thay thế để mở rộng kết quả.


Xin chào Rob, cảm ơn bạn đã trả lời của bạn. Như mọi khi, cách tiếp cận của bạn rất gọn gàng, đơn giản và hợp lý. Tôi đã đánh giá giá trị gia tăng dự báo ( FTV ) theo mô hình ngây thơ theo mùa để ý tưởng đánh giá khả năng dự báo của bạn bằng cách sử dụng cùng một "biện pháp cơ sở" nghe có vẻ rất hấp dẫn. Vấn đề duy nhất là, để tính toán MASE, tôi cần chọn một phương pháp dự báo và chạy mô phỏng cho mỗi chuỗi 20000 thời gian của mình. Tôi đã hy vọng tôi có thể phát hiện ra loạt dự báo dễ dự đoán trước, để tôi có thể tiết kiệm thời gian tính toán.
Bruder

Vì một số lý do, tôi nghĩ rằng chuỗi thời gian có độ biến thiên tương đối thấp hơn (ví dụ CV) sẽ nhất thiết dẫn đến dự báo dễ dàng và chính xác hơn. Tính toán dự báo và sau đó, và chỉ sau đó đo lỗi, loại thách thức, tôi nghĩ, người bạn đời của tôi. Tôi đoán điều tôi đang cố nói là tôi nhìn vào MASE giống như một thước đo độ chính xác dự báo hơn là thước đo dự báo. Nhưng tôi có thể sai ... :)
Bruder 17/212

1
@Bruder: 2 suy nghĩ: 1. Bạn có thể nhìn vào một dự báo ngây thơ đơn giản, thay vì dự báo theo mùa. Một dự báo ngây thơ đơn giản chỉ sử dụng giá trị trước đó của chuỗi thời gian và sẽ đón đầu một xu hướng mạnh mẽ (với độ trễ 1 kỳ). 2. Phân hủy STL là một ý tưởng tốt. Nếu phần dư rất nhỏ so với các thành phần theo mùa và theo xu hướng, thì có lẽ bạn có thể dễ dàng dự báo chuỗi.
Zach

1
@Rob - Thế còn phân hủy STL? Tôi có thể có được hai con chim bằng một viên đá (tức là phát hiện ra các ngoại lệ và đánh giá khả năng dự báo, do đó đánh giá khả năng dự báo "thật")? Điều đó làm tôi ngạc nhiên về bao nhiêu điều tôi có thể hoàn thành chỉ với STL và một người mẫu ngây thơ theo mùa. Nhưng bạn có biết điều gì xảy ra khi mọi thứ quá tốt là sự thật ...
Bruder

1
Tôi tin rằng chỉ số của tổng nên là thay vì . ti
blakeoft

5

Bạn có thể quan tâm đến PremCA: Phân tích thành phần dự báo (từ chối trách nhiệm: Tôi là tác giả). Như tên cho thấy, đây là một kỹ thuật giảm kích thước / phân tách nguồn mù (BSS) để tìm ra hầu hết các tín hiệu có thể dự báo từ nhiều chuỗi thời gian đa biến - nhiều hoặc ít hơn. Đối với trường hợp cụ thể của bạn là chuỗi 20.000 thời gian, nó có thể không phải là điều nhanh nhất để làm (giải pháp liên quan đến phổ công suất đa biến và lặp lại, cập nhật phân tích của máy đo trọng lượng tốt nhất; hơn nữa tôi đoán nó có thể gặp vấn đề .)pn

Ngoài ra còn có gói PremCA có sẵn tại CRAN (một lần nữa: Tôi là tác giả) thực hiện chức năng cơ bản; ngay bây giờ, nó hỗ trợ chức năng để ước tính thước đo dự báo cho chuỗi thời gian đơn biến và nó có một số chức năng bao bọc tốt cho phổ đa biến (một lần nữa chuỗi 20.000 thời gian có thể là quá nhiều để xử lý cùng một lúc).Ω(xt)

Nhưng có lẽ bạn có thể thử sử dụng biện pháp MASE do Rob đề xuất để thực hiện phân tách lưới thô của 20.000 trong một số nhóm phụ và sau đó áp dụng riêng cho từng nhóm.


0

Câu trả lời này là rất muộn, nhưng đối với những người vẫn đang tìm kiếm một thước đo dự báo thích hợp cho chuỗi thời gian nhu cầu sản phẩm, tôi khuyên bạn nên xem xét entropy gần đúng .

Sự hiện diện của các mẫu dao động lặp đi lặp lại trong một chuỗi thời gian làm cho nó dễ dự đoán hơn một chuỗi thời gian trong đó các mẫu như vậy không có. ApEn phản ánh khả năng các mẫu quan sát tương tự sẽ không được theo sau bởi các quan sát tương tự bổ sung. [7] Một chuỗi thời gian chứa nhiều mẫu lặp đi lặp lại có ApEn tương đối nhỏ; một quá trình ít dự đoán hơn có ApEn cao hơn.

Nhu cầu sản phẩm có xu hướng có một thành phần theo mùa rất mạnh, làm cho hệ số biến đổi (CV) không phù hợp. ApEn (m, r) có thể xử lý chính xác điều này. Trong trường hợp của tôi, vì dữ liệu của tôi có xu hướng có tính thời vụ hàng tuần mạnh mẽ, tôi đã đặt tham số m = 7 và r = 0,2 * std theo khuyến nghị ở đây .


Trong bài viết trên wikipedia, có nghĩa là gì? u
blakeoft

Tôi thấy bây giờ Tôi nghĩ rằng và có liên quan với nhau, nhưng thực tế họ không như vậy. uu
blakeoft
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.