Theo dõi câu trả lời của @StephanKolassa:
Tôi đồng ý với Stephan rằng ETS () từ gói dự báo trong R có lẽ là lựa chọn tốt nhất và nhanh nhất của bạn. Nếu ETS không cho kết quả tốt, bạn cũng có thể muốn sử dụng gói Prophet của Facebook (Auto.arima rất dễ sử dụng, nhưng hai năm dữ liệu hàng tuần không đủ dữ liệu cho mô hình ARIMA theo kinh nghiệm của tôi). Cá nhân tôi đã tìm thấy Prophet dễ sử dụng hơn khi bạn có sẵn các chương trình khuyến mãi và dữ liệu sự kiện, nếu không ETS () có thể hoạt động tốt hơn. Thử thách thực sự của bạn là một thách thức mã hóa về cách lặp lại hiệu quả thuật toán dự báo của bạn trong một số lượng lớn chuỗi thời gian. Bạn có thể kiểm tra phản hồi này để biết thêm chi tiết về cách tự động tạo dự báo .
Trong dự báo nhu cầu, một số hình thức dự báo phân cấp thường được thực hiện, tức là bạn có 2000 sản phẩm và bạn cần một dự báo riêng cho từng sản phẩm riêng biệt, nhưng có những điểm tương đồng giữa các sản phẩm có thể giúp dự báo. Bạn muốn tìm một số cách để nhóm sản phẩm lại với nhau theo phân cấp sản phẩm và sau đó sử dụng dự báo phân cấp để cải thiện độ chính xác. Vì bạn đang tìm kiếm dự báo ở cấp độ sản phẩm riêng lẻ, hãy xem thử cách tiếp cận phân cấp từ trên xuống.
Một cái gì đó hơi xa hơn một chút, nhưng tôi muốn gọi nó ra: Amazon và Uber sử dụng các mạng thần kinh cho loại vấn đề này, trong đó thay vì có một dự báo riêng cho từng chuỗi sản phẩm / thời gian, họ sử dụng một mạng thần kinh tái phát khổng lồ để dự báo tất cả các chuỗi thời gian với số lượng lớn. Lưu ý rằng họ vẫn kết thúc với các dự báo riêng cho từng sản phẩm (trong trường hợp của Uber là lưu lượng / nhu cầu của mỗi thành phố trái ngược với sản phẩm), họ chỉ sử dụng một mô hình lớn (mô hình học sâu LSTM) để làm tất cả cùng một lúc. Ý tưởng này tương tự về mặt tinh thần với dự báo phân cấp theo nghĩa là mạng lưới thần kinh học được từ sự tương đồng giữa lịch sử của các sản phẩm khác nhau để đưa ra dự báo tốt hơn. Nhóm Uber đã cung cấp một số mã của họ ( thông qua kho lưu trữ Github của cuộc thi M4), tuy nhiên, đó là mã C ++ (không chính xác là ngôn ngữ yêu thích của đám đông thống kê). Cách tiếp cận của Amazon không phải là nguồn mở và bạn phải sử dụng dịch vụ Dự báo Amazon trả phí của họ để thực hiện các dự báo.
Liên quan đến nhận xét thứ hai của bạn: Bạn cần phân biệt giữa dự báo doanh số và nhu cầu dự báo. Nhu cầu không bị giới hạn, nếu đột nhiên một mặt hàng phổ biến và khách hàng của bạn muốn 200 đơn vị, thì không có vấn đề gì khi bạn chỉ có 50 đơn vị trong tay, nhu cầu của bạn vẫn sẽ là 200 đơn vị.
Trong thực tế, rất khó để quan sát trực tiếp nhu cầu, vì vậy chúng tôi sử dụng bán hàng làm proxy cho nhu cầu. Điều này có một vấn đề bởi vì nó không giải thích cho các tình huống mà khách hàng muốn mua sản phẩm nhưng nó không có sẵn. Để giải quyết nó, cùng với dữ liệu bán hàng trong lịch sử, thông tin về mức tồn kho và lượng hàng tồn kho được đưa trực tiếp vào một mô hình hoặc được sử dụng để xử lý chuỗi thời gian trước khi tạo mô hình để dự báo .
Thông thường, một dự báo không bị ràng buộc được tạo ra trước tiên bởi một công cụ dự báo và sau đó được chuyển đến một hệ thống lập kế hoạch, sau đó thêm các ràng buộc mà bạn đề cập (nghĩa là nhu cầu là 500 đơn vị nhưng chỉ có 300 đơn vị) cùng với các ràng buộc khác (chứng khoán an toàn, chứng khoán thuyết trình, hạn chế về ngân sách, kế hoạch cho các chương trình khuyến mãi hoặc giới thiệu sản phẩm mới, v.v ...) - tuy nhiên, điều này nằm trong phạm vi chung của kế hoạch và quản lý hàng tồn kho, không dự báo theo từng se .