ARIMA è un’abbreviazione che rappresenta AutoRegressive Incorporated Moving Normal. È una classe di modelli che cattura una suite di varie strutture mondane standard nelle informazioni di disposizione temporale.

In questo esercizio didattico troverete come costruire un modello ARIMA per informazioni sulla disposizione del tempo con Python.

Dopo aver terminato questo esercizio didattico, lo saprete:

Sul modello ARIMA i parametri utilizzati e i sospetti che il modello utilizza.

Istruzioni passo dopo passo per adattare un modello ARIMA alle informazioni e utilizzarlo per realizzare figure.

Istruzioni passo dopo passo per progettare il modello ARIMA sul vostro problema di disposizione del tempo.

Trovate come prepararvi e immaginare le informazioni sulla disposizione dei tempi e creare modelli determinanti autoregressivi nel mio nuovo libro, con esercizi didattici a 28 bit per bit, e codice pitone completo.

Che ne dite di cominciare?

Aggiornato ad aprile/2019: Aggiornata la connessione al set di dati.

Aggiornato a settembre/2019: Guide aggiornate per utilizzare l’interfaccia di programmazione più recente.

Modello normale in movimento coordinato autoregressivo

Un modello ARIMA è una classe di modelli fattuali per la scomposizione e la determinazione delle informazioni sulla disposizione temporale.

Esso tiene inequivocabilmente conto di una serie di strutture standard nelle informazioni sulla disposizione temporale, e in questa capacità fornisce una tecnica semplice ma innovativa per la realizzazione di calibri per la disposizione temporale.

ARIMA è un’abbreviazione che rappresenta AutoRegressive Incorporated Moving Normal. È una speculazione del più semplice AutoRegressive Moving Normal e include il pensiero della combinazione.

Questa abbreviazione è inconfondibile, cattura le parti chiave del modello stesso. Velocemente, lo sono:

AR: Autoregressione. Un modello che utilizza la necessaria connessione tra la percezione e un certo numero di percezioni rallentate.

I: Incorporato. L’utilizzo della differenziazione delle percezioni grezze (per esempio sottraendo una percezione dalla percezione al passo temporale passato) in modo da rendere stazionaria la disposizione temporale.

Mamma: Spostamento normale. Un modello che utilizza l’affidamento tra una percezione e un errore persistente di un modello normale in movimento applicato alle percezioni allentate.

Ognuna di queste parti è inequivocabilmente indicata nel modello come parametro. Viene utilizzata la documentazione standard di ARIMA(p,d,q) dove i parametri sono sostituiti con qualità di numero intero per mostrare rapidamente il particolare modello ARIMA utilizzato.

I parametri del modello ARIMA si caratterizzano come inseguimenti:

p: Il numero di percezioni di allentamento incorporato nel modello, chiamato anche richiesta di allentamento.

d: Le occasioni in cui le percezioni grezze sono diverse sono chiamate anche il livello di differenza.

d: La dimensione della finestra normale in movimento, chiamata anche richiesta di movimento normale.

Viene sviluppato un modello di ricaduta lineare che include il numero e il tipo di termini predefiniti, e le informazioni sono impostate con un livello di differenziazione in modo da renderle stazionarie, ad esempio, per espellere pattern e strutture regolari che influenzano negativamente il modello di ricaduta.

Una stima di 0 può essere utilizzata per un parametro, che mostra di non utilizzare quel componente del modello. Così, il modello ARIMA può essere progettato per riprodurre la capacità di un modello ARMA, e anche un modello AR, I o Mama di base.

Ricevere un modello ARIMA per un accordo di periodo accetta che la procedura di base che ha prodotto le percezioni è una procedura ARIMA. Questo può apparire evidente, tuttavia, ispira la necessità di affermare i sospetti del modello nelle percezioni grezze e negli errori persistenti delle figure del modello.

Poi, che ne dite di dare un’occhiata a come possiamo utilizzare il modello ARIMA in Python. Inizieremo con l’accatastare una disposizione temporale univaria di base.

Dataset di offerte di prodotti per la pulizia

Questo set di dati descrive il numero di offerte di detergenti da un mese all’altro in un arco di tempo pluriennale.

Le unità sono un business tally e ci sono 36 percezioni. Il primo set di dati è accreditato a Makridakis, Wheelwright e Hyndman (1998).

Di seguito è riportato un caso di impilamento del set di dati del Cleanser Deals con panda con capacità personalizzata di analizzare il campo data-ora. Il dataset è basato su un anno soggettivo, per questa situazione 1900.

3

4

5

6

7

8

9

10

11

da panda importare read_csv

da data e ora di importazione dei panda

da matplotlib importazione pyplot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

serie = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

stampa(serie.testina())

serie.plot()

pyplot.show()

Eseguendo l’esempio si stampano le prime 5 righe del set di dati.

Mese

1901-01-01 266.0

1901-02-01 145.9

1901-03-01 183.1

1901-04-01 119.3

1901-05-01 180.3

Nome: Vendite, dtype: float64

1

2

3

4

5

6

7

Mese

1901-01-01 266.0

1901-02-01 145.9

1901-03-01 183.1

1901-04-01 119.3

1901-05-01 180.3

Nome: Vendite, dtype: float64

I dati vengono anche tracciati come serie temporale con il mese lungo l’asse delle ascisse e le cifre di vendita sull’asse delle ordinate.

Diamo anche un rapido sguardo ad una trama di autocorrelazione delle serie temporali. Anche questa è incorporata nei panda. L’esempio qui sotto traccia l’autocorrelazione per un gran numero di ritardi nelle serie temporali.

da panda importare read_csv

da data e ora di importazione dei panda

da matplotlib importazione pyplot

da pandas.plotting import autocorrelation_plot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

serie = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

autocorrelazione_plot(serie)

pyplot.show()

1

2

3

4

5

6

7

8

9

10

11

da panda importare read_csv

da data e ora di importazione dei panda

da matplotlib importazione pyplot

da pandas.plotting import autocorrelation_plot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

serie = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

autocorrelazione_plot(serie)

pyplot.show()

Eseguendo il modello, possiamo vedere che c’è un rapporto positivo con i pantaloni iniziali da 10 a 12 che è forse enorme per i primi 5 pantaloni.

Una fase iniziale decente per il parametro AR del modello potrebbe essere 5.

ARIMA con Pitone

La libreria di statsmodelli dà la possibilità di adattarsi ad un modello ARIMA.

Un modello ARIMA può essere realizzato utilizzando la libreria di statsmodelli come inseguimento:

Caratterizzare il modello chiamando ARIMA() e andando nei parametri p, d, e q.

Il modello viene impostato sulle informazioni di preparazione chiamando il lavoro di adattamento().

Le previsioni possono essere fatte chiamando il lavoro di previsione() e determinando l’elenco dei tempi da anticipare.

Dovremmo iniziare con qualcosa di semplice. Adatteremo un modello ARIMA all’intero set di dati di Cleanser Deals e valuteremo i restanti errori.

Per cominciare, montiamo un modello ARIMA(5,1,0). Questo imposta l’allentamento un incentivo a 5 per l’autoregressione, utilizza una richiesta di distinzione di 1 per rendere stazionaria la disposizione del tempo, e utilizza un modello normale mobile di 0.

Quando si adatta il modello, vengono forniti molti dati di indagine sull’attacco del modello a ricaduta diretta. Possiamo eliminare questa situazione impostando la contesa a 0.