2000の異なる製品の時系列予測の戦略?


9

まず第一に、私の質問は非常に広範であり、そのためにこの質問に答えるのが難しいかもしれないことを理解しています。

2000以上のさまざまな製品の予測/予測を行う必要がある「問題」にアプローチする方法について何かアドバイスはありますか?つまり、製品ごとに異なる予測/予測が必要です。私は週レベルで2年間の履歴データを持っています(つまり、製品ごとの週あたりの需要)。

これを短期間で行う必要があります。これを行うには約1週間かかるため、比較的優れた予測モデルをすばやく作成できる方法を探しています。各製品のモデルを作成し、そのパフォーマンスを1つずつ綿密に検査するのは、時間がかかりすぎます。

分散に基づいて製品をセグメント化することを考えたので、分散が低い製品の単純なモデルを使用できます。これは理想的ではないかもしれませんが、作成する必要のあるモデルの数を絞り込むための簡単な方法です。

この問題への取り組みについて、実際的なアドバイスをいただければ幸いです。


1
それらの類似製品はありますか?階層的な予測のためにこのシッターを検索することで利益を得られるかもしれません
kjetil b halvorsen

回答:


11

@StephanKolassaの回答のフォローアップ:

  • Rの予測パッケージのETS()がおそらく最良かつ最速の選択であることは、ステファンにも同意します。ETSで良好な結果が得られない場合は、FacebookのProphetパッケージを使用することもできます(Auto.arimaは使いやすいですが、私の経験では、2週間の週次データはARIMAモデルに十分なデータと境界を接していません)。個人的には、Prophetは、プロモーションやホリデーイベントのデータが利用できる場合に使いやすいと感じました。実際の課題は、多数の時系列にわたって予測アルゴリズムを効率的に反復する方法のコーディングの課題です。予測生成を自動化する方法の詳細については、この応答を確認できます。

  • 需要予測では、何らかの階層的な予測が頻繁に実行されます。つまり、2000の製品があり、製品ごとに個別の予測が必要ですが、予測に役立つ可能性のある製品間に類似点があります。製品を製品階層に沿ってグループ化するいくつかの方法を見つけてから、階層予測を使用して精度を向上させます。個々の製品レベルで予測を探しているので、トップダウンの階層アプローチを試してみてください。

  • もう少し遠くまで行きますが、私はそれを呼びたいと思います:AmazonとUberはこのタイプの問題にニューラルネットワークを使用しますすべての時系列をまとめて。最終的には、各製品の個別の予測(Uberの場合は、製品ではなく都市ごとのトラフィック/需要)になることに注意してください。大規模なモデル(LSTMディープラーニングモデル)を使用して、すべてを一度に実行しています。この考え方は、ニューラルネットワークが異なる製品の履歴間の類似性から学習してより良い予測を生み出すという意味で、階層的予測と精神的に似ています。Uberチームは、コードの一部を利用可能にしました(M4競争Githubリポジトリを通じて))、しかしそれはC ++コードです(統計群衆のお気に入りの言語とは異なります)。Amazonのアプローチはオープンソースではないため、予測を行うには有料のAmazon Forecastサービスを使用する必要があります。


2番目のコメントに関して:売上予測と需要予測を区別する必要があります。需要に制約はありません。ある商品が突然人気になり、顧客が200ユニットを必要とする場合、手元に50ユニットしかない場合でも、需要は200ユニットのままです。

実際には、需要を直接観察することは非常に難しいため、需要の代理として販売を使用します。これは、顧客が製品を購入したいが利用できない状況を考慮していないため、問題があります。これに対処するには、過去の販売データとともに、在庫レベルと在庫切れに関する情報をモデルに直接含めるか、予測用のモデルを生成する前に時系列前処理するために使用します。

通常、制約なしの予測は、最初に予測エンジンによって生成され、次に計画システムに渡されます。次に計画システムが、指定した制約(つまり、需要は500ユニットですが、利用できるのは300ユニットのみ)を他の制約(安全在庫、プレゼンテーション在庫、予算の制約、プロモーションや新製品の導入などの計画...)-ただし、これは、それ自体は予測ではなく、計画と在庫管理の一般的な規範に該当します。


1
@Amonet「製品ファミリレベルで予測してから、製品レベルに分解しますよね?」はい。
Skander H.

