Che cosa sono i modelli ARIMA?

24 maggio 2024

Autori

Joshua Noble

Data Scientist

Presentazione dei modelli ARIMA

ARIMA è l'acronimo di Autoregressive Integrated Moving Average ed è una tecnica per l'analisi delle serie temporali e per la previsione dei possibili valori futuri di una serie temporale.

La modellazione autoregressiva e la modellazione a media mobile sono due approcci differenti per la previsione di dati delle serie temporali. ARIMA integra questi due approcci, da cui il nome. La previsione è una branca dell'apprendimento automatico che utilizza il comportamento passato di una serie temporale per prevedere uno o più valori futuri di tale serie temporale. Immagina di acquistare del gelato per rifornire un piccolo negozio. Se sai che le vendite di gelato aumentano in modo costante con la bella stagione, probabilmente devi considerare di aumentare l'ordine per le prossime settimane rispetto all'ordine effettuato questa settimana. Di quanto dovrebbe essere più grande l'ordine dipende dall'entità dell'aumento delle vendite di gelato di questa settimana rispetto alle vendite della settimana appena passata. Non possiamo prevedere il futuro senza un passato con cui confrontarlo, quindi i dati delle serie temporali passate sono molto importanti per i modelli ARIMA e per tutti i metodi di previsione e analisi delle serie temporali.

ARIMA è uno degli approcci più utilizzati nella previsione delle serie temporali e può essere utilizzato in due modi diversi a seconda del tipo di dati delle serie temporali con cui stai lavorando. Nel primo caso, abbiamo creato un modello ARIMA non stagionale che non richiede di tenere conto della stagionalità nei dati delle tue serie temporali. Prevediamo il futuro basandoci semplicemente su modelli presenti nei dati passati. Nel secondo caso, teniamo conto della stagionalità, ovvero dei cicli regolari che influenzano le serie temporali. Questi cicli possono essere giornalieri, settimanali o mensili e aiutano a definire modelli nei dati passati delle serie temporali che possono essere utilizzati per prevedere i valori futuri. Come gran parte della data science, il fondamento della previsione consiste nell'avere a disposizione dati di serie temporali validi con cui addestrare i modelli. Una serie temporale è una sequenza ordinata di misurazioni di una variabile a intervalli di tempo equamente distanziati. È importante ricordare che non tutti i set di dati che contengono un elemento temporale sono effettivamente dati di serie temporali a causa di questo requisito di intervalli di tempo equidistanti.

Il metodo Box-Jenkins

Nel 1970 gli statistici George Box e Gwilym Jenkins hanno proposto quello che è diventato noto come metodo The Box-Jenkins per adattarsi a qualsiasi tipo di modello di serie temporale.1 L'approccio parte dal presupposto che il processo che ha generato la serie temporale possa essere approssimato utilizzando un modello se questo è stazionario. Si compone di quattro fasi:

Individuazione: valuta se le serie temporali sono stazionarie e, in caso contrario, quante differenze sono necessarie per renderle stazionarie. Genera quindi dei dati differenziati da utilizzare nei grafici diagnostici. Individua i parametri di un modello ARMA per i dati di autocorrelazione e autocorrelazione parziale.

Stima: utilizza i dati per addestrare i parametri del modello (cioè i coefficienti).

Controllo diagnostico: valuta il modello adattato nel contesto dei dati disponibili e verifica le aree in cui il modello può essere migliorato. In particolare, questo comporta la verifica dell'overfitting e il calcolo degli errori residui.

Previsione: ora che hai un modello, può iniziare a prevedere i valori con il tuo modello.

Una volta confermato che il modello si adatta correttamente ai dati, sei pronto per iniziare la previsione ARIMA. Esamineremo in dettaglio ognuna di queste fasi.

Caratteristiche dei dati delle serie temporali

Una serie temporale può essere stazionaria o non stazionaria. Una serie temporale stazionaria ha proprietà statistiche che rimangono costanti nel tempo. Questo significa che statistiche come la media, la varianza e l'autocorrelazione non cambiano nel corso dei dati. La maggior parte dei metodi di previsione statistica, incluso l'ARIMA, si basa sul presupposto che le serie temporali possano essere rese approssimativamente stazionarie attraverso una o più trasformazioni. Una serie stazionaria è relativamente facile da prevedere perché puoi semplicemente prevedere che le proprietà statistiche saranno più o meno le stesse in futuro come lo erano in passato. Lavorare con dati non stazionari è possibile, ma difficile con un approccio come l'ARIMA.

