0Pricing
Learn AI with Python · Lekcja

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 intervals

Wykresy 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

  1. Składowe szeregów czasowych i stacjonarność
  2. Modele ARIMA i SARIMA
  3. Prophet do automatycznego prognozowania
  4. LSTM do prognozowania szeregów czasowych
← Powrót do Learn AI with Python