Metryki dla prognoz dystrybucji

Feb 28 2023
autor: Leonidas Tsaprounis W firmie Haleon prognozy dystrybucji odgrywają kluczową rolę w naszych rozwiązaniach do optymalizacji zapasów. W przeszłości polegaliśmy na szeregu wyników kwantyli i metryk prognoz punktowych, aby ocenić te prognozy.

przez Leonidasa Tsaprounisa

W firmie Haleon prognozy dystrybucji odgrywają kluczową rolę w naszych rozwiązaniach do optymalizacji zapasów. W przeszłości polegaliśmy na szeregu wyników kwantyli i metryk prognoz punktowych, aby ocenić te prognozy. Ostatnio eksperymentowaliśmy z danymi, które uwzględniają całą przewidywaną dystrybucję. W tym artykule omówimy kilka z tych wskaźników (Log Score i CRPS) i zbadamy ich właściwości.

Wprowadzenie: Prognozy punktowe i dystrybucyjne

Dlaczego potrzebujemy prognozowania? Powiedziałbym, że dobrą odpowiedzią jest wspieranie/automatyzacja podejmowania decyzji w warunkach niepewności. Kluczowym słowem jest tutaj niepewność. Prognoza punktowa zwykle pokazuje wartość oczekiwaną (oszacowaną jako średnia) przyszłości naszego szeregu czasowego. Dla dowolnego rozkładu ciągłego prawdopodobieństwo pojedynczego punktu wynosi zaledwie 0, nawet dla wartości oczekiwanej. Więc to, co naprawdę mówimy, pokazując prognozę punktową, to „wartości będą wokół tego obszaru”.

Ale co to znaczy wokół? A co jeśli obszar tego „dookoła” jest ogromny? Na przykład, w momencie wybuchu pandemii COVID-19, kiedy zobaczymy prognozy obłożenia OIOM, co powinien zrobić lokalny szpital? Zaplanować średnie obłożenie? Prawdopodobnie chciałbyś być objęty realistycznym najgorszym scenariuszem (np. górny kwantyl 95% prognozowanego rozkładu). Lub w przypadku kontroli zapasów możesz chcieć określić zapasy wymagane do utrzymania określonego poziomu usług. W tym miejscu pojawiają się prognozy dystrybucyjne (zwane także probabilistycznymi).

Przykład prognozy dystrybucyjnej (szare obszary) i prognozy punktowej (linia pomarańczowa)

Prognozy dystrybucyjne próbują przewidzieć rozkład prognozowanych wartości — w przeciwieństwie do pojedynczego punktu — i są powszechną praktyką w obszarach takich jak prognozowanie pogody i chorób zakaźnych. Wiele popularnych algorytmów prognozowania statystycznego, przy kilku założeniach (np. błędy są niezależne i mają identyczny rozkład oraz pochodzą z rozkładu normalnego), posiada analityczne wzory na rozkład prognozy. Istnieją również nieparametryczne sposoby uzyskania empirycznego rozkładu prognozy, np. poprzez ładowanie reszt [1].

Aby ocenić wydajność algorytmu prognostycznego, stosujemy jedną z wielu strategii walidacji krzyżowej szeregów czasowych i obliczamy wydajność przy użyciu prognoz i wartości rzeczywistych dla każdego zagięcia.

Walidacja krzyżowa szeregów czasowych, rozszerzanie okna bez strategii nakładania się.

Metryki prognoz punktowych są dobrze znane, a zalety i wady każdego z nich są nadal gorącym tematem debat wśród naukowców i praktyków.

Ale jaka jest dobra miara do prognoz dystrybucji? Nigdy nie będziemy obserwować całego rozkładu prognozowanego kroku czasowego. Gdybyśmy mieli rozkład generujący obserwowane wartości, moglibyśmy po prostu użyć czegoś takiego jak dywergencja Kullbacka-Leiblera, aby zmierzyć odległość między dwoma rozkładami, przewidywanymi i rzeczywistymi. Niestety rzeczywistość jest taka, że ​​będziemy obserwować tylko rzeczywiste wartości punktowe. Więc jaka jest dobra miara, która pozwala nam porównać naszą przewidywaną dystrybucję z wartością punktową?

