Zasadniczo, zajrzyj do zaawansowanego podręcznika analizy szeregów czasowych (książki wprowadzające zwykle przekierują cię do zaufania swojemu oprogramowaniu), takiego jak Time Series Analysis by Box, Jenkins & Reinsel. Możesz również znaleźć szczegółowe informacje na temat procedury Boxa-Jenkinsa, przeglądając google. Zauważ, że istnieją inne podejścia niż Box-Jenkins, np. Oparte na AIC.
W R najpierw przekształcasz swoje dane w obiekt ts
(szereg czasowy) i mówisz R, że częstotliwość wynosi 12 (dane miesięczne):
require(forecast)
sales <- ts(c(99, 58, 52, 83, 94, 73, 97, 83, 86, 63, 77, 70, 87, 84, 60, 105, 87, 93, 110, 71, 158, 52, 33, 68, 82, 88, 84),frequency=12)
Możesz wykreślić (częściowe) funkcje autokorelacji:
acf(sales)
pacf(sales)
Nie sugerują one zachowania AR ani MA.
Następnie dopasuj model i sprawdź go:
model <- auto.arima(sales)
model
Zobacz ?auto.arima
po pomoc. Jak widzimy, auto.arima
wybiera prosty (0,0,0) model, ponieważ nie widzi w danych ani trendu, ani sezonowości, ani AR, ani MA. Wreszcie możesz prognozować i wykreślić szeregi czasowe i prognozę:
plot(forecast(model))
Spójrz na ?forecast.Arima
(zwróć uwagę na wielką literę A!).
Ten darmowy podręcznik online to świetne wprowadzenie do analizy szeregów czasowych i prognozowania za pomocą R. Bardzo zalecane.
Dwie rzeczy: Twoje szeregi czasowe są co miesiąc, potrzebujesz co najmniej 4 lat danych, aby rozsądnie oszacować ARIMA, ponieważ odzwierciedlone 27 punktów nie daje struktury autokorelacji. Może to również oznaczać, że na twoją sprzedaż wpływ mają pewne czynniki zewnętrzne, a nie korelacja z jej własną wartością. Spróbuj dowiedzieć się, jaki czynnik wpływa na sprzedaż i czy ten czynnik jest mierzony. Następnie możesz uruchomić regresję lub VAR (Vector Autoregression), aby uzyskać prognozy.
Jeśli absolutnie nie masz nic poza tymi wartościami, najlepszym sposobem jest zastosowanie wykładniczej metody wygładzania, aby uzyskać naiwną prognozę. Wygładzanie wykładnicze jest dostępne w języku R.
Po drugie, nie widzę sprzedaży produktu w oderwaniu, sprzedaż dwóch produktów może być skorelowana, na przykład wzrost sprzedaży kawy może odzwierciedlać spadek sprzedaży herbaty. użyj innych informacji o produkcie, aby poprawić swoją prognozę.
Zazwyczaj dzieje się tak w przypadku danych dotyczących sprzedaży w sprzedaży detalicznej lub łańcuchu dostaw. Nie wykazują dużej części struktury autokorelacji w serii. Z drugiej strony metody takie jak ARIMA lub GARCH zazwyczaj działają z danymi giełdowymi lub indeksami ekonomicznymi, w których zazwyczaj występuje autokorelacja.
źródło
To jest naprawdę komentarz, ale przekracza dopuszczalny, więc zamieszczam go jako quasi-odpowiedź, ponieważ sugeruje prawidłowy sposób analizy danych szeregów czasowych. .
Dobrze znanym faktem, ale często ignorowanym tutaj i gdzie indziej, jest to, że teoretyczna ACF / PACF, która jest używana do sformułowania wstępnego modelu modelu ARIMA, nie zawiera pulsów / przesunięć poziomów / pulsów sezonowych / lokalnych trendów czasowych. Dodatkowo zakłada stałe parametry i stałą wariancję błędu w czasie. W tym przypadku 21. obserwacja (wartość = 158) jest łatwo oznaczana jako wartość odstająca / impuls, a sugerowana korekta -80 daje zmodyfikowaną wartość 78. Powstały ACF / PACF z zmodyfikowanej serii wykazuje niewiele lub nie ma dowodów na strukturę stochastyczną (ARIMA). W tym przypadku operacja zakończyła się powodzeniem, ale pacjent zmarł. Próbka ACF oparta jest na kowariancji / wariancji, a nadmiernie zawyżona / rozdęta wariancja powoduje obniżenie ACF. Prof. Keith Ord nazwał to kiedyś „efektem Alicji w Krainie Czarów”
źródło
Jak zauważył Stephan Kolassa, w twoich danych nie ma zbyt dużej struktury. Funkcje autokorelacji nie sugerują struktury ARMA (patrz
acf(sales)
,pacf(sales)
) iforecast::auto.arima
nie wybierają żadnego zamówienia AR ani MA.Należy jednak zauważyć, że zerowa normalność w resztach jest odrzucana na poziomie istotności 5%.
Na marginesie:
JarqueBera.test
opiera się na funkcjijarque.bera.test
dostępnej w pakiecietseries
.Uwzględnienie wartości odstającej dodatku w obserwacji 21, która jest wykrywana z
tsoutliers
renderowaniem normalności w resztkach. Dlatego na obserwację zewnętrzną nie ma wpływu na oszacowanie przechwytywania i prognozę.źródło