Modellazione di serie temporali con spaziatura irregolare


12

Ho una variabile continua, campionata per un periodo di un anno a intervalli irregolari. Alcuni giorni hanno più di un'osservazione all'ora, mentre altri periodi non hanno nulla per giorni. Ciò rende particolarmente difficile rilevare i modelli nelle serie temporali, perché alcuni mesi (ad esempio ottobre) sono altamente campionati, mentre altri no.

inserisci qui la descrizione dell'immagine

La mia domanda è: quale sarebbe l'approccio migliore per modellare questa serie temporale?

  • Credo che la maggior parte delle tecniche di analisi delle serie storiche (come ARMA) necessiti di una frequenza fissa. Potrei aggregare i dati, al fine di avere un campione costante o scegliere un sottoinsieme dei dati che è molto dettagliato. Con entrambe le opzioni mi mancheranno alcune informazioni dal set di dati originale, che potrebbero svelare schemi distinti.
  • Invece di scomporre la serie in cicli, potrei alimentare il modello con l'intero set di dati e aspettarmi che raccolga gli schemi. Ad esempio, ho trasformato l'ora, il giorno della settimana e il mese in variabili categoriali e ho provato una regressione multipla con buoni risultati (R2 = 0,71)

Ho l'idea che anche le tecniche di apprendimento automatico come ANN possano scegliere questi schemi da serie temporali irregolari, ma mi chiedevo se qualcuno ci avesse provato e potesse darmi qualche consiglio sul modo migliore di rappresentare gli schemi temporali in una rete neurale.

Risposte:


4

ARIMA, Smoothing esponenziale e altri richiedono punti campione distribuiti uniformemente. Man mano che scrivi, potresti seccare i tuoi dati (diciamo in giorni), ma man mano che scrivi, perderai informazioni. Inoltre, potresti finire con valori mancanti, quindi dovresti imputare, poiché ARIMA non è molto brava a gestire i valori mancanti.

Un'alternativa, come scriverai di nuovo, è quella di alimentare i manichini del tempo in un quadro di regressione. Personalmente non mi piacciono molto i manichini categorici, perché ciò implica un netto taglio tra le categorie vicine. Questo di solito non è molto naturale. Quindi preferirei guardare spline periodiche con periodicità diverse. Questo approccio ha il vantaggio di gestire il campionamento irregolare e anche i valori mancanti.

R2

Infine, non esagerare con la modellazione. Solo osservando i tuoi dati, è ovvio che è successo qualcosa a giugno, un giorno ad agosto e a settembre / ottobre. Ti suggerisco prima di scoprire cosa fosse questo qualcosa e includerlo nel tuo modello, ad esempio, come variabili esplicative (che puoi includere in ARIMAX se vuoi). Quello che è successo lì ovviamente non è stagionalità.


0

Dato che la tua domanda e la bella risposta di @Stephan Kolassa parlano in particolare di ARIMA e delle reti neurali, volevo menzionare che puoi dare il forecastpacchetto in Run colpo - ha una nnetarfunzione che forma una semplice rete neurale feed forward con 1 strato nascosto e input ritardati.

Forse potresti provare qualcosa del tipo:

  • estrai molte funzionalità per ciascuna delle tue osservazioni come giorno della settimana, giorno del mese, giorno della settimana / weekend ecc. (solo il datetime è menzionato come una potenziale dipendenza nella tua domanda, quindi è per questo che l'ho incluso - ma puoi includere tutte le possibili cose che credo che potrebbe influenzare la tua variabile di interesse).
  • i valori in ritardo della variabile di interesse e le informazioni sul datetime (come il giorno della settimana ecc.) sarebbero i tuoi input. puoi includere le variabili datetime come regressori esterni ( xreg) per esempio.

e prevedere i valori futuri del tuo var di interesse in base a questi input. Inoltre, potresti anche pensare di includere la media osservata e la varianza / deviazione in ciascun dato giorno del valore che desideri prevedere. Ciò significherebbe che dovresti prima prevedere la tua media prevista e la varianza con ad es. ARIMA, quindi aggiungerlo come input aggiuntivo all'approccio sopra menzionato.

hth.

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.