분포 예측 지표

Feb 28 2023
Leonidas Tsaprounis 작성 Haleon에서 분포 예측은 재고 최적화 솔루션에서 중요한 역할을 합니다. 과거에는 이러한 예측을 평가하기 위해 다양한 분위수 점수 및 포인트 예측 메트릭에 의존했습니다.

레오니다스 차 프로우니스

Haleon에서 분포 예측은 재고 최적화 솔루션의 핵심 역할을 합니다. 과거에는 이러한 예측을 평가하기 위해 다양한 분위수 점수 및 포인트 예측 메트릭에 의존했습니다. 우리는 최근 전체 예측 분포를 고려한 메트릭을 실험했습니다. 이 문서에서는 이러한 몇 가지 메트릭(로그 점수 및 CRPS)을 살펴보고 해당 속성을 검사합니다.

소개: 포인트 예측 및 분포 예측

예측이 필요한 이유는 무엇입니까? 좋은 대답은 불확실성 하에서 의사 결정을 지원/자동화하는 것입니다. 여기서 불확실성이 핵심 단어입니다. 포인트 예측은 일반적으로 시계열 미래의 예상 값(평균으로 추정)을 보여줍니다. 연속 분포의 경우 단일 지점의 확률은 기대값의 경우에도 0입니다. 따라서 포인트 예측을 표시함으로써 우리가 실제로 말하는 것은 "값이 이 영역 주변에 있을 것"입니다.

하지만 around은 무슨 뜻인가요? 이 "주변"의 면적이 크다면? 예를 들어, COVID-19 대유행이 발생했을 때 ICU 수용 인원 예측을 볼 때 지역 병원은 어떻게 해야 합니까? 평균 점유 계획? 현실적인 최악의 시나리오(예: 예측 분포의 상위 95% 분위수)에 대해 다루고 싶을 것입니다. 또는 재고 관리의 경우 특정 서비스 수준을 유지하는 데 필요한 재고를 결정할 수 있습니다. 분포(확률론적이라고도 함) 예측이 그림에 들어가는 곳입니다.

분포 예측(회색 영역) 및 점 예측(주황색 선)의 예

분포 예측은 단일 지점이 아니라 예측 값의 분포를 예측하려고 시도하며 날씨 및 전염병 예측과 같은 영역에서 일반적인 관행입니다. 몇 가지 가정(예: 오류는 독립적이고 동일하게 분포되며 정규 분포에서 비롯됨) 하에서 널리 사용되는 많은 통계 예측 알고리즘에는 예측 분포에 대한 분석 공식이 있습니다. 예를 들어 잔차 [1]를 부트스트래핑하여 예측에 대한 경험적 분포를 얻는 비모수적 방법도 있습니다 .

예측 알고리즘의 성능을 평가하기 위해 우리는 많은 시계열 교차 검증 전략 중 하나를 사용하고 각 폴드에 대한 예측 및 실제 값을 사용하여 성능을 계산합니다.

시계열 교차 검증, 중첩 전략 없이 창 확장.

포인트 예측에 대한 지표는 잘 알려져 있으며 각각의 장단점은 학계와 실무자들에게 여전히 뜨거운 토론 주제입니다.

그러나 분포 예측을 위한 좋은 메트릭은 무엇입니까? 우리는 예측된 시간 단계의 전체 분포를 결코 관찰하지 않을 것입니다. 관찰된 값을 생성하는 분포가 있는 경우 Kullback-Leibler 발산 과 같은 것을 사용하여 예측 분포와 실제 분포 사이의 거리를 측정할 수 있습니다. 불행히도 현실은 실제 포인트 값만 관찰한다는 것입니다. 그렇다면 예측 분포를 포인트 값과 비교할 수 있는 좋은 메트릭은 무엇입니까?

적절한 채점 규칙

스코어링 규칙은 시계열의 실제 값에 대한 분포 예측의 품질을 평가하기 위한 메트릭입니다. “예측자가 G≠F가 아니라 확률적 예측 F를 발행하는 경우 분포 F에서 도출된 관측치에 대한 예상 점수를 최대화하는 경우 채점 규칙이 적절합니다. 최대 값이 고유하면 엄격히 적절합니다.” [2].따라서 예측가가 가능한 최고의 점수를 얻고자 한다면 점수 규칙이 엄격하게 적절하다면 실제 데이터 생성 분포를 예측으로 제공해야만 그렇게 할 수 있습니다. 따라서 엄격하게 적절한 채점 규칙은 정직한 분포 예측을 장려합니다. 이 정의가 현재 약간 추상적으로 보이더라도 걱정하지 마십시오. 이 문서의 뒷부분에서 이것이 실제로 의미하는 바에 대한 몇 가지 예를 보여드리겠습니다. 엄격하게 적절한 2가지 채점 규칙인 Log Score 와 CRPS (Continuous Rank Probability Score)를 다룰 것입니다 .