Un'altra funzione principale dei dati delle serie temporali è la presenza di una tendenza nei dati. Ad esempio, i prezzi dei prodotti di base in un negozio di alimentari degli ultimi 50 anni mostrerebbero una tendenza perché l'inflazione li spingerebbe al rialzo. Prevedere i dati che contengono tendenze può essere difficile perché la tendenza oscura gli altri modelli nei dati. Se i dati hanno una linea di tendenza stabile alla quale ritornano costantemente, possono essere stazionari per tendenza, nel qual caso la tendenza può essere rimossa semplicemente adattando una linea di tendenza e sottraendo la tendenza dai dati prima di adattarvi un modello. Se i dati non sono stazionari per tendenza, potrebbero essere stazionari per differenza, nel qual caso la tendenza può essere rimossa differenziando. Il modo più semplice per la differenziazione consiste nel sottrarre il valore precedente da ogni valore per ottenere una misura della quantità di variazione presente nei dati della serie temporale. Quindi, per esempio, se Yt è il valore della serie temporale Y nel periodo t, allora la prima differenza di Y nel periodo t è uguale a Yt-Yt-1.

Qui possiamo vedere un grafico di serie temporali che non sono stazionarie. Presenta un'evidente tendenza al rialzo e mostra una stagionalità.

La stagionalità qui è un normale ciclo di 12 mesi. Questo problema potrebbe essere risolto differenziando le serie temporali di 12 unità in modo da distinguere l'aprile 1990 dall'aprile 1989. Dopo aver applicato la differenziazione con un ritardo di 12 unità alle serie temporali, possiamo vedere serie temporali più stazionarie. La varianza di queste serie temporali cambia ancora, ma un modello ARIMA potrebbe essere adatto a queste serie temporali e alle previsioni fatte utilizzandolo.

La stazionarietà può creare confusione, ad esempio, una serie temporale che ha un comportamento ciclico ma nessuna tendenza o stagionalità è ancora stazionaria. Fino a quando i cicli non hanno una lunghezza fissa quando osserviamo le serie, non possiamo sapere dove si verificheranno i picchi e le minime dei cicli. Generalmente una serie temporale stazionaria non avrà modelli prevedibili a lungo termine. Se si dovessero tracciare i dati delle serie temporali in un grafico a linee, apparirebbero approssimativamente orizzontali con una varianza costante e senza picchi o cali significativi.

Autocorrelazione

Possiamo vedere il grado in cui una serie temporale è correlata con i suoi valori passati calcolando l'autocorrelazione. Il calcolo dell'autocorrelazione può rispondere a domande sulla casualità o meno dei dati e sulla relazione tra un'osservazione e un'altra immediatamente adiacente. Questo può darci un'idea di quale tipo di modello potrebbe rappresentare meglio i dati. Le autocorrelazioni sono spesso tracciate per vedere la correlazione tra i punti, fino all'unità di ritardo inclusa.

Ogni ritardo nell'autocorrelazione è definito come:

 rK=T=K+1T(yT-y¯)-(yT-K-y¯)T=1T(yT-y¯)2

r è qualsiasi ritardo nell'autocorrelazione, T è la lunghezza della serie temporale e y è il valore della serie temporale. I coefficienti di autocorrelazione costituiscono la funzione di autocorrelazione o ACF.

In ACF, il coefficiente di correlazione è nell'asse x, mentre il numero di ritardi (indicato come ordine di ritardo) è mostrato nell'asse y. Un grafico di autocorrelazione può essere creato in python usando plot_acf dalla libreria statsmodels e può essere creato in R utilizzando la funzione acf.

In questo grafico ACF di una serie temporale differenziata con un ritardo di 12 unità di tempo, il ritardo zero è correlato perfettamente con se stesso. Il primo ritardo è negativo, il secondo è leggermente positivo, il terzo è negativo e così via. Noterai che il 12° ritardo è fortemente correlato a se stesso. Dal momento che stavamo esaminando dati mensili, tutto questo ha un senso. Possiamo vedere che l'autocorrelazione mantiene all'incirca lo stesso ciclo in tutte le serie temporali, il che indica che le nostre serie temporali contengono ancora una stagionalità significativa. I grafici ACF sono utili anche per aiutare a dedurre i parametri del modello ARIMA che meglio si adattano a questi dati.

