Prognoza ARIMA z sezonowością i trendem, dziwny wynik

9

gdy wkraczam w prognozowanie z modelami ARIMA, staram się zrozumieć, jak mogę poprawić prognozę opartą na dopasowaniu ARIMA do sezonowości i dryfu.

Moje dane to następujące szeregi czasowe (ponad 3 lata, z wyraźnym trendem wzrostowym i widoczną sezonowością, która wydaje się nie być wspierana przez autokorelację w opóźnieniach 12, 24, 36 ??).

    > bal2sum3years.ts
             Jan     Feb     Mar     Apr     May     Jun     Jul     Aug          
    2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729 
    2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888 
    2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416 
             Sep     Oct     Nov     Dec
    2010 2232261 2394644 2468479 2816287
    2011 2480940 2699780 2760268 3206372
    2012 2951516 3119176 3032960 3738256

Model, który został zasugerowany, auto.arima(bal2sum3years.ts)dał mi następujący model:

    Series: bal2sum3years.ts 
    ARIMA(0,0,0)(0,1,0)[12] with drift         

    Coefficients:
              drift
          31725.567
    s.e.   2651.693

    sigma^2 estimated as 2.43e+10:  log likelihood=-321.02
    AIC=646.04   AICc=646.61   BIC=648.39

Jednak acf(bal2sum3years.ts,max.lag=35)nie wykazuje współczynników acf wyższych niż 0,3. Sezonowość danych jest jednak dość oczywista - wzrost na początku każdego roku. Oto jak wygląda seria na wykresie: Oryginalna seria czasowa

Wykorzystanie prognozy fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE), wywoływanej przez funkcję forecast(fit), powoduje, że średnie 12 kolejnych miesięcy są równe ostatnim 12 miesiącom danych plus stała. Można to zobaczyć dzwoniąc plot(forecast(fit)),

Rzeczywiste i prognozowane dane

Sprawdziłem również reszty, które nie są autokorelowane, ale mają dodatnią średnią (niezerową).

Dopasowanie nie modeluje dokładnie oryginalnej serii czasowej, moim zdaniem (niebieski oryginalna seria czasowa, czerwony to fitted(fit):

Oryginalne vs dopasowanie

Gość jest, czy model jest nieprawidłowy? Czy coś brakuje? Jak mogę ulepszyć model? Wydaje się, że model zajmuje dosłownie ostatnie 12 miesięcy i dodaje stałą, aby osiągnąć kolejne 12 miesięcy.

Jestem względnie początkującym w modelach i statystykach prognozowania szeregów czasowych.

zima
źródło
Moim zdaniem dopasowanie nie precyzuje dokładnie oryginalnej serii czasowej ” - dlaczego miałbyś się spodziewać?
Glen_b
@Glen_b, ta opinia była oparta na różnicach, które widzę, gdy patrzę na fabułę. Jeśli próbuję na przykład prognozować miesięczną sprzedaż do celów księgowych, błąd może być znaczący ...
zima
różnice, które widzę, gdy patrzę na fabułę ”, to inny sposób powiedzenia „ nie modeluje dokładnie szeregu czasowego ”. To nie jest kwestionowane. Wyrazem pragnienia lepszej prognozy jest to samo pragnienie, jakie ma każdy prognostyk. W wielu przypadkach może to być bardzo ważne. Niemniej jednak to pragnienie nie wprowadza więcej informacji do danych. Każdy model ARIMA - a właściwie każdy model szeregów czasowych mający znaczenie dla tego zadania - ma niezerowy termin błędu. Tam będzie zawsze być niedopasowanie pomiędzy danymi i dopasowanie. Czy jest coś, co sprawia, że ​​myślisz, że Twój model pomija coś, co można wymodelować?
Glen_b
Właśnie o czymś pomyślałem ... Może model ARIMA rzeczywiście nie jest w stanie odzwierciedlić danych z powodu nieuwzględnienia charakteru danych - aktywności użytkownika na stronie. Myślę, że mogą mieć miejsce inne zdarzenia wpływające na liczby, nie tylko sezonowość - takie jak wydarzenia specjalne, promocje. Może inne metody przewidywania (nie ARIMA), ale bardziej złożone z wykorzystaniem technik uczenia maszynowego, są w stanie lepiej przewidzieć wartości. Zajrzę do tego.
zima
Całkiem prawdopodobne. Jeśli tak, powinieneś być w stanie zidentyfikować takie uszkodzenie w resztkach. Należy pamiętać, że zarówno modele ARIMA, jak i strukturalne modele szeregów czasowych mogą zawierać takie rzeczy, jak wydarzenia specjalne i promocje za pomocą warunków regresji; modele regresji szeregów czasowych są dość powszechne.
Glen_b

Odpowiedzi:

9

Z wyglądu danych, po różnicowaniu sezonowym, może nie pozostać żadna znacząca sezonowość. Ten szczyt na początku każdego roku, a późniejszy wzór przez resztę roku jest dość dobrze wychwycony przez modelja[12] ; model ten włączone „oczywiste sezonowość”.

Tak, rzeczywiście sugerowany model to „Ten czerwiec = ostatni czerwiec + stała + błąd” i podobnie dla pozostałych miesięcy.

Co dokładnie jest z tym nie tak? Wygląda na doskonały opis twoich danych.

Może okazać się, że rozkład szeregów czasowych jest bardziej intuicyjny i łatwiejszy do wyjaśnienia, być może nawet coś opartego na Podstawowym Modelu Strukturalnym - takim z sezonowością - ale niekoniecznie oznacza to model, który działa lepiej niż ten, który masz. Nadal warto wypróbować jedną lub więcej standardowych technik rozkładu - wiele można powiedzieć o modelu, który dobrze rozumiesz.

Glen_b - Przywróć Monikę
źródło
1

Uważam, że naszym problemem jest to, że przeskakujemy bezpośrednio do modelu ARIMA bez próbowania tradycyjnych modeli. z tego powodu można stwierdzić, że model nie daje wymaganych wyników. W twoim przypadku przetestowałem twoje dane, odkryłem, że co 12 miesięcy jest sezonowość, co jest dla ciebie jasne, ale również odkryłem, że prosta ruchoma średnia z 3 terminów Dostosowanie sezonowe: Multiplikatywny jest najlepszym modelem. Moim zdaniem, zanim przejdziemy do jakiejkolwiek zaawansowanej techniki, musimy wypróbować tradycyjne algorytmy prognozowania. Prognoza na 12 miesięcy dla danych pytań

Awbath
źródło
1
Sugerowany przez ciebie model to model ARIMA w postaci (3,0,0) (0,0,0), w którym twardo kodujesz trzy współczynniki wynoszące 0,333, 0,333 i 0,333 i stałą 0,0. Zatem nie tylko przyjmujemy formę modelu arima, ale przyjmujesz wartości współczynników ORAZ w szeregu nie występują wartości odstające. Pozwól, aby dane mówiły same za siebie, jeśli chodzi o formę modelu i optymalne wartości parametrów ... nie masz nic do stracenia i wiele do zyskania. Jeśli rzeczywiście twój model jest poprawny, to zostanie znaleziony. Wszystkie modele arima są ważonymi funkcjami przeszłości.
IrishStat
1
stats.stackexchange.com/questions/40905/… wyjaśnia, w jaki sposób modelowanie ważone i arima są powiązane. W ten sposób model ARIMA można wyjaśnić jako odpowiedź na pytanie, ile wartości historycznych powinienem zastosować, aby obliczyć ważoną sumę przeszłość? Jakie dokładnie są te wartości?
IrishStat