이 기사에서는 점수의 값이 작을수록 좋다는 관례를 사용할 것이므로 위의 정의와 반대로 목표는 점수를 최대화하는 대신 최소화하는 것입니다. 서로 다른 채점 규칙 및 비용 함수 간의 일관성을 위해 이렇게 합니다.

이 기사의 나머지 부분에서는 [3]과 동일한 음이항 분포를 사용하여 Python의 계산 방법을 사용하여 논문의 결과를 재현하는 방법을 보여줍니다. 분포에서 샘플링하기 위해 우리는 numpy를 사용하고 실제 분포 개체에는 scipy frozen distributions를 사용합니다 .

아래 코드는 이 문서에 표시된 예제에 대한 배포 개체, 샘플 및 실제 값을 생성합니다.

로그 점수

1952년에 IJ Good이 도입한 로그 점수(LogS)[4]는 실제 값에 대한 예측 분포의 확률 밀도 함수(PDF)의 로그입니다. 즉, LogS(F, y) = log(F(y ) ) , 여기서 F 는 예측 분포의 PDF이고 y 는 관찰 값입니다. 모든 점수에 대해 작은 값이 더 좋다는 규칙을 사용하기 때문에 이 문서에서는 -LogS를 사용합니다.

로그 점수는 역학 예측 커뮤니티에서 폭넓은 인정을 받은 CDC의 플루사이트 대회 에서 사용된 측정 기준입니다 .

scipy frozen distribution을 사용하면 Python에서 로그 점수를 계산하는 것이 매우 쉽습니다.log_score = -np.log(frozen_dist.pdf(y))

아래 그래프는 동일한 분포(파란색 선)에 대한 다양한 실제 값(x축)에 대한 점수(녹색 선)를 보여줍니다.

서로 다른 실제 값에 대한 동일한 예측 분포(파란색 선)의 로그 점수(녹색 선)입니다.

[2]에서도 강조된 로그 점수의 문제는 확률 밀도 함수 대신 샘플링된 예측 경로에 대해 잘 작동하지 않는다는 것입니다. 그러나 샘플링된 경로는 분포 예측을 제공하기 위한 매우 일반적인 접근 방식입니다. 다음은 샘플을 비닝하여 정규화된 히스토그램을 사용하여 샘플에 대해 로그 점수를 작동시키려는 시도입니다.

서로 다른 실제 값에 대해 동일한 샘플(노란색 히스토그램)에 대한 로그 점수(녹색 선).

이제 적절한 채점 규칙의 정의를 다시 살펴보겠습니다. 채점 규칙은 예측자가 G≠F가 아닌 확률적 예측 F를 발행하는 경우 분포 F에서 도출된 관측치에 대한 예상 점수를 최소화하는 경우(값이 작을수록 더 좋다는 관례를 채택하기 때문에) 적절합니다. 위에서 논의한 것처럼 실제로는 실제 데이터를 생성하는 분포 F를 결코 알 수 없습니다. 그러나 사전에 F를 정의할 수 있는 시뮬레이션 실험을 통해 이 속성을 표시하는 것은 매우 쉽습니다.

실험은 간단합니다. 분포 F를 선택하고 여기에서 많은 수의 관측값을 샘플링합니다. 이것이 시뮬레이션된 실제값이 됩니다. 그런 다음 데이터를 생성하는 데 사용한 분포 F 주변의 매개 변수 범위를 사용하여 분포에 대한 로그 점수를 계산합니다. 점수가 실제로 적절한 채점 규칙인 경우 시뮬레이션된 모든 관측치의 평균(예: 기대값)은 F에 매우 가깝고 F에서 최소화되는 분포에 대해 더 작아야 합니다.

데이터를 생성하기 위해 평균 μ = 0 및 표준 편차 σ = 3인 정규 분포를 사용하고 후보 예측 분포의 경우 -1 ≤ μ ≤ 1 & 2 ≤ σ ≤ 4인 정규 분포를 사용합니다. 아래 그림은 이 매개변수 공간에서 로그 점수의 히트맵. 빨간색은 낮음을 나타내고 파란색은 높은 로그 점수를 나타냅니다. 히트맵에서 예측 분포의 매개변수가 데이터 생성 분포에 가까울수록 점수가 작아지는 것이 분명합니다. 이는 적절한 점수 속성에서 우리가 기대하는 것입니다.

