ホームページ > 記事 > テクノロジー周辺機器 > 断続的な需要の予測におけるクロストン法の適用
Croston 法は、断続的な需要を予測するために使用される統計的手法です。需要が不確実性の高いスペアパーツ、コンサルティングサービス、医療用品など、需要が不安定かつ不定期な製品やサービスに適しています。この方法の利点は、シンプルで使いやすく、計算が速く、応用範囲が広いことであると同時に、従来の予測方法のいくつかの欠陥を回避できることです。 Croston メソッドは、断続的な需要の履歴データを分析することで、変化する傾向と需要の間隔を効果的に把握し、この情報に基づいて正確な需要予測を行うことができます。したがって、Croston メソッドは、断続的な需要の管理と計画において重要な応用価値があります。
Croston の方法の基本原理は、断続的な需要シーケンスを 2 つの部分 (需要発生間の時間間隔と需要量) に分解することです。この分解プロセスは、2 つの基本的な仮定に基づいています: 第 1 に、需要発生の時間間隔と需要量は互いに独立していること、第 2 に、需要量の分布は二項分布として近似できることです。これら 2 つの部分を分析および予測することで、断続的な需要の特性と変化をよりよく理解して予測できます。
Croston 法では、2 つの指数平滑化モデルを使用して、時間間隔と需要量を予測します。時間間隔の予測値を区間予測値と呼び、デマンドの予測値をデマンド予測値と呼びます。そして、2つの予測値を乗算することにより、全体の予測値が得られる。 2 つの指数平滑化モデルのパラメーターを決定することが、Croston の方法の鍵です。
実際のアプリケーションでは、Croston 法は次の手順で実行できます。
まず、間隔予測値を計算する必要があります。と需要予測値。間隔予測は単純な指数平滑法を使用して計算できますが、需要予測はクロストン法の式を使用して計算できます。
#2 番目のステップは、全体の予測値を計算することです。間隔予測と需要予測を乗算して、全体的な予測を取得します。 3 番目のステップは、予測結果の精度を評価することです。予測結果の精度は、平均絶対誤差 (MAE) または二乗平均平方根誤差 (RMSE) を使用して評価できます。同時に、誤差分析を実行して、予測結果の逸脱や異常を見つけることもできます。 クロストン法は、需要が小さい製品やサービス、または需要間隔が長い製品やサービスには適用できない場合があることに注意してください。このような場合、需要と時間間隔の変化が大きくなる可能性があるためです。より大きなランダム性の影響を受けます。また、クロストン法では予測精度を向上させるために、実際の状況に基づいたパラメータ調整も必要です。 Croston の方法の中心となるアイデアは、2 つのシーケンスの平均を平滑化することによって、将来の需要と需要の発生時間を予測することです。具体的には、需要時系列と需要量系列をそれぞれ以下の形式で表現します。y_t=\begin{cases} 1&\text{if demand occurs at time}t\ 0&\text{otherwise} \end{cases} p_t=\begin{cases} d_t&\text{if demand occurs at time}t\ 0&\text{otherwise} \end{cases}ここで、y_tは時刻tにおける需要の有無、p_tは時刻tにおける需要(需要がある場合)を表します。それが起こった場合)。次に、y_t と p_t の平均を計算して平滑化を実行します。具体的には、平均の計算式は次のとおりです。
\begin{aligned} \bar{y}_t&=\alpha y_t+(1-\alpha)\bar{y}_{t-1}\ \bar{p}_t&=\alpha p_t+(1-\alpha)\bar{p}_{t-1} \end{aligned}ここで、\alpha は平滑化係数で、通常は 0.1 ~ 0.3 です。この方法では、平滑化された平均を使用して需要予測を行います。具体的には、この手法による次回の需要発生時刻と需要量の予測式は次のとおりです。
\begin{aligned} \hat{y}_{t+1}&=\frac{1}{\bar{y}_t+\frac{1}{1-\alpha}}\ \hat{p}_{t+1}&=\frac{\bar{p}_t}{\bar{y}_t+\frac{1}{1-\alpha}} \end{aligned}Croston 手法には、需要予測の偏りを軽減するための補正項も含まれています。具体的には、需要時系列と需要量系列の補正と、平滑化係数の補正を行う。 以下は、断続的な需要予測に Croston メソッドを使用する Python コードの例です。
import pandas as pd import numpy as np def croston(y, forecast_len, alpha=0.2, init=None): """ Croston方法预测间歇性需求 参数: y:需求数据 forecast_len:预测长度 alpha:平滑系数,默认为0.2 init:初始值,默认为None 返回: 预测结果 """ # 初始化 y = np.asarray(y) n = len(y) if init is None: # 如果没有指定初始值,则使用第一个非零值作为初始值 init = np.nonzero(y)[0][0] p = np.zeros(n) y_hat = np.zeros(n+forecast_len) p_hat = np.zeros(n+forecast_len) y_hat[init] = y[init] p_hat[init] = y[init] # 平滑 for i in range(init+1, n): if y[i] > 0: # 如果有需求发生 y_hat[i] = alpha + (1 - alpha)*y[i-1] p_hat[i] = alpha*y[i] + (1 -alpha)*p[i-1] else: # 如果没有需求发生 y_hat[i] = (1 - alpha)*y_hat[i-1] p_hat[i] = (1 - alpha)*p_hat[i-1] # 预测 for i in range(n, n+forecast_len): y_hat[i] = (1 - alpha)*y_hat[i-1] p_hat[i] = (1 - alpha)*p_hat[i-1] return p_hat[-forecast_len:] # 示例 demand = [0, 0, 5, 0, 0, 7, 0, 0, 9, 0, 0, 6, 0] forecast_len = 5 result = croston(demand, forecast_len) print(result)上記のコードでは、断続的な需要予測に Croston メソッドを使用しています。需要 データが予測されました。このデータには 13 時点の需要状況が含まれており、そのうち 5 時点で需要が発生し、残りの時点での需要は 0 です。予測結果には、次の 5 つの時点の需要が含まれます。コードでは、最初のゼロ以外の値を初期値として使用して、平滑化係数を 0.2 に設定します。予測結果は [1.677, 1.342, 1.074, 0.859, 0.684] で、次の 5 つの時点での需要がそれぞれ 1.677、1.342、1.074、0.859、0.684 であることを示しています。
以上が断続的な需要の予測におけるクロストン法の適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。