Calcolo degli indici di stagionalità per stagionalità complessa


11

Voglio prevedere gli articoli al dettaglio (per settimana) usando il livellamento esponenziale. Sono bloccato in questo momento su come calcolare, archiviare e applicare gli indici di sesonalità.

Il problema è che tutti gli esempi che ho trovato riguardano una sorta di semplice stagionalità. Nel mio caso ho i seguenti problemi: 1. Le stagioni non si verificano nella stessa settimana di ogni anno: sono mobili. Martedì grasso, quaresima, pasqua e pochi altri. 2. Ci sono stagioni che cambiano a seconda dell'anno. Ad esempio, c'è una stagione delle festività nazionale. A seconda che la vacanza sia vicina al fine settimana, i clienti lasceranno o meno la città. Quindi è un po 'come avere due stagioni: una in cui i clienti lasciano la città e una in cui non lasciano la città. 3. A volte si verificano due (o 3) stagioni contemporaneamente. Ad esempio, abbiamo avuto la stagione "Mardi-Gras" contemporaneamente alla stagione di San Valentino.
4. A volte le stagioni cambiano di durata. Ad esempio, la "stagione di Halloween" è iniziata all'inizio di quest'anno. Anche il Natale è un altro esempio, dove sembra che ogni anno iniziamo prima a trasportare i prodotti.

Mi sembra che debba trovare un modo per impostare una sorta di "profili stagionali" che poi, a seconda del particolare scenario, vengono in qualche modo aggiunti per ottenere l'indice stagionale corretto. Ha senso?

Qualcuno sa dove posso trovare informazioni pratiche su come farlo?

Grazie Edgard

Risposte:


7

Per i tipi di stagionalità che descrivi, l'approccio variabile fittizio è probabilmente il migliore. Tuttavia, questo è più facile da gestire in un framework ARIMA rispetto a un framework di smoothing esponenziale. dove ogni variabile corrisponde a uno degli eventi festivi o festivi. Ecco come la funzione in R si adatterà alle variabili di regressione (come regressione con errori ARIMA, non come modello ARIMAX).

yt=a+b1Dt,1+⋯+bmDt,m+NtNt∼ARIMA
Dt,karima

Se vuoi davvero restare fedele al framework di smoothing esponenziale, c'è una discussione su come includere le covariate nel mio libro del 2008 sul smoothing esponenziale . Potresti anche guardare il mio recente articolo sul livellamento esponenziale con complessa stagionalità sebbene i tipi di complicazioni stagionali che discutiamo siano più difficili del tipo di festival commovente che descrivi.


Ciao Kwak e Rob. Grazie per l'attenzione. Volevo usare il livellamento esponenziale perché questo è ciò che mi è più familiare. Sto pensando che devo imparare su come usare il framework ARIMA. Potresti consigliarmi un buon libro che mi aiuterebbe a imparare abbastanza sul framework ARIMA per applicare un approccio così fittizio variabile? Ho "Previsione, serie storica e regressione" di Bowerman e "Previsione: pratica e processo per la gestione della domanda" di Levenbach, che ho usato per conoscere il livellamento esponenziale. Non so se questi siano sufficientemente dettagliati per ciò di cui avrei bisogno. Grazie!
— elriba,

Bowerman O'Connell e Koehler sono abbastanza bravi a presentare i modelli ARIMA, ma non credo che includano ARIMA con le covariate. Potresti provare il mio libro di testo del 1998 che tratta la modellazione e la regressione di ARIMA con errori ARIMA a livello introduttivo. Vedi robjhyndman.com/forecasting per i dettagli.
— Rob Hyndman,

1

Una semplice soluzione sarebbe quella di includere manichini di eventi nelle tue specifiche:

(1)yt^=λ1yt−1+...+λkyt−k+ϕ1Dt,1+ϕmDt,m

dove è un indicatore che assume valore se la settimana ha l'evento (diciamo martedì) e 0 altrimenti, per tutti gli eventi che ritieni importanti.Dt,m1tmm

La prima parte della specifica è essenzialmente una levigatura esponenziale ma con peso variabile in funzione dei ritardi (e stimato da OLS).λ1yt−1+...+λkyt−k

Ciò presuppone che tu abbia almeno 20 osservazioni per ciascun evento (ovvero 20 "martedì grasso"). In caso contrario, puoi provare a raggruppare alcuni eventi insieme (ad esempio martedì e festa del lavoro).

R per adattarsi (1) è piuttosto diretto, supponendo che dlsales sia stazionario e D sia la tua matrice di variabili fittizie:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

A partire da qui, puoi porre domande più specifiche sulla parte della mia risposta che non ti sono familiari (non so quale sia il tuo livello nelle statistiche).


2
In realtà, la funzione arima in R non si adatta al tuo modello (1). arima () fa regressione con errori ARIMA e la tua equazione (1) è un modello ARMAX.
— Rob Hyndman,

Rob:> ho modificato l'equazione uno. Puoi indicare una fonte in cui sono spiegate le differenze tra armax e regressione con errori di arima (o in alternativa fornire una spiegazione intuitiva). Inoltre, conosceresti un pacchetto R che implementa i modelli ARMAX? Grazie in anticipo.
— user603

Un modello ARMAX del primo ordine con una covariata è y_t = a + bx_t + cy_ {t-1} + e_t dove e_t è nella media zero. La regressione corrispondente con errore ARIMA è y_t = a + bx_t + n_t dove n_t = phi * n_ {t-1} + z_t e z_t è pari a zero media.
— Rob Hyndman,

1
@kwak. Innanzitutto, n_t = phi n_ {t-1} + z_t è AR (1). Un processo di media mobile dell'ordine 1 sarebbe n_t = theta z_ {t-1} + z_t. In secondo luogo, una regressione con errori MA equivale a un modello MAX. Ma una volta aggiunti termini AR nel processo di errore, non vi è alcuna equivalenza tra le due classi. In terzo luogo, la funzione arimax () in TSA si adatta ai modelli di funzioni di trasferimento, un caso speciale di cui è una regressione con errori ARIMA. Non si adatta ai modelli ARIMAX. Potrei scrivere un post sul blog in quanto è difficile trovare le varie classi di modelli confrontate e discusse ovunque.
— Rob Hyndman,

2
Ho provato a sintetizzare i vari modelli su robjhyndman.com/researchtips/arimax
— Rob Hyndman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.