Modele ARIMA i SARIMA
Składowe AR, MA i I, dobór parametrów za pomocą ACF/PACF, dopasowywanie ARIMA w statsmodels.
Modele ARIMA i SARIMA to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Czym jest ARIMA?
ARIMA to skrót od angielskiego określenia AutoRegressive Integrated Moving Average. Modeluje stacjonarny szereg za pomocą trzech składników: autoregresji (p), całkowania lub różnicowania (d) oraz średniej ruchomej błędów (q), zapisywanych jako ARIMA(p, d, q).
AR(p): autoregresja
Składnik AR przewiduje następną wartość na podstawie liniowej kombinacji własnych p poprzednich wartości. Jeśli dzisiejsza wartość silnie zależy od kilku ostatnich dni, potrzebna jest niezerowa wartość p.
Przykład: p=2 wykorzystuje dwie najnowsze obserwacje jako predyktory.
I(d): integracja / różnicowanie
Składnik I oznacza rząd różnicowania d potrzebny do uzyskania stacjonarności szeregu — dokładnie tę wartość d, którą wyznaczono za pomocą testu ADF w poprzedniej lekcji. d=1 usuwa trend liniowy.
MA(q): średnia ruchoma
Składnik MA modeluje następną wartość na podstawie q wcześniejszych błędów prognoz (szoków). Ujmuje krótkoterminowe korekty szumu, których nie uwzględnia składnik AR.
Dopasowywanie ARIMA w statsmodels
Należy przekazać szereg jako endog oraz wybraną krotkę parametrów.
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())Prognozowanie
Po dopasowaniu można wygenerować przyszłe wartości za pomocą forecast lub get_forecast, które zwraca również przedziały ufności.
preds = fit.forecast(steps=12) # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int() # confidence intervalsWykresy ACF i PACF
Aby wybrać p i q, należy przeanalizować wykresy autokorelacji:
- ACF (autokorelacja) pomaga wybrać q (rząd MA).
- PACF (autokorelacja cząstkowa) pomaga wybrać p (rząd AR).
Należy szukać opóźnienia, przy którym korelacja gwałtownie się urywa.
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())AIC i BIC przy wyborze rzędu
AIC i BIC oceniają dopasowanie modelu, uwzględniając karę za jego złożoność. Im niższa wartość, tym lepiej. Należy dopasować kilka kandydatów (p,d,q) i wybrać ten z najniższą wartością AIC/BIC; BIC silniej karze za dodatkowe parametry.
print("AIC:", fit.aic)
print("BIC:", fit.bic)Przeszukiwanie siatki rzędów
Typowe podejście polega na iterowaniu po niewielkich zakresach wartości p, d i q, dopasowaniu każdego modelu oraz zachowaniu tego z najniższą wartością AIC. Biblioteki takie jak pmdarima.auto_arima automatyzują to wyszukiwanie.
best = None
for p in range(3):
for q in range(3):
try:
f = ARIMA(series, order=(p, 1, q)).fit()
if best is None or f.aic < best[1]:
best = ((p, 1, q), f.aic)
except Exception:
pass
print(best)SARIMA dla sezonowości
SARIMA dodaje składnik sezonowy: (P, D, Q, m), gdzie m oznacza długość sezonu (12 dla danych miesięcznych w cyklu rocznym). Obsługuje powtarzające się wzorce, których zwykły model ARIMA nie potrafi odwzorować.
from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(series,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12))
fit = model.fit()ARIMA a SARIMA
- ARIMA(p,d,q): trend i zależności krótkoterminowe, bez sezonowości.
- SARIMA(p,d,q)(P,D,Q,m): dodaje składniki sezonowe dla powtarzających się cykli.
Jeśli dekompozycja wykazała wyraźną sezonowość, należy wybrać SARIMA.
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat ARIMA.
Podsumowanie
Poznano model ARIMA(p,d,q): AR wykorzystuje wcześniejsze wartości, I oznacza rząd różnicowania, a MA wykorzystuje wcześniejsze błędy. Model dopasowuje się za pomocą ARIMA(endog, order=...), rzędy wybiera się na podstawie ACF/PACF i AIC/BIC, a model rozszerzono do SARIMA w celu obsługi sezonowości. Dalej: Prophet do automatycznego prognozowania.
Często zadawane pytania
Czy lekcja „Modele ARIMA i SARIMA” jest bezpłatna?
Tak — pełny tekst „Modele ARIMA i SARIMA” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Modele ARIMA i SARIMA”?
Składowe AR, MA i I, dobór parametrów za pomocą ACF/PACF, dopasowywanie ARIMA w statsmodels. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Modele ARIMA i SARIMA”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Składowe szeregów czasowych i stacjonarność
- Modele ARIMA i SARIMA
- Prophet do automatycznego prognozowania
- LSTM do prognozowania szeregów czasowych