Ocena przewidywalności szeregów czasowych

11

Załóżmy, że mam trochę ponad 20 000 miesięcznych szeregów czasowych od stycznia do 05 grudnia. Każdy z nich reprezentuje globalne dane dotyczące sprzedaży innego produktu. Co jeśli zamiast obliczać prognozy dla każdego z nich, chciałbym skoncentrować się tylko na niewielkiej liczbie produktów, które „faktycznie mają znaczenie”?

Mógłbym uszeregować te produkty według całkowitych rocznych przychodów i skrócić listę za pomocą klasycznego Pareto. Mimo to wydaje mi się, że chociaż nie mają większego wpływu na wyniki finansowe, niektóre produkty są tak łatwe do przewidzenia, że ​​ich pominięcie byłoby złym osądem. Produkt, który w ciągu ostatnich 10 lat sprzedawał 50 $ każdego miesiąca, może nie brzmieć zbyt wiele, ale generowanie prognoz dotyczących przyszłej sprzedaży wymaga tak niewielkiego wysiłku, że równie dobrze mogę to zrobić.

Powiedzmy, że dzielę moje produkty na cztery kategorie: wysokie przychody / łatwe do prognozowania - niskie przychody / łatwe do prognozowania - wysokie przychody / trudne do prognozowania - niskie przychody / trudne do prognozowania.

Myślę, że rozsądne byłoby pozostawienie tylko tych szeregów czasowych należących do czwartej grupy. Ale jak dokładnie mogę ocenić „przewidywalność”?

Współczynnik zmienności wydaje się dobrym punktem wyjścia (pamiętam też jakiś artykuł na ten temat jakiś czas temu). Ale co jeśli moje serie czasowe wykazują sezonowość / przesunięcia poziomów / efekty kalendarza / silne trendy?

Wyobrażam sobie, że moją ocenę powinien opierać wyłącznie na zmienności elementu losowego, a nie na podstawie „surowych” danych. A może coś mi brakuje?

Czy ktoś wcześniej napotkał podobny problem? Jak byście to zrobili?

Jak zawsze każda pomoc jest mile widziana!

Bruder
źródło

Odpowiedzi:

9

Oto drugi pomysł oparty na STL.

Można dopasować rozkład stl do każdej serii, a następnie porównać błąd standardowy pozostałego składnika ze średnią oryginalnych danych, ignorując jakiekolwiek częściowe lata. Serie, które są łatwe do prognozowania, powinny mieć niewielki stosunek se (reszta) do średniej (dane).

Powodem, dla którego sugeruję ignorowanie częściowych lat, jest to, że w przeciwnym razie sezonowość wpłynie na średnią danych. W przykładzie w pytaniu wszystkie serie mają siedem pełnych lat, więc nie stanowi to problemu. Ale jeśli seria rozszerzyła się w połowie 2012 r., Sugeruję, że średnią oblicza się dopiero do końca 2011 r., Aby uniknąć sezonowego zanieczyszczenia średniej.

Ta idea zakłada, że ​​średnia (dane) ma sens - to znaczy, że dane są średnie stacjonarne (oprócz sezonowości). Prawdopodobnie nie sprawdziłby się dobrze w przypadku danych o silnych trendach lub korzeniach jednostek.

Zakłada również, że dobre dopasowanie stl przekłada się na dobre prognozy, ale nie mogę wymyślić przykładu, w którym to nie byłoby prawdą, więc prawdopodobnie jest to dobre założenie.

Rob Hyndman
źródło
Cześć Rob, dzięki, że do mnie wróciłeś. Podoba mi się twój pomysł, więc spróbuję sprawdzić, czy zapewnia on pożądany poziom filtrowania. Jeszcze jedna rzecz, czy istnieje jakiś szczególny powód, aby używać średniej (danych) zamiast średniej (reszty)? Obawiam się, że niektóre z moich szeregów czasowych mogą mieć dość silny trend. Zamiast tego seria rozkładów STL nie powinna. Czy również uważasz, że podejście, które przedstawiliśmy do tej pory do oceny przewidywalności / zauważania wartości odstających, jest wystarczająco dobre, aby zastosować je w prawdziwym otoczeniu biznesowym? A może to zbyt „amatorskie”? Czy normalnie zrobiłbyś coś inaczej?
Bruder
średnia (reszta) będzie bliska zeru. Chcesz porównać szum ze skalą danych, więc średnia (dane) powinna być w porządku. Nie wiesz, jak radzić sobie ze swoimi trendami. Zanim uwierzę w wyniki, dokładnie przetestuję to podejście na szeregu danych.
Rob Hyndman
8

Jest to dość powszechny problem w prognozowaniu. Tradycyjnym rozwiązaniem jest obliczanie średnich bezwzględnych błędów procentowych (MAPE) dla każdego elementu. Im niższa wartość MAPE, tym łatwiej jest przewidzieć pozycję.