Funzione di autocorrelazione parziale (PACF)

Un altro grafico importante nella preparazione all'utilizzo di un modello ARIMA sui dati di serie temporali è la funzione di autocorrelazione parziale. Un grafico ACF mostra la relazione tra yt e yt−k per diversi valori di k. Se yt e yt−1 sono correlati, allora anche yt−1 e yt−2 saranno correlati. Ma è anche possibile che yt e yt−2 siano correlati perché sono entrambi connessi a yt−1, piuttosto che a causa di qualsiasi nuova informazione contenuta in yt−2 che potrebbe essere utilizzata nella previsione di yt. Per superare questo problema, possiamo utilizzare le autocorrelazioni parziali per rimuovere un certo numero di osservazioni di ritardo. Queste misurano la relazione tra yt e yt−k dopo aver eliminato gli effetti dei ritardi da 1 a k. Pertanto, la prima autocorrelazione parziale è identica alla prima autocorrelazione, perché non c'è nulla tra di loro da rimuovere. Ogni autocorrelazione parziale può essere stimata come l'ultimo coefficiente in un modello autoregressivo.

Indipendentemente se lavori in R o Python o in un altro linguaggio o libreria di programmazione, avrai un modo per calcolare la PACF e creare un grafico PACF per una facile ispezione. Un grafico di autocorrelazione può essere creato in Python utilizzando plot_pacf dalla libreria statsmodels e può essere creato in R utilizzando la funzione pacf.

Questa PACF utilizza gli stessi dati del grafico ACF precedente. Il grafico PACF parte da 1 anziché da 0 come nel grafico ACF e mostra forti correlazioni fino al ritardo di 1,0, che è correlato allo stesso mese dell'anno precedente. Dopo quel primo anno, vediamo una quantità decrescente di autocorrelazione all'aumentare del numero di ritardi. Dato che stavamo esaminando dati mensili con una varianza che cambia di anno in anno, questo ha un senso.

Autoregressione e media mobile

Come indica il nome, l'acronimo ARIMA integra i modelli di autogressione e media mobile in un unico modello a seconda dei parametri passati. Questi due modi di modellare il cambiamento nel corso delle serie temporali sono correlati, ma presentano alcune differenze fondamentali. In un modello di autoregressione, prevediamo la variabile di interesse utilizzando una combinazione lineare di valori passati della variabile. Il termine autoregressione indica che si tratta di una regressione della variabile rispetto a se stessa. Questa tecnica è simile a un modello di regressione lineare nel modo in cui utilizza i valori passati come input per la regressione. L'autoregressione è definita come:

 yT=C+ϕ1yT-1+ϕ2yT-2+...ϕqyT-q+ϵT

dove εt è il rumore bianco. È come una regressione ma con valori ritardati di yt come predittori. Ci riferiamo a questo nome come a un modello AR (p), un modello autoregressivo di ordine p.

Un modello a media mobile utilizza invece gli errori di previsione passati anziché utilizzare i valori passati della variabile di previsione in una regressione. Una media mobile fa semplicemente la media di valori k in una finestra, dove k è la dimensione della finestra della media mobile, e poi fa avanzare la finestra. I valori di previsione vengono valutati utilizzando i valori effettivi per determinare l'errore in ogni fase della serie temporale. Una media mobile è definita come:

 yT=C+ϵT+θ1ϵT-1+θ2ϵT-2+...θqϵT-q

εt è un rumore bianco. Lo chiamiamo modello MA (q), un modello a media mobile di ordine q. Naturalmente, non osserviamo i valori di εt, quindi non si tratta propriamente di una regressione nel senso classico del termine. Tieni presente che ogni valore di yt può essere considerato come una media mobile ponderata degli ultimi errori di previsione.

In genere, in un modello ARIMA si utilizza il termine autoregressivo (AR) o il termine della media mobile (MA). Per stabilire quale di questi termini sia il più appropriato, spesso vengono utilizzati il grafico ACF e il grafico PACF.

Specificare un modello ARIMA

Una volta che la serie temporale è stata resa stazionaria e la natura delle auto-correlazioni è stata determinata, è possibile adattare un modello ARIMA. Esistono 3 parametri chiave per un modello ARIMA, solitamente denominati p, d e q.