Właściwe zasady punktacji

Reguły punktacji to metryki służące do oceny jakości prognozy rozkładu względem rzeczywistych wartości szeregów czasowych. „Reguła punktacji jest właściwa, jeśli prognosta maksymalizuje oczekiwany wynik dla obserwacji pobranej z rozkładu F, jeśli wystawia prognozę probabilistyczną F, a nie G≠F. Jest to ściśle właściwe, jeśli maksimum jest wyjątkowe”. [2].Tak więc, jeśli prognosta chce osiągnąć najlepszy możliwy wynik, jeśli reguła punktacji jest ściśle poprawna, może to zrobić tylko poprzez podanie prawdziwego rozkładu generowania danych jako swojej prognozy. Dlatego reguła punktacji, która jest ściśle poprawna, zachęca do uczciwych prognoz dystrybucji. Nie martw się, jeśli ta definicja wydaje się w tej chwili nieco abstrakcyjna, pokażemy kilka przykładów, co to oznacza w praktyce w dalszej części tego artykułu. Omówimy 2 ściśle właściwe zasady punktacji, Log Score i CRPS (Continuous Rank Probability Score).

W tym artykule będziemy stosować konwencję, że mniejsze wartości wyniku są lepsze, więc w przeciwieństwie do powyższej definicji naszym celem będzie zminimalizowanie wyniku zamiast jego maksymalizacji. Robimy to, aby zachować spójność między różnymi regułami punktacji i funkcjami kosztów.

W pozostałej części tego artykułu użyjemy tego samego ujemnego rozkładu dwumianowego, co w [3], aby pokazać, w jaki sposób możemy odtworzyć wyniki z artykułu przy użyciu metod obliczeniowych w Pythonie. Do próbkowania z dystrybucji użyjemy numpy, a dla rzeczywistego obiektu dystrybucji użyjemy zamrożonych dystrybucji scipy .

Poniższy kod generuje obiekty dystrybucji, próbki i wartości rzeczywiste dla przykładów przedstawionych w tym artykule.

Wynik dziennika

Wynik logarytmiczny (LogS), wprowadzony przez IJ Gooda w 1952 r. [4], jest logarytmem funkcji gęstości prawdopodobieństwa (PDF) przewidywanego rozkładu dla wartości rzeczywistej, tj. LogS(F, y) = log(F(y ) ) , gdzie F to plik PDF przewidywanego rozkładu, a y to wartość obserwacji. Ponieważ stosujemy konwencję, że mniejsza wartość jest lepsza dla wszystkich wyników, w tym artykule użyjemy -LogS.

Log Score był metryką stosowaną w konkursie Flusight CDC , który zyskał szerokie uznanie w społeczności zajmującej się prognozowaniem epidemiologicznym.

Korzystając z zamrożonej dystrybucji scipy, bardzo łatwo jest obliczyć wynik dziennika w pythonie:log_score = -np.log(frozen_dist.pdf(y))

Poniższy wykres przedstawia wynik (zielona linia) dla różnych wartości rzeczywistych (oś x) dla tego samego rozkładu (niebieska linia):

Wynik dziennika (zielona linia) dla tego samego przewidywanego rozkładu (niebieska linia) dla różnych wartości rzeczywistych.

Problem z Log Score, również podkreślony w [2], polega na tym, że nie działa on dobrze dla próbkowanych ścieżek prognoz zamiast funkcji gęstości prawdopodobieństwa. Próbkowane ścieżki są jednak bardzo powszechnym podejściem do obsługi prognoz rozkładu. Poniżej znajduje się próba sprawienia, aby wynik logarytmiczny działał dla próbek przy użyciu znormalizowanego histogramu poprzez łączenie próbek.

Log Score (zielona linia) dla tych samych próbek (żółty histogram) dla różnych wartości rzeczywistych.

