Come interpretare i risultati del modello TBATS e la diagnostica del modello


11

Ho una domanda ogni mezz'ora, che è una serie temporale multi-stagionale. Ho usato tbatsnel forecastpacchetto in R, e ho ottenuto risultati come questo:

TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 

Significa che la serie non deve necessariamente usare la trasformazione di Box-Cox e che il termine di errore è ARMA (5, 4) e 6, 6 e 5 sono usati per spiegare la stagionalità? Che cosa significa quel parametro smorzato 0.8383, è anche per la trasformazione?

Di seguito è riportato il diagramma di decomposizione del modello:

inserisci qui la descrizione dell'immagine

Mi chiedo cosa fare levele slopedire del modello. La 'pendenza' racconta la tendenza, ma che dire level? Come ottenere una trama più chiara per session 1e session 2, che sono rispettivamente giornalieri e settimanali stagionali.

Inoltre, cosa sapere come eseguire la diagnostica del modello per tbatsvalutare il modello, ad eccezione del valore RMSE. Il modo normale è verificare se l'errore è rumore bianco, ma qui si suppone che l'errore sia una serie ARMA. Traccio "acf" e "pacf" dell'errore e non penso che assomigli ad ARMA (5,4). Significa che il mio modello non è buono?

acf(resid(model1),lag.max = 1000)
pacf(resid(model1),lag.max=1000)

inserisci qui la descrizione dell'immagine

L'ultima domanda RMSEviene calcolata utilizzando il valore adattato e il valore reale. Cosa succede se utilizzo il valore previsto fc1.week$meane il valore reale per valutare il modello, viene ancora chiamato RMSE? Oppure, c'è un altro nome per questo?

fc1.week <-forecast(model1,h=48*7)
fc1.week.demand<-fc1.week$mean

Risposte:


8

Nella pagina di aiuto per ?tbats, troviamo che:

Il modello montato è designato TBATS (omega, p, q, phi,, ...,) dove omega è il parametro Box-Cox e phi è il parametro di smorzamento; l'errore è modellato come un processo ARMA (p, q) e m1, ..., mJ elenca i periodi stagionali utilizzati nel modello e k1, ..., kJ sono il numero corrispondente di termini di Fourier utilizzati per ogni stagionalità.

Così:

  • omega = 1, il che significa che in effetti non vi fu alcuna trasformazione Box-Cox .
  • phi = 0,838, il che significa che la tendenza sarà attenuata. (Ad essere sincero, non so se o corrispondano allo smorzamento totale. Meglio giocare un po 'con i dati simulati.) Vedere il parametro per .ϕ = 1ϕ=0ϕ=1use.damped.trendtbats()
  • Hai tre diversi cicli stagionali, uno di lunghezza 48 = 24 * 2 (giornaliero), uno di lunghezza 336 = 7 * 24 * 2 (settimanale) e uno di lunghezza 17520 = 365 * 24 * 2 (annuale). tbatssi adatta al primo usando sei termini di Fourier, il secondo ancora con sei, l'ultimo con cinque.

Il documento TBATS originale di De Livera, Hyndman & Snyder (2011, JASA ) è ovviamente utile.

Il prossimo:

  • Il "livello" è il livello locale delle serie storiche.
  • La "tendenza" è la tendenza locale.

Questi sono analoghi alla più comune decomposizione dell'andamento stagionale utilizzando lowess (STL) . Dai un'occhiata al stl()comando.

Per ottenere una trama più chiara per la stagione 1 e la stagione 2, puoi esaminare i valori numerici dei componenti separati del tuo modello TBATS. Guarda str(tbats.components(model1))e summary(tbats.components(model1)). tbats.components()ti dà un oggetto multiplo di serie temporali ( mts), che è essenzialmente una matrice - una delle colonne ti darà ogni componente stagionale.

residuals()dovrebbe funzionare come funziona ovunque in R; cioè, dovrebbe restituire i residui finali . Questi dovrebbero essere effettivamente dei rumori bianchi, perché sono i residui dopo l' applicazione di un ARMA (5,4). I picchi nel tuo ACF sembrano essere regolari - sembra che ci sia un po 'di stagionalità residua. Puoi dedurne la periodicità? (Non aiuta davvero che i ritardi siano conteggiati in multipli del ciclo stagionale più lungo.)

Infine, sì, l'errore quadratico medio della radice, che è una misura di precisione della previsione del punto comune , ha lo stesso acronimo fuori campione: RMSE.


1
Molte grazie! Sì, il picco di ACF è regolare, un picco in 48 ritardi. Il problema è che ho già incluso 48 come stagionali nelle mie serie storiche. Come si fa normalmente a riparare il residuo stagionale? C'è qualcos'altro che vale la pena provare?
Jeannie,

1
Ronzio. Sfortunatamente, non vedo un modo per forzare tbats()l'inclusione di più termini di Fourier per specifiche stagionalità. Scusate ...
Stephan Kolassa,
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.