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+NtNtARIMA
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^=λ1yt1+...+λkytk+ϕ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).λ1yt1+...+λkytk

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.