로그 점수의 적절한 점수 속성을 설명하기 위한 시뮬레이션 실험.

연속 순위 확률 점수(CRPS)

내가 CRPS를 처음 접한 것은 교수의 이 강연이었습니다. Rob Hyndman은 호주를 위해 개발한 COVID-19 예측 모델의 세부 사항을 살펴보던 중이었습니다. CRPS는 1976년 James E. Matheson과 Robert L. Winkler에 의해 연속 분포에 대한 적절한 점수로 도입되었습니다[5].

CRPS는 로그 점수에 사용되는 확률 밀도 함수(PDF)와 달리 누적 분포 함수(CDF)를 기반으로 합니다. 이는 경험적 CDF를 사용할 수 있기 때문에 예측이 샘플 형태인 경우에 더 적합합니다. 다음과 같이 정의됩니다.

개념적으로 CRPS는 예측 분포 CDF와 "완벽한" 예측 CDF의 차이를 정량화합니다. 주어진 실제 관찰 값에 대한 완벽한 분포 예측은 본질적으로 실제 값과 동일한 점 예측입니다. 완벽한 예측의 CDF는 단계가 실제 값에 있는 0에서 1로 가는 단계 함수입니다. 아래 그래프의 회색 영역은 CRPS를 제공하기 위해 합산된 2개 영역을 보여줍니다.

분포 예측에 대한 CRPS를 얻기 위해 합산되는 영역은 [3]의 그림 1과 유사합니다.

CRPS에는 또 다른 좋은 속성이 있습니다. 예측이 점 예측인 경우 CRPS는 평균 절대 오차(MAE)와 같습니다. 일부 고등학교 이전 기하학은 아래 그래프를 보면 그 이유를 이해하기에 충분합니다.

포인트 예측에 대한 CRPS를 얻기 위해 합산되는 영역입니다.

2개의 예측 사이의 영역은 본질적으로 형성된 평행사변형의 영역입니다. 너비는 예측과 실제의 절대 차이인 MAE이고 높이는 1입니다. 따라서 포인트 예측에 대한 CRPS 점수는 바로 MAE입니다. 좀 더 공식적으로, 고등학교 수준의 미적분을 사용하여:

물론 경험적 CDF에 대해 분석적으로 적분을 계산하는 것은 불가능합니다. 하지만 numpy의 trapz 와 같은 수치적 방법을 사용하여 파이썬에서 벡터화된 방식으로 계산할 수 있기 때문에 문제가 되지 않습니다 . 브로드캐스팅 및 벡터화를 사용하면 for 루프 없이 여러 샘플에 대한 CRPS를 계산할 수 있으므로 계산 속도를 ~10배 쉽게 높일 수 있습니다.

서로 다른 실제 값에 대한 동일한 예측 분포(파란색 선)에 대한 CRPS(녹색 선).

서로 다른 실제 값에 대한 동일한 샘플(노란색 히스토그램)에 대한 CRPS(녹색 선).

CRPS의 적절한 채점 속성을 설명하기 위해 위의 로그 점수와 동일한 실험을 수행할 수 있습니다. 결과는 예상대로 데이터 생성 분포에 가까운 매개변수가 있는 분포의 경우 점수의 평균이 최소화됩니다.

CRPS의 적절한 점수 특성을 설명하기 위한 시뮬레이션 실험.

CRPS는 시계열의 척도에 따라 다릅니다. 여러 시계열에 대한 CRPS를 의미 있게 집계하고 비교하려면 어떻게든 확장해야 합니다. 좋은 전략은 이를 벤치마크 예측(예: 순진한 예측)의 CRPS로 나누는 것입니다[1] [6]. 계산 비용이 덜 드는 스케일링 옵션의 경우 MASE(Mean Absolute Scaled Error)[8]에서와 동일한 스케일링 계수, 즉 훈련 세트에서 한 단계 순진한 예측의 MAE를 사용하지만 이것이 강력하지 않다고 말할 수 있습니다. 이전 스케일링 방법으로.

로컬 VS 거리 민감 점수

Log Score와 CRPS는 2가지 등급의 채점 규칙에 속합니다.

로그 점수는 특정 관찰에 대한 점수 값이 해당 관찰 값에 대한 확률 밀도 함수 값 에만 의존한다는 것을 의미하는 로컬 점수 규칙 입니다[7]. 이는 로그 점수 LogS( f , y ) = - log( f (y) ) 의 정의에서 분명합니다 . 여기서 f 는 예측 분포의 PDF이고 f (y)는 관측에 대한 PDF 값입니다. .

