Nie znam się na analizie danych szeregów czasowych. Mam jednak, jak sądzę, proste zadanie przewidywania do rozwiązania.
Mam około pięciu lat danych ze wspólnego procesu generowania. Każdego roku reprezentuje monotonicznie rosnącą funkcję o składniku nieliniowym. Mam liczenia na każdy tydzień w cyklu ponad 40 tygodni na każdy rok. Proces rozpoczyna się, funkcja zaczyna się od zera, rośnie dość szybko w pierwszej połowie funkcji, zwalniając w drugiej połowie przed wyrównywaniem w ciągu ostatnich pięciu tygodni. Proces jest spójny na przestrzeni lat, z niewielkimi różnicami w szybkości zmian i wielkości w poszczególnych segmentach z roku na rok.
Gdzie równa się liczbie w czasie x.
Celem jest, aby wziąć w (lub lepiej do lub nachylenie do tego punktu) i przewidzieć w . Na przykład, jeśli wynosi 5000, jaka jest oczekiwana wartość dla tego roku. Pytanie brzmi: w jaki sposób modelowałbyś takie dane? Łatwo jest podsumować i zwizualizować. Ale chciałbym, aby model ułatwiał przewidywania i zawierał miarę błędu.
źródło
Odpowiedzi:
Prawdopodobnie najprostszym podejściem jest, jak sugerował Andy W, zastosowanie modelu sezonowych jednowymiarowych szeregów czasowych. Jeśli używasz R, albo spróbować
auto.arima()
alboets()
z pakietem prognozy .Albo powinno działać dobrze, ale ogólna metoda szeregów czasowych nie wykorzystuje wszystkich dostarczonych informacji. W szczególności wydaje się, że znasz kształt krzywej każdego roku, więc lepiej byłoby wykorzystać te informacje, odpowiednio modelując dane każdego roku. Poniżej znajduje się sugestia, która próbuje uwzględnić te informacje.
Wygląda na to, że jakaś krzywa sigmoidalna załatwi sprawę. np. przesunięta logistyka: dla roku tygodnia gdzie , i są parametrami do oszacowania. jest asymptotycznym maksimum, kontroluje tempo wzrostu, a jest punktem środkowym, gdy . (Potrzebny będzie inny parametr, aby umożliwić opisaną asymetrię, dzięki czemu tempo wzrostu do czasu jest szybsze niż po
Parametry można oszacować za pomocą najmniejszych kwadratów dla każdego roku. Parametry tworzą szereg czasowy: , i . Można je prognozować przy użyciu standardowych metod szeregów czasowych, chociaż przy prawdopodobnie nie można wiele zrobić poza wykorzystaniem średniej z każdej serii do tworzenia prognoz. Następnie dla roku 6 oszacowanie wartości w tygodniu jest po prostu gdzie wykorzystywane są prognozy , i .za1, … ,zan b1, … ,bn r1, … ,rn n = 5 jot fa^( 6 , j ) za6 b6 r6
Gdy zaczną być obserwowane dane dla roku 6, będziesz chciał zaktualizować to oszacowanie. Po uzyskaniu każdej nowej obserwacji oszacuj krzywą sigmoidalną na dane z roku 6 (na początek potrzebne będą co najmniej trzy obserwacje, ponieważ istnieją trzy parametry). Następnie ważona średnia prognozy uzyskane przy użyciu danych do roku 5 i prognozy uzyskane przy użyciu tylko dane od 6 roku, przy czym masy są równe i odpowiednio . Jest to bardzo ad hoc i jestem pewien, że można to uczynić bardziej obiektywnym poprzez umieszczenie go w kontekście większego modelu stochastycznego. Niemniej jednak prawdopodobnie będzie działać dobrze dla twoich celów.( 40 - t ) / 36 ( t - 4 ) / 36
źródło
To, o co pytasz, to w zasadzie to, co robi modelowanie Box Jenkins ARIMA (twoje roczne cykle byłyby określane jako komponenty sezonowe). Proponuję, oprócz samodzielnego wyszukiwania materiałów
Applied Time Series Analysis for the Social Sciences 1980, autor: R. McCleary; RA Hay; EE Meidinger; D McDowall
Chociaż mogę wymyślić uzasadnione powody, dla których chcesz prognozować dalej w przyszłości (a tym samym ocenić błąd, gdy to robisz), w praktyce jest to często bardzo trudne. Jeśli masz bardzo silne składniki sezonowe, będzie to bardziej wykonalne. W przeciwnym razie twoje szacunki prawdopodobnie osiągną równowagę w stosunkowo niewielu przyszłych okresach.
Jeśli planujesz używać R, aby dopasować swoje modele powinieneś sprawdzić Rob Hyndmana internetowej (mam nadzieję będzie on daje lepsze informacje niż ja!)
źródło
masz 5 lat danych i 40 obserwacji rocznie. Dlaczego nie opublikujesz ich w Internecie i nie pozwolisz nam odpowiedzieć na to z góry, zamiast filozofować na wysokości 500 mil. Czekam na liczby. Widzieliśmy takie dane, na przykład liczbę klientów, którzy dokonują wymiany tygodniowo w systemie tygodniowym. Seria każdego roku zaczyna się od zera i kumuluje się do wartości granicznej.
źródło