Wróćmy teraz do definicji właściwej reguły punktacji. Reguła scoringowa jest właściwa, jeśli prognosta minimalizuje (ponieważ przyjmujemy konwencję, że mniejsze wartości są lepsze) oczekiwany wynik dla obserwacji pobranej z rozkładu F, jeśli wystawia prognozę probabilistyczną F, a nie G≠F. Jak omówiono powyżej, w praktyce nigdy nie poznamy rozkładu F, który generuje rzeczywiste dane. Jednak bardzo łatwo jest pokazać tę właściwość za pomocą eksperymentu symulacyjnego, w którym możemy wcześniej zdefiniować F.

Eksperyment jest prosty, wybierzemy rozkład F i wybierzemy z niego dużą liczbę obserwacji, będą to symulowane rzeczywiste. Następnie obliczymy Log Score dla rozkładów z zakresem parametrów wokół rozkładu F, którego użyliśmy do wygenerowania danych. Jeśli wynik jest rzeczywiście właściwą regułą punktacji, jego średnia ze wszystkich symulowanych obserwacji (tj. jego oczekiwanie) powinna być mniejsza dla rozkładów, które są bardzo bliskie F i zminimalizowane w F.

Aby wygenerować dane, używamy rozkładu normalnego ze średnią, μ = 0 i odchyleniem standardowym, σ = 3, a dla kandydatów przewidywanych rozkładów używamy rozkładów normalnych, gdzie -1 ≤ μ ≤ 1 i 2 ≤ σ ≤ 4. Poniższy rysunek pokazuje mapa termiczna wyniku dziennika w tej przestrzeni parametrów. Kolor czerwony oznacza niski, a niebieski oznacza wysoki wynik dziennika. Z mapy cieplnej jasno wynika, że ​​im parametry przewidywanego rozkładu są bliższe rozkładowi generującemu dane, tym mniejszy staje się wynik, czego oczekujemy od właściwej właściwości scoringowej.

Eksperyment symulacyjny w celu zilustrowania właściwej właściwości wyniku Log Score.

Wynik prawdopodobieństwa ciągłego rankingu (CRPS)

Pierwszy raz zetknąłem się z CRPS podczas tego wykładu prof. Rob Hyndman , przeglądając szczegóły modelu prognozowania COVID-19, który opracował dla Australii. CRPS został wprowadzony jako właściwy wynik dla rozkładów ciągłych w 1976 roku przez Jamesa E. Mathesona i Roberta L. Winklera [5].

CRPS opiera się na skumulowanej funkcji dystrybucji (CDF), w przeciwieństwie do funkcji gęstości prawdopodobieństwa (PDF) używanej w wyniku logarytmicznym. To sprawia, że ​​jest bardziej odpowiedni w przypadkach, w których prognoza ma postać próbek, ponieważ możemy użyć empirycznego CDF. Jest zdefiniowany jako:

Koncepcyjnie CRPS określa ilościowo różnicę między przewidywaną dystrybucją CDF a „doskonałą” predykcją CDF. Idealna prognoza rozkładu dla danej wartości rzeczywistej obserwacji jest zasadniczo prognozą punktową równą rzeczywistej wartości. CDF idealnej predykcji to funkcja skokowa przechodząca od 0 do 1, przy czym krok dotyczy rzeczywistej wartości. Szare obszary na poniższym wykresie przedstawiają 2 obszary, które są sumowane w celu uzyskania CRPS:

Obszary, które są sumowane, aby uzyskać CRPS dla prognozy dystrybucji, podobnie jak na rysunku 1 w [3].

CRPS ma jednak jeszcze jedną fajną właściwość. Jeśli prognoza jest prognozą punktową, CRPS jest równy średniemu błędowi bezwzględnemu (MAE). Wystarczy trochę geometrii przedszkolnej, aby zrozumieć dlaczego, patrząc na poniższy wykres:

Obszary, które są sumowane, aby uzyskać CRPS dla prognozy punktowej.