CRPS는 거리에 민감한 점수 입니다 . 값에 의미 있는 순위가 있는 경우(예: 칫솔 10개 재고가 20개 재고보다 작음) 일반적으로 스코어링 규칙은 단순히 배정된 확률. 거리에 민감한 채점 규칙의 정의에 대한 자세한 내용은 [6]의 섹션 3을 참조하십시오.

두 클래스 간의 차이를 원근감 있게 보기 위해 분포 예측 대신 포인트 예측을 제공하는 사소한 경우를 고려하십시오. 관찰된 값이 101이고 포인트 예측이 100이라고 가정해 보겠습니다. 이 경우 예측 분포 f(x) 의 PDF는 x = 100이면 1이고 그렇지 않으면 0입니다. 이 예측에 대한 로그 점수는 정의되지 않은 -log(0)입니다. 100 이외의 값에 대한 PDF는 0이고 CRPS는 1이 될 것이기 때문에 이 경우 좋은 점수로 간주될 수 있습니다. 사용 사례에 따라 우리는 점수가 어떤 식으로든 작동하기를 원하지만 재고 관리의 경우 거리에 민감한 점수가 더 적합합니다.

2가지 등급의 점수 사이의 차이점은 아래 예에서도 매우 분명합니다. 여기서 우리는 대칭 이중 모달 분포( double Weibull ) 에 대한 점수를 계산합니다 . 이 경우 분포 중앙값의 PDF는 0에 매우 가까워집니다. 결과적으로 관찰이 이 예측 분포의 중앙값과 같고 로그 점수가 최대화되면 CRPS가 최소화됩니다. 즉, 두 점수가 중앙값에 가까운 큰 불일치에 있음을 의미합니다.

바이모달 이중 Weibull 분포(파란색)에 대한 Log Srore(녹색) 및 CRPS(빨간색).

함께 모아서!

이제 이러한 메트릭을 실행할 시간입니다! 불행하게도 scipy frozen 분포를 분포 예측으로 출력하는 라이브러리는 없습니다(좋은 생각임은 인정하지만). 그러나 많은 라이브러리가 샘플링된 미래 경로의 형태로 확률적 예측을 제공합니다.

이 기사에서는 통계 모델 과 대부분의 예측 모델에 시뮬레이션 방법을 제공하는 검증된 시계열 API를 사용합니다 . 이 방법은 시뮬레이션된 여러 미래 경로를 생성합니다. 우리는 2개의 ETS [9] 모델을 사용하여 유명한 항공사 승객 시리즈 데이터 세트에 맞출 것입니다. 시뮬레이션된 미래 경로는 다음과 같습니다.

statsmodels.tsa.exponential_smoothing.ets.ETSResults.simulate에서 시뮬레이션된 미래 경로

이 시계열에 가장 적합한 모델(Akaike Information Criterion, AIC 기반)은 곱셈 오류, 덧셈 추세 및 곱셈 계절성 항이 있는 모델인 ETS-MAM입니다. 해당 모델에 쉽게 이길 수 있는 경쟁을 제공하기 위해 계절성이 없는 ETS 모델, 특히 ETS-MMN과 비교할 것입니다. 데이터 세트의 마지막 12개월을 테스트 데이터로 사용하여 2개 모델의 샘플 외 성능을 평가합니다. 분포 예측을 위해 각 모델에서 10,000개의 시뮬레이션된 미래 경로를 사용합니다(즉, 각 예측 시간 단계에 대해 10,000개의 샘플).

ETS-MAM은 10,000개의 시뮬레이션된 미래 경로 및 해당 지점 예측의 형태로 확률적 예측을 모델링합니다.
ETS-MMN은 10,000개의 시뮬레이션된 미래 경로 및 해당 지점 예측의 형태로 확률적 예측을 모델링합니다.

결과는 다음과 같습니다.

MAE, 평균 CRPS 및 ETS-MAM 및 ETS-MMN 포인트에 대한 평균 로그 점수 및 항공 승객 시리즈 데이터 세트에 대한 확률적 예측.

포인트 예측에 대한 CRPS도 측정할 수 있으며 당연히 MAE와 거의 같습니다. 물론 포인트 예측은 분포 예측에 비해 CRPS 측면에서 좋지 않지만 계절 모델(ETS-MAM)의 정확한 포인트 예측에는 비계절 모델(ETS)의 분포 예측에 비해 CRPS가 더 좋습니다. -MMN) 거리에 민감한 점수이기 때문입니다.

일부 비고

