Valore "Frequenza" per intervalli di secondi / minuti dati in R


28

Sto usando i modelli R (3.1.1) e ARIMA per le previsioni. Vorrei sapere quale dovrebbe essere il parametro "frequenza", che è assegnato nella ts()funzione , se sto usando dati di serie temporali che sono:

  1. separato da minuti e si sviluppa su 180 giorni (1440 minuti / giorno)
  2. separato da secondi e si sviluppa su 180 giorni (86.400 secondi / giorno).

Se ricordo bene la definizione, una "frequenza" in ts in R, è il numero di osservazioni per "stagione".

Domanda parte 1:

Qual è la "stagione" nel mio caso?

Se la stagione è "giorno", allora la "frequenza" è per minuti = 1440 e 86.400 per secondi?

Domanda parte 2:

La "frequenza" potrebbe anche dipendere da ciò che sto cercando di raggiungere / prevedere? ad esempio, nel mio caso, vorrei avere una previsione a breve termine. Un passo avanti di 10 minuti ogni volta. Sarebbe quindi possibile considerare la stagione come un'ora anziché un giorno? In tal caso frequenza = 60 per minuti, frequenza = 3600 per secondi?

Ho provato ad esempio ad utilizzare la frequenza = 60 per i dati minuti e ho ottenuto risultati migliori rispetto alla frequenza = 1440 (usato fouriervedi link sotto da Hyndman) http://robjhyndman.com/hyndsight/forecasting-weekly-data/

(Il confronto è stato effettuato utilizzando MAPE per la misura dell'accuratezza della previsione)

Nel caso in cui i risultati siano completamente arbitrari e la frequenza non possa essere modificata. Quale sarebbe in realtà l'interpretazione dell'utilizzo di freq = 60 sui miei dati?

Penso anche che valga la pena ricordare che i miei dati contengono stagionalità ad ogni ora e ogni due ore (osservando i dati grezzi e la funzione di autocorrelazione)

Risposte:


38

La "frequenza" è il numero di osservazioni per "ciclo" (normalmente un anno, ma a volte una settimana, un giorno, un'ora, ecc.). Questo è l'opposto della definizione di frequenza in fisica, o nell'analisi di Fourier, dove "periodo" è la lunghezza del ciclo e "frequenza" è l'inverso del periodo. Quando si utilizza la ts()funzione in R, è necessario utilizzare le seguenti opzioni.

Data      frequency
Annual     1
Quarterly  4
Monthly   12
Weekly    52

In realtà, non ci sono 52 settimane in un anno, ma 365,25 / 7 = 52,18 in media. Ma la maggior parte delle funzioni che usano tsoggetti richiedono una frequenza intera.

Una volta che la frequenza delle osservazioni è inferiore a una settimana, di solito esiste più di un modo per gestire la frequenza. Ad esempio, i dati osservati ogni minuto potrebbero avere una stagionalità oraria (frequenza = 60), una stagionalità giornaliera (frequenza = 24x60 = 1440), una stagionalità settimanale (frequenza = 24x60x7 = 10080) e una stagionalità annuale (frequenza = 24x60x365.25 = 525960). Se si desidera utilizzare un tsoggetto, è necessario decidere quale di questi è il più importante.

Un'alternativa è utilizzare un mstsoggetto (definito nel forecastpacchetto) che gestisce più serie temporali di stagionalità. Quindi è possibile specificare tutte le frequenze che potrebbero essere rilevanti. È anche abbastanza flessibile da gestire frequenze non intere.

Non vorrai necessariamente includere tutte queste frequenze, solo quelle che probabilmente saranno presenti nei dati. Dato che hai solo 180 giorni di dati, puoi probabilmente ignorare la stagionalità annuale. Se i dati sono misurazioni di un fenomeno naturale (ad es. Temperatura), potresti anche essere in grado di ignorare la stagionalità settimanale.

Con più stagionalità, è possibile utilizzare un modello TBATS o termini di Fourier in una regressione o modello ARIMA. La fourierfunzione dal pacchetto di previsione gestirà gli mstsoggetti.


Una variazione su questa risposta è stata pubblicata sul mio blog: robjhyndman.com/hyndsight/seasonal-periods
Rob Hyndman

Prof. Hyndman, grazie mille per il tuo post! Sono contento di avere risposta alle mie domande.
Apython
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.