Obszar między dwoma przewidywaniami jest zasadniczo obszarem utworzonego równoległoboku. Szerokość jest bezwzględną różnicą prognozy i rzeczywistej, MAE, a wysokość wynosi 1. Stąd wynik CRPS dla prognozy punktowej to tylko MAE. Bardziej formalnie, z pewnym rachunkiem na poziomie szkoły średniej:

Oczywiście analityczne obliczenie całki dla empirycznego CDF jest niemożliwe. Ale to nie problem, ponieważ możemy użyć metod numerycznych, takich jak trapz numpy, aby obliczyć to w sposób wektorowy w Pythonie. Korzystając z rozgłaszania i wektoryzacji, możemy obliczyć CRPS dla wielu próbek bez pętli for, uzyskując w ten sposób łatwe ~ 10-krotne przyspieszenie obliczeń.

CRPS (zielona linia) dla tego samego przewidywanego rozkładu (niebieska linia) dla różnych wartości rzeczywistych.

CRPS (zielona linia) dla tych samych próbek (żółty histogram) dla różnych wartości rzeczywistych.

Aby zilustrować właściwą właściwość punktacji CRPS, możemy przeprowadzić ten sam eksperyment, co w przypadku powyższego Log Score. Wyniki są zgodne z oczekiwaniami, średnia punktacji jest zminimalizowana dla rozkładów o parametrach zbliżonych do rozkładu generującego dane.

Eksperyment symulacyjny w celu zilustrowania właściwej właściwości punktowej CRPS.

CRPS zależy od skali szeregu czasowego. Jeśli chcesz sensownie agregować i porównywać CRPS dla wielu szeregów czasowych, musisz to jakoś przeskalować. Dobrą strategią jest podzielenie go przez CRPS prognozy wzorcowej (np. prognozy naiwnej) [1] [6]. W przypadku mniej kosztownej obliczeniowo opcji skalowania użyłbym tego samego współczynnika skalowania, co w MASE (Mean Absolute Scaled Error) [8], a mianowicie MAE jednoetapowej prognozy naiwnej w zbiorze uczącym, ale powiedziałbym, że nie jest to tak solidne jako poprzednia metoda skalowania.

Lokalne wyniki zależne od odległości VS

Log Score i CRPS należą do 2 różnych klas reguł punktacji.

Log Score to lokalna reguła punktacji , co oznacza, że ​​wartość wyniku dla konkretnej obserwacji zależy tylko od wartości funkcji gęstości prawdopodobieństwa dla wartości tej obserwacji [7]. Wynika to jasno z definicji wyniku logarytmu, LogS( f , y ) = - log( f (y) ), gdzie f to PDF przewidywanego rozkładu, a f (y) to wartość PDF dla obserwacji .

CRPS to wynik wrażliwy na odległość . W przypadkach, gdy wartości mają sensowny ranking (np. zapas 10 szczoteczek do zębów jest mniejszy niż 20) zwykle wolelibyśmy, aby nasza reguła punktacji uwzględniała „odległość” przewidywanego rozkładu od obserwowanej wartości, a nie tylko przypisane prawdopodobieństwo. Aby uzyskać więcej informacji na temat definicji zasady oceniania zależnej od odległości, należy zajrzeć do sekcji 3 w [6].

Aby spojrzeć na różnicę między dwiema klasami z odpowiedniej perspektywy, rozważmy trywialny przypadek, w którym podajemy prognozę punktową zamiast prognozy dystrybucyjnej. Powiedzmy, że obserwowana wartość to 101, a prognoza punktowa to 100, w tym przypadku PDF przewidywanego rozkładu f(x) wynosi 1, jeśli x = 100 i 0 w przeciwnym razie. Wynik dziennika dla tej prognozy będzie niezdefiniowany -log(0), ponieważ PDF dla dowolnej wartości innej niż 100 wynosi 0, a CRPS będzie wynosił 1, co w tym przypadku można uznać za dobry wynik. W zależności od naszego przypadku użycia chcielibyśmy, aby nasz wynik zachowywał się w taki czy inny sposób, ale do kontroli zapasów bardziej odpowiedni jest wynik uwzględniający odległość.