예측 실무자들 사이에서 인기 있는 문구는 "강점을 위한 말"입니다. 즉, 서로 다른 예측 모델 간의 성능 순위는 사용된 메트릭을 비롯한 여러 요인에 따라 달라집니다. 우리의 경우 재고 관리 시스템에 대한 최상의 분포 예측 모델을 선택하는 데 도움이 되는 올바른 지표를 찾고자 합니다. Kourentzes et al. [10] 예측 정확도와 재고 관리 성능 사이의 연결이 우리가 생각하는 것처럼 간단하지 않다는 것을 보여줍니다. 논문에서 그들은 포인트 예측 지표와 시뮬레이션의 재고 관리 성능과 관련하여 모델을 비교합니다. 결과는 매우 흥미로운 불일치를 보여줍니다!

이것이 우리가 재고 관리 문제에 대한 이러한 메트릭과 그 응용 프로그램을 계속 실험하고 있는 이유입니다. 성능 순위가 다른 메트릭과 일치하지 않는 부분, 일반적인 속성이 무엇인지, 어떤 메트릭이 우리 문제에 가장 적합한지 식별하는 것이 중요합니다.

재고 관리를 위해 분포 예측을 사용하는 방법에 대해 자세히 알아보려면 연례 OR Society 컨퍼런스에서 Haleon의 공급망 및 재무 담당 수석 데이터 과학자인 Dr. Gueorgui Mihaylov의 프레젠테이션을 확인하십시오 .

이 기사의 실험과 그래프를 재현하려면 이 노트북을 확인하십시오.

관련 소프트웨어

  1. properscoring — CRPS 및 Brier Score를 효율적으로 구현한 Python 라이브러리로,현저한 속도 향상을 위해 numba를 활용합니다. 불행히도 마지막 릴리스는 2015 년이었습니다.
  2. scoreutils — 다양한 점수 규칙이 포함된 R 라이브러리입니다. 나는 또한 [3]의 저자 중 한 명인 Nicholas Reich 교수가 이 라이브러리의 기여자 중 한 명이라는 것을 알게 되었습니다!
  3. scoreRules — 더 나은 성능을 위해 rcpp 에서 채점 규칙 구현이 포함된 R 라이브러리입니다 .

[1] Hyndman, RJ, & Athanasopoulos, G. (2021) Forecasting: principle and practice, 3판, OTexts: Melbourne, Australia. OTexts.com/fpp3 . 2022년 10월 10일에 액세스함.

[2] Tilmann Gneiting & Adrian E Raftery (2007) Strictly Proper Scoring Rules, Prediction, and Estimation, Journal of the American Statistical Association, 102:477, 359–378, DOI: 10.1198/ 016214506000001437

[3] Bracher J, Ray EL, Gneiting T, Reich NG(2021) 간격 형식으로 전염병 예측 평가. PLOS 계산 생물학 17(2): e1008618.https://doi.org/10.1371/journal.pcbi.1008618

[4] Good, IJ(1952), 합리적 결정. 왕립 통계 학회 저널: 시리즈 B(방법론), 14: 107–114.https://doi.org/10.1111/j.2517-6161.1952.tb00104.x

[5] Matheson, JE, & Winkler, RL(1976). 연속 확률 분포에 대한 스코어링 규칙. 경영 과학 , 22 (10), 1087–1096.http://www.jstor.org/stable/2629907

[6] Jose, VR, Nau, RF, & Winkler, RL(2009). 예측 평가에서 거리 및 기준선 분포에 대한 민감도. 관리 Sci., 55, 582–590.

[7] 베르나르도, JM(1979). 기대효용으로서의 기대정보. 통계연보, 7(3), 686–690.http://www.jstor.org/stable/2958753

[8] Hyndman, RJ, Koehler, AB(2006) 예측 정확도 측정에 대한 또 다른 검토. 국제 예측 저널, 22권, 4호, 페이지 679–688, ISSN 0169–2070,https://doi.org/10.1016/j.ijforecast.2006.03.001.

[9] Hyndman, RJ, Koehler, AB, Ord, JK, & Snyder, RD(2008). 지수 평활을 이용한 예측: 상태 공간 접근법. Springer-Verlag.http://www.exponentialsmoothing.net

[10] Kourentzes, Nikolaos 및 Svetunkov, Ivan 및 Trapero, Juan R. (2021년 7월 1일) 예측 및 인벤토리 성능 연결: 복잡한 작업입니다. SSRN에서 사용 가능:https://ssrn.com/abstract=3878176또는http://dx.doi.org/10.2139/ssrn.3878176