>  기사  >  기술 주변기기  >  간헐적 수요 예측에 Croston 방법 적용

간헐적 수요 예측에 Croston 방법 적용

王林
王林앞으로
2024-01-23 14:21:12744검색

간헐적 수요 예측에 Croston 방법 적용

Croston 방법은 간헐적인 수요를 예측하는 데 사용되는 통계 방법입니다. 예비 부품, 컨설팅 서비스, 의료용품 등 수요가 매우 불확실하고 불안정하고 불규칙한 수요가 있는 제품이나 서비스에 적합합니다. 이 방법의 장점은 간단하고 사용하기 쉽고 계산이 빠르며 적용 범위가 넓다는 점과 동시에 기존 예측 방법의 일부 결함을 피할 수 있다는 것입니다. 간헐적 수요의 과거 데이터를 분석함으로써 Croston 방법은 수요의 변화 추세와 간격을 효과적으로 포착하고 이 정보를 기반으로 정확한 수요 예측을 할 수 있습니다. 따라서 Croston 방법은 간헐적 수요를 관리하고 계획하는 데 중요한 응용 가치를 가지고 있습니다.

Croston 방법의 기본 원리는 간헐적 수요 시퀀스를 수요 발생 사이의 시간 간격과 수요량의 두 부분으로 분해하는 것입니다. 이 분해 과정은 두 가지 기본 가정을 기반으로 합니다. 첫째, 수요 발생과 수요 사이의 시간 간격은 서로 독립적입니다. 둘째, 수요 분포는 이항 분포로 근사화될 수 있습니다. 이 두 부분을 분석하고 예측함으로써 간헐적 수요의 특성과 변화를 더 잘 이해하고 예측할 수 있습니다.

Croston 방법은 두 가지 지수 평활 모델을 사용하여 시간 간격과 수요를 예측합니다. 시간 간격의 예측값을 간격 예측값, 수요 예측값을 수요 예측값이라고 합니다. 그리고 두 예측값을 곱하여 전체 예측값을 구한다. 두 지수평활 모델의 매개변수를 결정하는 것이 Croston 방법의 핵심입니다.

실제 응용에서 Croston 방법은 다음 단계를 통해 수행될 수 있습니다.

먼저 구간 예측값과 수요 예측값을 계산해야 합니다. 간격 예측은 단순 지수 평활을 사용하여 계산할 수 있으며 수요 예측은 Croston의 방법 공식을 사용하여 계산할 수 있습니다.

두 번째 단계는 전체 예측값을 계산하는 것입니다. 간격 예측과 수요 예측을 곱하여 전체 예측을 얻습니다.

세 번째 단계는 예측 결과의 정확성을 평가하는 것입니다. 예측 결과의 정확성은 평균 절대 오차(MAE) 또는 평균 제곱근 오차(RMSE)를 사용하여 평가할 수 있습니다. 동시에 오류 분석을 수행하여 예측 결과의 편차와 이상 현상을 찾아낼 수도 있습니다.

크로스톤 방법은 수요가 적거나 수요 간격이 긴 제품이나 서비스에는 적용할 수 없다는 점에 유의해야 합니다. 이러한 경우 수요 및 시간 간격의 변화가 더 큰 무작위성에 의해 영향을 받을 수 있기 때문입니다. 또한 Croston 방법 역시 예측 정확도를 높이기 위해 실제 조건에 따른 매개변수 조정이 필요합니다.

Croston 방법의 핵심 아이디어는 두 시퀀스의 평균을 평활화하여 미래 수요와 수요 발생 시간을 예측하는 것입니다. 구체적으로 이 방법은 수요 시계열과 수요량 순서를 각각 다음과 같은 형태로 표현한다.

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}

여기서 알파는 평활화 계수로, 일반적으로 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 방식을 사용한 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이 아닌 첫 번째 값을 초기값으로 사용하여 평활화 계수를 0.2로 설정했습니다. 예측 결과는 [1.677, 1.342, 1.074, 0.859, 0.684]로, 다음 5개 시점의 수요는 각각 1.677, 1.342, 1.074, 0.859, 0.684임을 나타냅니다.

위 내용은 간헐적 수요 예측에 Croston 방법 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 163.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제