Różnice między dwiema klasami wyników są również bardzo wyraźne w poniższym przykładzie, w którym obliczamy wynik dla symetrycznego rozkładu bimodalnego ( podwójny współczynnik Weibulla ). W tym przypadku PDF na medianie rozkładu będzie bardzo bliski zeru. W rezultacie CRPS jest zminimalizowany, jeśli obserwacja jest równa medianie tego przewidywanego rozkładu, a Log Score jest zmaksymalizowany, co oznacza, że ​​2 wyniki są w dużym rozbieżności blisko mediany.

Zaloguj Srore (zielony) i CRPS (czerwony) dla bimodalnego podwójnego rozkładu Weibulla (niebieski).

Kładąc wszystko razem!

Teraz czas na wprowadzenie tych wskaźników w życie! Niestety nie ma biblioteki, która wyprowadza zamrożone dystrybucje scipy jako prognozę dystrybucji (chociaż trzeba przyznać, że to dobry pomysł). Jednak wiele bibliotek udostępnia prognozy probabilistyczne w postaci próbkowanych przyszłych ścieżek.

W tym artykule użyjemy statsmodels i ich wypróbowanego i przetestowanego interfejsu API szeregów czasowych, który zapewnia większości modeli prognostycznych metodę symulacji. Ta metoda tworzy wiele symulowanych przyszłych ścieżek. Użyjemy 2 modeli ETS [9], aby dopasować zestaw danych serii słynnych pasażerów linii lotniczych. Oto jak wyglądają te symulowane przyszłe ścieżki:

Symulowane przyszłe ścieżki z statsmodels.tsa.exponential_smoothing.ets.ETSResults.simulate

Najlepszym modelem dla tego szeregu czasowego (opartym na Akaike Information Criterion, AIC) jest model z multiplikatywnym błędem, addytywnym trendem i multiplikatywnymi warunkami sezonowości, ETS-MAM. Aby dać temu modelowi trochę konkurencji, którą może z łatwością pokonać, porównamy go z modelem ETS bez sezonowości, a konkretnie z ETS-MMN. Wykorzystamy zestaw danych z ostatnich 12 miesięcy jako dane testowe do oceny wydajności 2 modeli poza próbą. Do naszych prognoz dystrybucji użyjemy 10 000 symulowanych przyszłych ścieżek z każdego modelu (tj. 10 000 próbek dla każdego prognozowanego przedziału czasowego).

ETS-MAM modeluje prognozę probabilistyczną w postaci 10 000 symulowanych przyszłych ścieżek i odpowiadającej im prognozy punktowej.
Modele ETS-MMN prognozy probabilistycznej w postaci 10 000 symulowanych przyszłych ścieżek i odpowiadającej im prognozy punktowej.

A oto wyniki:

MAE, średni CRPS i średni wynik logu dla punktowych i probabilistycznych prognoz ETS-MAM i ETS-MMN w zbiorze danych serii pasażerów linii lotniczych.

Zauważ, że możemy zmierzyć CRPS również dla prognoz punktowych i nie jest zaskoczeniem, że jest on w przybliżeniu równy MAE. Oczywiście prognozy punktowe wypadają gorzej pod względem CRPS w porównaniu z prognozami dystrybucyjnymi, ale CRPS jest lepszy dla dokładnej prognozy punktowej modelu sezonowego (ETS-MAM) w porównaniu z prognozą dystrybucyjną modelu niesezonowego (ETS -MMN), ponieważ jest to wynik wrażliwy na odległość.

Kilka uwag