p: l'ordine della parte autoregressiva di ARIMA

d: il grado di differenziazione

q: l'ordine della parte della media mobile

In genere vengono scritti nel seguente ordine: ARIMA(p, d, q). Numerosi linguaggi di programmazione e pacchetti forniranno una funzione ARIMA che può essere chiamata con le serie temporali da analizzare e questi tre parametri. Molto spesso i dati vengono suddivisi in un set di addestramento e un set di test in modo che l'accuratezza del modello possa essere testata dopo che sono stati addestrati. Di solito non è possibile dire solo guardando un grafico temporale quali valori di p e q saranno più appropriati per i dati. Tuttavia, spesso è possibile utilizzare i grafici ACF e PACF per stabilire i valori appropriati per p e q e quindi questi grafici sono termini importanti per lavorare con ARIMA

Una griglia approssimativa per quando utilizzare i termini AR nel modello è quando:

  • I grafici ACF mostrano che l'autocorrelazione decade verso zero
  • Il grafico PACF si interrompe rapidamente verso lo zero
  • L'ACF di una serie stazionaria mostra un valore positivo al Ritardo - 1

Una rubrica approssimativa per quando utilizzare i termini MA nel modello è quando:

  • Autocorrelato negativamente a Ritardo - 1
  • ACF che cala bruscamente dopo alcuni ritardi
  • La PACF diminuisce gradualmente e non improvvisamente

Potresti incontrare alcuni tipi classici di modelli ARIMA.

ARIMA (1.0.0) = modello autoregressivo del primo ordine: se la serie è fissa e autocorrelata, forse può essere prevista come un multiplo del suo valore precedente, più una costante. Se le vendite di gelato di domani possono essere previste direttamente utilizzando solo le vendite di gelato di oggi, allora questo è un modello autoregressivo di primo ordine.

ARIMA (0.1.0) = passeggiata aleatoria: se la serie temporale non è stazionaria, il modello più semplice possibile è un modello di passeggiata aleatoria. Una passeggiata aleatoria è diversa da un elenco di numeri casuali perché il valore successivo nella sequenza è una modifica del valore precedente nella sequenza. Questo è spesso il modo in cui modelliamo i valori differenziati per i prezzi delle azioni.

ARIMA(1.1.0) = modello autoregressivo di primo ordine differenziato: se gli errori di un modello di passeggiata aleatoria sono autocorrelati, forse il problema può essere risolto aggiungendo un ritardo della variabile dipendente all'equazione di previsione, cioè facendo regredire la prima differenza di Y su se stessa ritardata di un periodo.

ARIMA (0.1.1) senza costante = semplici modelli di livellamento esponenziale: si utilizza per dati di serie temporali senza stagionalità o tendenza. Richiede un singolo parametro di livellamento che controlli il tasso di influenza dalle osservazioni temporali (indicato con un valore del coefficiente compreso tra 0 e 1). In questa tecnica, valori più vicini a 1 indicano che il modello presta poca attenzione alle osservazioni passate, mentre valori più bassi stabiliscono che nelle previsioni viene presa in considerazione una parte maggiore della storia.

ARIMA(0.1.1) con costante = modelli di livellamento esponenziale semplice con crescita. È lo stesso del semplice livellamento esponenziale, tranne per il fatto che esiste un termine costante additivo che fa crescere il valore Y della serie temporale man mano che procede.

Esistono molti altri modi in cui i modelli ARIMA possono essere adattati, motivo per cui spesso calcoliamo più modelli e li confrontiamo per vedere quale si adatta meglio ai nostri dati. Sono tutti modelli del primo ordine, il che significa che mappano processi lineari. Esistono modelli del secondo ordine che mappano i processi quadratici e modelli superiori che mappano processi più complessi.

Confronto dei modelli ARIMA

In genere più modelli ARIMA sono adattati ai dati e confrontati tra loro per trovare quale insieme prevede i modelli visti nei dati delle serie temporali. Esistono tre metriche chiave per valutare l'accuratezza di un modello ARIMA:

Criterio informativo di Akaike o AIC. Questo criterio è utilizzato ampiamente per selezionare i predittori per i modelli di regressione ed è utile anche per stabilire l'ordine di un modello ARIMA. L'AIC quantifica sia la bontà di adattamento del modello, sia la semplicità/parsimonia del modello in un'unica statistica. Un punteggio AIC più basso è meglio di uno più alto, quindi preferiremmo il modello con un punteggio più basso. L'AIC favorisce i modelli più semplici, i modelli più complessi ricevono punteggi più alti purché la loro accuratezza sia più o meno la stessa di un modello più semplice. Esiste anche l'AIC o AICC corretto a cui viene semplicemente applicata una piccola correzione per la dimensione del campione.

Criterio informativo bayesiano o BIC. Questo è un altro criterio per la selezione del modello che penalizza la complessità ancora più dell'AIC. Come per l'AIC, i modelli con BIC più basso sono generalmente preferiti a quelli con punteggi più alti. Se il tuo modello verrà utilizzato per previsioni a lungo termine, il BIC potrebbe essere preferibile, mentre per previsioni più a breve termine potrebbe essere preferibile l'AIC.

Il valore sigma quadrato o sigma2 è la varianza dei residui del modello. Il termine sigma descrive la volatilità del processo ipotizzato. Se disponi di dati altamente volatili ma un punteggio sigma al quadrato molto basso o viceversa dati non volatili ma un punteggio sigma al quadrato alto, è segno che il modello non sta acquisendo correttamente l'effettivo processo di generazione dei dati.

Se abbiamo trattenuto un set di dati di test, possiamo anche confrontare metriche di precisione come RMSE per diversi intervalli di previsione. Il modello ARIMA può prevedere i valori per una singola fase temporale futura o contemporaneamente per più fasi.

Variazioni di ARIMA

Un altro approccio alla configurazione e al confronto dei modelli ARIMA consiste nell'utilizzare Auto-ARIMA, che applica attività di configurazione automatizzate alla generazione e al confronto dei modelli ARIMA. Esistono diversi modi per arrivare a un modello ottimale. L'algoritmo genererà più modelli e tenterà di ridurre al minimo l'AICc e l'errore della stima di massima verosimiglianza per ottenere un modello ARIMA.

Seasonal Autoregressive Integrated Moving Average, SARIMA o Seasonal ARIMA, è un'estensione di ARIMA che supporta i dati di serie temporali con una componente stagionale. A tale scopo, vengono aggiunti tre nuovi iperparametri per specificare l'autoregressione, la differenziazione e la media mobile per la componente stagionale della serie, nonché un parametro aggiuntivo per il periodo della stagionalità. Un modello SARIMA è tipicamente espresso come SARIMA((p,d,q),(P,D,Q)), in cui le lettere minuscole indicano la componente non stagionale della serie temporale e le lettere maiuscole indicano la componente stagionale

I modelli autoregressivi vettoriali (o VAR Models) vengono utilizzati per le serie temporali multivariate. Sono strutturati in modo che ogni variabile sia una funzione lineare dei ritardi passati di se stessa e dei ritardi passati delle altre variabili.

I modelli ARIMA sono un potente strumento per analizzare i dati delle serie temporali per conoscere i processi passati e per prevedere i valori futuri di una serie temporale. I modelli ARIMA combinano modelli autoregressivi e modelli a media mobile per fornire al previsore uno strumento altamente parametrizzabile che può essere utilizzato con un'ampia varietà di dati di serie temporali.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Soluzioni correlate
Strumenti e soluzioni per l'analytics

Per prosperare, le aziende devono utilizzare i dati per fidelizzare i clienti, automatizzare i processi aziendali e innovare con soluzioni basate sull'AI.

Esplora le soluzioni di analytics
Servizi di consulenza per dati e analytics

Sblocca il valore dei dati aziendali con IBM Consulting e crea un'organizzazione basata su insight in grado di generare vantaggi aziendali.

Esplora i servizi di analytics
IBM Cognos Analytics

Introduzione a Cognos Analytics 12.0, insight basati sull'AI per prendere decisioni migliori.

Esplora Cognos Analytics
Fasi successive

Per prosperare, le aziende devono utilizzare i dati per fidelizzare i clienti, automatizzare i processi aziendali e innovare con soluzioni basate sull'AI.

Esplora le soluzioni di analytics Esplora i servizi di analytics
Note a piè di pagina

1 Time Series Analysis: Forecasting and Control, Holden Day, 1970.