Jednym z problemów jest to, że wiele serii zawiera wartości zerowe, a następnie MAPE jest niezdefiniowany.

yttT.

Q=1T.-12t=13T.|yt-yt-12|,
qt=(yt-y^t)/Qy^tyt w dowolny inny sposób prognozowania implementowania do tego elementu. Weź średnią wartość bezwzględną skalowanych błędów, aby uzyskać MASE. Na przykład możesz użyć ruchomego początku (zwanego również krzyżowym sprawdzaniem poprawności szeregów czasowychh

Serie łatwe do prognozowania powinny mieć niskie wartości MASE. Tutaj „łatwa do prognozowania” jest interpretowana w stosunku do sezonowej naiwnej prognozy. W niektórych okolicznościach bardziej sensowne może być zastosowanie alternatywnej miary podstawowej do skalowania wyników.

Rob Hyndman
źródło
Cześć Rob, dziękuję za miłą odpowiedź. Jak zawsze twoje podejście jest bardzo schludne, proste i rozsądne. Już oceniam prognozowaną wartość dodaną ( FTV ) na podstawie sezonowego naiwnego modelu, więc twój pomysł oceny przewidywalności przy użyciu tej samej „miary bazowej” brzmi bardzo zachęcająco. Jedynym problemem jest to, że aby obliczyć MASE, muszę wybrać metodę prognozowania i przeprowadzić symulacje dla każdej z moich serii czasowych 20000. Miałem nadzieję, że uda mi się wcześniej wykryć łatwe do prognozowania serie, aby zaoszczędzić czas obliczeniowy.
Bruder
Z jakiegoś powodu myślałem, że szeregi czasowe o mniejszej zmienności względnej (tj. CV) z konieczności spowodowałyby łatwiejsze i dokładniejsze prognozy. Obliczanie prognoz, a potem - i dopiero wtedy - pomiar błędów, rodzaj przeciwności, jak sądzę, mój cel. Myślę, że próbuję powiedzieć, że patrzę na MASE bardziej jako miarę dokładności prognozy niż miarą przewidywalności. Ale mogę się mylić ... :)
Bruder
1
@Bruder: 2 przemyślenia: 1. Możesz spojrzeć na prostą naiwną prognozę, a nie prognozę sezonową. Prosta naiwna prognoza wykorzystuje tylko poprzednią wartość szeregu czasowego i odbierze silny trend (z 1-okresowym opóźnieniem). 2. Rozkład STL jest dobrym pomysłem. Jeśli wartości rezydualne są bardzo małe w porównaniu do składników sezonowych i trendów, prawdopodobnie można łatwo przewidzieć serię.
Zach
1
@Rob - co z rozkładem STL? Czy mogę dostać dwa ptaki za jednym kamieniem (tj. Dostrzec wartości odstające i ocenić przewidywalność, a tym samym ocenić „prawdziwą” przewidywalność)? Zaskakuje mnie, jak wiele mogę osiągnąć za pomocą STL i sezonowego naiwnego modelu. Ale wiesz, co się dzieje, gdy rzeczy są zbyt piękne, aby mogły być prawdziwe ...
Bruder
1
tja
5

pn

Ω(xt)

Ale może możesz spróbować zastosować miarę MASE zaproponowaną przez Roba do zgrubnego rozdzielenia siatki 20 000 w kilku podgrupach, a następnie zastosować ForeCA do każdej z nich osobno.

Georg M. Goerg
źródło
0

Ta odpowiedź jest bardzo późna, ale dla tych, którzy wciąż szukają odpowiedniej miary przewidywalności dla szeregów czasowych zapotrzebowania na produkt, gorąco polecam przyjrzenie się przybliżonej entropii .

Obecność powtarzających się wzorców fluktuacji w szeregu czasowym czyni go bardziej przewidywalnym niż szereg czasowy, w którym takich wzorców nie ma. ApEn odzwierciedla prawdopodobieństwo, że po podobnych wzorcach obserwacji nie pojawią się dodatkowe podobne obserwacje [7]. Szereg czasowy zawierający wiele powtarzających się wzorów ma stosunkowo małą ApEn; mniej przewidywalny proces ma wyższą ApEn.

Popyt na produkty ma zwykle bardzo silny składnik sezonowy, co powoduje, że współczynnik zmienności (CV) jest nieodpowiedni. ApEn (m, r) jest w stanie poprawnie to obsłużyć. W moim przypadku, ponieważ moje dane mają tendencję do silnej tygodniowej sezonowości, ustawiłem parametry m = 7 i r = 0,2 * std zgodnie z zaleceniami tutaj .

meraksy
źródło
u
uu