Popularnym zwrotem wśród praktyków zajmujących się prognozowaniem jest „konie na kurs”, co oznacza, że ​​ranking wydajności między różnymi modelami prognozowania zależy od wielu czynników, w tym zastosowanej miary. W naszym przypadku chcemy znaleźć odpowiednią metrykę, która pomoże nam wybrać najlepszy model prognozy dystrybucji dla naszego systemu kontroli zapasów. Kourentzes i in. [10] pokazują, że związek między dokładnością prognozy a wydajnością kontroli zapasów nie jest tak prosty, jak mogłoby się wydawać. W artykule porównują modele pod kątem metryk prognozy punktowej i wydajności kontroli zapasów w symulacjach. Wyniki pokazują kilka bardzo interesujących rozbieżności!

Dlatego wciąż eksperymentujemy z tymi wskaźnikami i ich zastosowaniami w naszych problemach z kontrolą zapasów. Ważne jest dla nas, aby określić, gdzie rankingi wydajności nie zgadzają się z innymi wskaźnikami, jakie są ich ogólne właściwości i który wskaźnik jest najbardziej odpowiedni dla naszego problemu.

Aby dowiedzieć się więcej o tym, jak wykorzystujemy prognozy dystrybucyjne do kontroli zapasów, zapoznaj się z prezentacją dr Gueorgui Mihaylov, głównego analityka danych Haleon ds. łańcucha dostaw i finansów na dorocznej konferencji OR Society .

Aby odtworzyć eksperymenty i wykresy z tego artykułu, sprawdź ten notatnik.

Powiązane oprogramowanie

  1. correctscoring — biblioteka Pythona z wydajnymi implementacjami dla CRPS i Brier Score, wykorzystująca numba do znacznego przyspieszenia. Niestety ostatnie wydanie było w 2015 roku.
  2. scoringutils — biblioteka R z szeroką gamą reguł oceniania. Zauważyłem również, że jeden z autorów jednego z [3], prof. Nicholas Reich , jest jednym ze współautorów tej biblioteki!
  3. scoringRules — biblioteka R z implementacjami reguł scoringowych w rcpp dla lepszej wydajności.

[1] Hyndman, RJ i Athanasopoulos, G. (2021) Prognozowanie: zasady i praktyka, wydanie 3, OTexts: Melbourne, Australia. OTexts.com/fpp3 . Dostęp 10 października 2022 r.

[2] Tilmann Gneiting i 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) Ocena prognoz epidemii w formacie przedziałowym. Biologia obliczeniowa PLOS 17 (2): e1008618.https://doi.org/10.1371/journal.pcbi.1008618

[4] Dobry, IJ (1952), Racjonalne decyzje. Journal of Royal Statistical Society: Seria B (metodologiczna), 14: 107–114.https://doi.org/10.1111/j.2517-6161.1952.tb00104.x

[5] Matheson, JE i Winkler, RL (1976). Zasady punktacji dla ciągłych rozkładów prawdopodobieństwa. Nauka o zarządzaniu , 22 (10), 1087–1096.http://www.jstor.org/stable/2629907

[6] Jose, VR, Nau, RF i Winkler, RL (2009). Wrażliwość na rozkłady odległości i linii bazowej w ocenie prognozy. Manag. Sci., 55, 582–590.

[7] Bernardo, JM (1979). Oczekiwana informacja jako oczekiwana użyteczność. The Annals of Statistics, 7 (3), 686–690.http://www.jstor.org/stable/2958753

[8] Hyndman, RJ, Koehler, AB (2006) Inne spojrzenie na miary trafności prognoz. International Journal of Forecasting, tom 22, wydanie 4, strony 679–688, ISSN 0169–2070,https://doi.org/10.1016/j.ijforecast.2006.03.001.

[9] Hyndman, RJ, Koehler, AB, Ord, JK i Snyder, RD (2008). Prognozowanie z wygładzaniem wykładniczym: podejście do przestrzeni stanów. Springer-Verlag.http://www.exponentialsmoothing.net

[10] Kourentzes, Nikolaos i Svetunkov, Ivan i Trapero, Juan R. (1 lipca 2021 r.) Łączenie prognozowania i wydajności inwentaryzacji: złożone zadanie. Dostępne w SSRN:https://ssrn.com/abstract=3878176Lubhttp://dx.doi.org/10.2139/ssrn.3878176