0Pricing
Learn AI with Python · Lezione

Modelli ARIMA e SARIMA

Componenti AR, MA e I, scelta dei parametri con ACF/PACF, addestramento di ARIMA con statsmodels

Modelli ARIMA e SARIMA è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Che cos'è ARIMA?

ARIMA è l'acronimo di AutoRegressive Integrated Moving Average. Modella una serie stazionaria usando tre componenti: autoregressione (p), integrazione/differenziazione (d) e media mobile degli errori (q), indicate come ARIMA(p, d, q).

AR(p): autoregressivo

Il termine AR prevede il valore successivo a partire da una combinazione lineare dei suoi p valori precedenti. Se il valore odierno dipende fortemente dagli ultimi giorni, è necessario un p diverso da zero.

Esempio: p=2 usa le due osservazioni più recenti come predittori.

I(d): integrazione / differenziazione

Il termine I indica l'ordine di differenziazione d necessario per rendere stazionaria la serie: è esattamente il valore d trovato con il test ADF nella lezione precedente. d=1 rimuove un trend lineare.

MA(q): media mobile

Il termine MA modella il valore successivo usando i precedenti q errori di previsione, o shock. Cattura le correzioni del rumore a breve termine che la componente AR non riesce a cogliere.

Eseguire il fit di ARIMA in statsmodels

Passi la serie come endog e la tupla dell'ordine scelta.

from statsmodels.tsa.arima.model import ARIMA

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

Prevedere i valori futuri

Una volta eseguito il fit, generi i valori futuri con forecast o get_forecast, che fornisce anche gli intervalli di confidenza.

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

Grafici ACF e PACF

Per scegliere p e q, esamini i grafici di autocorrelazione:

  • ACF (autocorrelazione) aiuta a scegliere q (ordine MA).
  • PACF (autocorrelazione parziale) aiuta a scegliere p (ordine AR).

Individui il lag in corrispondenza del quale la correlazione si interrompe bruscamente.

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

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

AIC e BIC per scegliere l'ordine

AIC e BIC valutano l'adattamento del modello penalizzandone al contempo la complessità. Un valore più basso è preferibile. Esegua il fit di diversi candidati (p,d,q) e scelga quello con l'AIC/BIC più basso; il BIC penalizza i parametri aggiuntivi in modo più marcato.

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

Ricerca a griglia degli ordini

Un approccio comune consiste nel ciclare su piccoli intervalli di p, d e q, eseguire il fit di ciascun modello e conservare quello con l'AIC più basso. Librerie come pmdarima.auto_arima automatizzano questa ricerca.

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 per la stagionalità

SARIMA aggiunge una componente stagionale: (P, D, Q, m), dove m è la durata della stagione, ad esempio 12 per dati mensili con stagionalità annuale. Gestisce schemi ripetitivi che il semplice ARIMA non è in grado di gestire.

from statsmodels.tsa.statespace.sarimax import SARIMAX

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

ARIMA e SARIMA a confronto

  • ARIMA(p,d,q): trend e dipendenza a breve termine, senza stagionalità.
  • SARIMA(p,d,q)(P,D,Q,m): aggiunge termini stagionali per i cicli ripetitivi.

Se la scomposizione ha mostrato una stagionalità evidente, scelga SARIMA.

Verifica rapida

Verifichi le Sue conoscenze su ARIMA.

Riepilogo

Ha imparato ARIMA(p,d,q): AR usa i valori passati, I indica l'ordine di differenziazione e MA usa gli errori passati. Ha eseguito il fit con ARIMA(endog, order=...), ha scelto gli ordini tramite ACF/PACF e AIC/BIC ed ha esteso il modello a SARIMA per gestire la stagionalità. Prossimo argomento: Prophet per la previsione automatizzata.

Domande Frequenti

La lezione «Modelli ARIMA e SARIMA» è gratuita?

Sì — il testo completo di «Modelli ARIMA e SARIMA» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Modelli ARIMA e SARIMA»?

Componenti AR, MA e I, scelta dei parametri con ACF/PACF, addestramento di ARIMA con statsmodels Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Modelli ARIMA e SARIMA»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Componenti e stazionarietà delle serie temporali
  2. Modelli ARIMA e SARIMA
  3. Prophet per il forecasting automatizzato
  4. LSTM per il forecasting delle serie temporali
← Torna a Learn AI with Python