複数の店舗にわたる数千の製品の製品需要予測


9

私は現在、需要予測タスクに取り組んでおり、数千の店舗にわたる数万の製品に関するデータを使用しています。より具体的には、私は各店舗の製品ごとの数年分の毎日の売上データを持っています。私の目標は、各店舗の各アイテムの将来の売上を1日先に予測することです。その後2日先など

これまでは、各製品とストアのペアを1つの時系列に分解し、Neal Wagnerの論文「現実のシステムで複数の時系列を予測するインテリジェントな手法」で行われたように、各時系列の予測を行うことを検討しました。つまり、特定の店舗での製品の売上の履歴情報のみを使用して、その店舗でのその製品の将来の売上を予測します。

ただし、私はKaggleを閲覧しており、CorporacionónFavorita Grocery Sales Forecastingのような競争では、すべての店舗とすべての製品の情報を使用して将来の売上を予測するという別のアプローチが提案されています。私が理解しているように、すべての店舗のすべての製品の履歴販売情報がトレーニングセットにダンプされ、そこからモデルが学習して将来の販売を予測します。これは、従来の時系列手法とは非常に異なりますが、明らかに、競争の結果に基づいて機能します。

後者の方法は、有望でより堅牢なようです。ただし、何億ものデータポイントを処理する必要があるという問題があります。

私のタスクにより適した方法はどれですか?同様の問題に取り組んだことがある人にとって、どの方法論をお勧めしますか?


1
これに取り組んだときは、単一​​の時系列アプローチを使用しましたが、同様の店舗(たとえば、天気が類似する地理的セグメント)の類似の製品(たとえば、カテゴリー)から季節性を引き出しています。しかし、これは一部には、時間の制約によるものです。すべてのデータが同時に到着したわけではなく、最後のデータ到着から予測が必要になるまでの時間はわずかでした(マイナスの場合もあります)。これらは統計上の問題ではなく、運用上の考慮事項でした。
zbicyclist

@zbicyclistこれを共有してくれてありがとう!同様の製品の季節性を予測にどのように組み込むことができたのでしょうか。たとえば、平均の季節性を取り、それをモデルの別の機能として追加しましたか?
Meraxes

非季節性化、モデル化、予測、再季節化。
zbicyclist

回答:


9

Neal らが使用したアプローチはお勧めしません。これらのデータは、次の2つの理由で一意です。

  • 彼らは通常、他の小売製品データのデータよりも密度が高く、より安定している食品データを処理しています。特定の場所で週に数十の牛乳パックまたは卵パックを販売し、同じ製品を何十年も販売してきました。これは、3週間または4週間ごとに1つのアイテムを販売することは珍しいことではないファッションや自動車の部品と比較して、 1年か2年しか利用できないデータ。

  • 彼らは店舗ではなく倉庫を予測しています。1つの倉庫で複数の店舗がカバーされるため、データは平均よりもさらに密集しています。実際、倉庫は通常、店舗の自然な集約/グループ化レベルとして使用されるため、すでに本質的に店舗データのグループ化を実行しています。

データの性質から、個々の時系列を直接モデル化する必要はありません。しかし、ほとんどの小売業者のデータは、個々のSKU /ストアレベルであまりにもまばらで、それを引き出すには不十分です。

zbicyclistが言ったように、この問題は通常、階層的予測または多階層予測を使用して対処されます。商業需要予測パッケージはすべて、何らかの形式の階層的予測を使用します

アイデアは、製品とストアを類似の製品と地域にグループ化することです。これらの製品では、集計予測が生成され、全体的な季節性と傾向を決定するために使用されます。これらは、トップダウンアプローチを使用して分散され、個々のSKUに対して生成されたベースライン予測と調整されます。 / storeの組み合わせ。

zbicyclistが言及した課題に加えて、より大きな問題は、製品と店舗の最適なグループを見つけることは容易ではなく、ドメインの専門知識と実証分析の組み合わせが必要なことです。製品と店舗は通常、複雑な階層(製品の場合は部門、サプライヤー、ブランドなど、場所の場合は地域、気候、倉庫など)でグループ化され、過去の売上とともに予測アルゴリズムに送られます。データ自体。


Meraxesコメントへの対処

CorporaciónFavorita Grocery Sales Forecasting Kaggle Competitionで使用されているメソッドでは、明示的なグループ化を行わずに、モデルが複数の(おそらく無関係の)製品の販売履歴から学習できるようにしますか?これはまだ有効なアプローチですか?

ストア、アイテム、ファミリー、クラス、クラスターをカテゴリカル機能として使用することで、グループ化を暗黙的に行っています。

階層的予測に関するRob Hyndmanのセクションを少し読んだところです。トップダウンアプローチを実行すると、集計レベルの信頼できる予測が得られるように思えます。ただし、これには、最下位ノードの予測に影響を与える可能性がある集計のために情報が失われるという大きな欠点があります。また、「時間ダイナミクス、特別イベントなどの個々のシリーズ特性をキャプチャして利用することができない」場合もあります。

これに関する3つのポイント:

  • 彼が指摘する欠点は、データのグループ化に依存します。すべての製品とストアを集約すると、はい、これは問題になります。たとえば、すべての地域のすべての店舗を集計すると、地域固有の季節性が曖昧になります。しかし、関連するグループのみに集約する必要があります。私が指摘したように、これを見つけるにはいくつかの分析と実験が必要になります。
  • 小売需要の特定のケースでは、下部ノード(つまり、SKU /ストア)の時系列に非常に少ない情報が含まれていることが多いため、「集約による情報の喪失」について心配していません。そもそもレベル。
  • SKU /ストア固有のイベントの場合、チームでアプローチする方法は、予測を生成する前にイベント固有の効果を削除し、予測が生成された後で後で追加し直すことです。詳細はこちらをご覧ください。

この洞察をありがとう!CorporaciónFavorita Grocery Sales Forecasting Kaggle Competitionで使用されているメソッドでは、明示的なグループ化を行わずに、モデルが複数の(おそらく無関係の)製品の販売履歴から学習できるようにしますか?これはまだ有効なアプローチですか?
Meraxes

階層的予測に関するRob Hyndmanのセクションを少し読んだところです。トップダウンアプローチを実行すると、集計レベルの信頼できる予測が得られるように思えます。ただし、最下位ノードの予測に影響を与える可能性がある集計のために情報が失われるという大きな欠点があります。また、「時間ダイナミクス、特別イベントなどの個々のシリーズ特性をキャプチャして利用することができない」場合もあります。
Meraxes

@meraxesは私の編集を参照してください。
Skander H.

入念な説明をありがとう、@ Alex!あなたの最後の点について、これは少し話題から外れるかもしれませんが、休日を同じように扱いますか?つまり、予測を生成する前にそれらの影響を削除し、後でそれらを再び追加しますか?
Meraxes

^私の予測はデータの外れ値に非常に敏感であるように見えるので、質問します。私の現在のアプローチは、データをwinsorizeし、次にNeal Wagnerらの論文で説明されているように、シリーズスパイクアナライザーを使用することです。休日で説明できるスパイクを特定して、後で追加する。別の方法は、休日の影響を取り除くためにダミー変数を使用することであることを理解しています。どのアプローチをお勧めしますか?
Meraxes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.