3
+1、すべて非常に良い点。階層的予測に関して、私は最適な調整の大ファンです。私と他の人は、階層のすべてのレベルでトップダウンとボトムアップを上回っていることを繰り返し発見しました。さらに、それは中心に最適化アルゴリズムであるため、制約を考慮することができます。(たとえば、一部のシリーズのボリュームが少ない場合、制約のない調整は負の予測につながる可能性があります。)ただし、無修正の需要予測を目指す必要があることに同意します...
Stephan Kolassa


2
@usεr11852:2年はちょうど2サイクルです。季節差では、1サイクルを失います。したがって、季節的なARIMAは、差分によってデータの半分を失います。データが5サイクル未満の季節のARIMAは使用しません。...
ステファンコラサ

1
@usεr11852:これは、調整がパーセンテージの用語ではなく絶対的な用語で多かれ少なかれバランスがとれているため、相対的に言えば、一番下のシリーズが「多すぎる」と調整されたいくつかの分析を思い出させます。次にmgcv::pcls()和解のために使用し、合計行列を手動で入力しました。これには2つの利点がありました:(1)調整された予測が負にならないようにするなど、ボックスの制約を設定できる、(2)調整に重み付けできるので、各シリーズの履歴平均の逆数を使用しました調整問題に対処する重みとして。
ステファンコラサ

8

非常に一般的なアドバイスしか提供できません。

  • プロモーションやカレンダーイベント、季節性、トレンド、ライフサイクルなどの強力な要因はありますか?その場合は、それらをモデルに含めます。たとえば、プロモーションの売上を後退させ、(指数平滑法またはARIMAを使用して)残差をモデル化できます。
  • 複数の時系列モデルをシリーズに適合させるのに適度にうまく機能するソフトウェアパッケージがあります。その後、2000シリーズを単純に繰り返すことができます。これは、コーヒー1杯よりも多くの実行時間を必要としないはずです。私は特にR ets()forecastパッケージ内の関数をお勧めします(auto.arima()週次データの場合は関数を少なくします。
  • 少なくとも、この教科書など、予測の教科書を読み飛ばしてください。forecast上記で推奨するパッケージを使用しています。
  • あなたの最終的な目的は何ですか?公平な予測が必要ですか?次に、MSEを使用してポイント予測を評価します。あなたのボーナスはMAPEに依存しますか?次に、MAPEの問題のこのリストが役立つ場合があります。安全量を設定するには予測が必要ですか?次に、平均予測ではなく、分位予測が必要です。(forecastパッケージの関数はそれらを与えることができます。)

より具体的な質問がある場合は、CVに投稿してください。


4
@ŁukaszGrad:FPP2を試してみた場合、私たちの本では新しいことはわかりません。Ord et al。のPrinciples of Business Forecasting(2nd ed。)は、より深く掘り下げています(アクセスできる場合は、ここで確認しました)。...
ステファンコラサ

3
... IIFを見たりその出版物Foresightを読んだり、今年6月にテッサロニキで開催されるISF、または今年の11月に開催されるForesight Practitioner Conferenceのいずれかの会議に参加したりすると利益を得るかもしれません。どこにいるかに応じて、ノースカロライナ州ケアリーのSASキャンパス。ISFはやや学問的指向ですが、最近では、参加者の約33%が産業界から来ており、通常は開業医のトラックがあります。
Stephan Kolassa、

2
(完全な開示:私はこれらすべてに関与しているので、私の推奨事項を大粒の塩でとってください。会議の1つに参加する場合は、私を見つけて挨拶してください!)
Stephan Kolassa

1
@SkanderH:forecast()フィットしたモデルでコマンドを使用して(つまり、ets()またはの出力auto.arima())、levelパラメーターを指定します。?forecast.etsand ?forecast.Arima(大文字に注意)を参照してください。
ステファンコラサ

1
@StephanKolassaもう1つの回答を受け入れました。これはあなたの回答のフォローアップであり、人々はあなたの役立つアドバイスも読む傾向があるからです。
Amonet

1

元のシリーズの分散に基づいてセグメント化することは、最良のモデルはスケーリングに対して不変であるはずなので、私には意味がありません。系列を検討してモデル化し、時系列の各値に1000を掛けます。

決定論的な構造(パルス/レベルシフト/現地時間の傾向)または自動回帰の季節性と有馬構造の両方を持つ可能性のある大量生産方程式の観点から、コンピューターベースのスクリプトを実行する必要があります。決定論的構造を想定していない、または同じような固定された想定を想定している単純な自動アリマソリューションに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.