Lær AI med Python · Lektion

ARIMA- og SARIMA-modeller

AR-, MA- og I-komponenter, parametervalg med ACF/PACF, tilpasning af ARIMA med statsmodels.

Lektion 2 af 413 trin

ARIMA- og SARIMA-modeller er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad er ARIMA?

ARIMA står for autoregressiv integreret glidende middelværdi. Modellen beskriver en stationær serie ved hjælp af tre dele: autoregression (p), integration/differensering (d) og et glidende gennemsnit af fejl (q), skrevet som ARIMA(p, d, q).

AR(p): Autoregressiv

AR-leddet forudsiger den næste værdi ud fra en lineær kombination af seriens egne p foregående værdier. Hvis dagens værdi i høj grad afhænger af de seneste dage, har du brug for et p, der er forskelligt fra nul.

Eksempel: p=2 bruger de to seneste observationer som prædiktorer.

I(d): Integration / differensering

I-leddet er den d-differensorden, der kræves for at gøre serien stationær, præcis det d, du fandt med ADF-testen i den foregående lektion. d=1 fjerner en lineær tendens.

MA(q): Glidende gennemsnit

MA-leddet modellerer den næste værdi ved hjælp af de seneste q prognosefejl (stød). Det opfanger kortsigtede støjkorrektioner, som AR-delen ikke fanger.

Tilpasning af ARIMA i statsmodels

Angiv din serie som endog og den valgte ordenstupel.

from statsmodels.tsa.arima.model import ARIMA

model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())

Prognoser

Når modellen er tilpasset, kan du generere fremtidige værdier med forecast eller get_forecast, som også giver konfidensintervaller.

preds = fit.forecast(steps=12)        # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int()                    # confidence intervals

ACF- og PACF-diagrammer

Undersøg autokorrelationsdiagrammer for at vælge p og q:

  • ACF (autokorrelation) hjælper med at vælge q (MA-orden).
  • PACF (partiel autokorrelation) hjælper med at vælge p (AR-orden).

Se efter det lag, hvor korrelationen stopper brat.

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())

AIC og BIC til valg af orden

AIC og BIC vurderer modellens tilpasning og straffer samtidig kompleksitet. Lavere er bedre. Tilpas flere kandidater med (p,d,q), og vælg den med den laveste AIC/BIC; BIC straffer ekstra parametre hårdere.

print("AIC:", fit.aic)
print("BIC:", fit.bic)

Gittersøgning efter ordener

En almindelig tilgang gennemløber små intervaller af p, d og q, tilpasser hver kandidat og beholder den med den laveste AIC. Biblioteker som pmdarima.auto_arima automatiserer denne søgning.

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 til sæsonudsving

SARIMA tilføjer en sæsonkomponent: (P, D, Q, m), hvor m er sæsonlængden (12 for månedlige data med årlig sæson). Den håndterer gentagne mønstre, som almindelig ARIMA ikke kan håndtere.

from statsmodels.tsa.statespace.sarimax import SARIMAX

model = SARIMAX(series,
    order=(1, 1, 1),
    seasonal_order=(1, 1, 1, 12))
fit = model.fit()

ARIMA eller SARIMA

  • ARIMA(p,d,q): tendens og kortsigtet afhængighed uden sæsonudsving.
  • SARIMA(p,d,q)(P,D,Q,m): tilføjer sæsonled til gentagne cyklusser.

Hvis din opdeling viste tydelige sæsonudsving, skal du vælge SARIMA.

Hurtigt tjek

Test din viden om ARIMA.

Opsummering

Du lærte om ARIMA(p,d,q): AR bruger tidligere værdier, I er differensordenen, og MA bruger tidligere fejl. Du tilpassede modellen med ARIMA(endog, order=...), valgte ordener via ACF/PACF og AIC/BIC og udvidede den til SARIMA for sæsonudsving. Næste emne: Prophet til automatiserede prognoser.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “ARIMA- og SARIMA-modeller” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “ARIMA- og SARIMA-modeller”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “ARIMA- og SARIMA-modeller”?

AR-, MA- og I-komponenter, parametervalg med ACF/PACF, tilpasning af ARIMA med statsmodels. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “ARIMA- og SARIMA-modeller”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Tidsseriers komponenter og stationaritet
  2. ARIMA- og SARIMA-modeller
  3. Prophet til automatiseret forecasting
  4. LSTM til forecasting af tidsserier
← Tilbage til Lær AI med Python