Montaggio di un modello ARIMAX con regolarizzazione o penalizzazione (ad es. Con il lazo, la rete elastica o la regressione della cresta)


29

Uso la funzione auto.arima () nel pacchetto di previsione per adattarsi ai modelli ARMAX con una varietà di covariate. Tuttavia, ho spesso un gran numero di variabili tra cui scegliere e di solito finisco con un modello finale che funziona con un sottoinsieme di esse. Non mi piacciono le tecniche ad hoc per la selezione delle variabili perché sono umano e soggetto a parzialità, ma le serie temporali con convalida incrociata sono difficili , quindi non ho trovato un buon modo per provare automaticamente diversi sottoinsiemi delle mie variabili disponibili e Sono bloccato a sintonizzare i miei modelli usando il mio miglior giudizio.

Quando inserisco i modelli glm, posso utilizzare la rete elastica o il lazo per la regolarizzazione e la selezione delle variabili, tramite il pacchetto glmnet . Esiste un toolkit esistente in R per l'utilizzo della rete elastica sui modelli ARMAX o dovrò rotolare il mio? È anche una buona idea?

modifica: avrebbe senso calcolare manualmente i termini AR e MA (diciamo fino a AR5 e MA5) e usare glmnet per adattarsi al modello?

modifica 2: Sembra che il pacchetto FitAR mi faccia parte, ma non tutto, del modo in cui ci sono.


2
Sarei curioso di sapere se sei mai riuscito a fare qualcosa per questo problema. L'ho contrassegnato per qualsiasi aggiornamento, quindi basta toccare la base qui.
Vishal Belsare,

Mai gestito per risolvere questo. Ho pensato di scrivere la mia implementazione ma non ci sono riuscito. Forse potresti calcolare manualmente i termini AR e MA e quindi applicare glmnet a quei dati?
Zach,

1
Ciao Zach, mi chiedevo se l'hai portato oltre o se è ancora parcheggiato. Ho bisogno di un tale algoritmo per prevedere un gran numero di serie.
Matt Weller,

3
@MattWeller Ho parlato un po 'con Rob Hyndman, l'autore dell'eccellente forecastpacchetto per R. Ha detto che sarebbe stato difficile con l'ARIMA completo, perché avresti dovuto avvolgere il lazo attorno all'ottimizzatore ARIMA non lineare. Una soluzione parziale sarebbe quella di adattare un modello AR usando glmnetcon variabili ritardate. Per quanto ne so, nessuno lo ha ancora fatto con un modello ARIMA completo.
Zach,

Risposte:


7

Questa non è una soluzione, ma alcune riflessioni sulle possibilità e difficoltà che conosco.

Ogni volta che è possibile specificare un modello di serie temporale come con x t calcolabile da covariate e osservazioni ritardate, è anche possibile calcolare la rete elastica dei minimi quadrati penalizzata stimatore di β usando glmnet in R. È necessario scrivere codice per calcolare x t per formare la matrice del modello che deve essere specificata in glmnet. Questo funziona per i modelli AR ma non direttamente per i modelli ARMA, diciamo. Inoltre, le procedure di convalida incrociata di glmnet non sono di per sé sensibili per i dati delle serie temporali.

Yt+1=Xtβ+εt+1
XtβXt

Per i modelli più generali un'implementazione di un algoritmo per il calcolo dello stimatore penalizzato netto elastico non lineare dei minimi quadrati di β . Per quanto ne so, non esiste una tale implementazione in R. Attualmente sto scrivendo un'implementazione per risolvere il caso in cui Y t + 1 = x t g ( β ) + ϵ t + 1

Yt+1=f(Xt,β)+εt+1
β
Yt+1=Xtg(β)+εt+1
il punto è che per la selezione del modello è fondamentale che la penalizzazione del lazo sia su e non su g ( β ) . Se ricordo correttamente la parametrizzazione ARIMA, assume anche questa forma , ma al momento non posso offrire alcun codice. È (sarà) basato su un metodo di discesa con gradiente coordinato per una minimizzazione separabile non regolare .βg(β)-

Un altro problema è la selezione della quantità di penalizzazione (i parametri di ottimizzazione). Richiederà generalmente una forma di convalida incrociata per le serie storiche, ma spero di essere in grado di elaborare alcuni metodi meno impegnativi dal punto di vista computazionale per modelli specifici.


Il pacchetto caret per R ha una buona implementazione della validazione incrociata di serie temporali che potrebbe essere usata per selezionare i parametri per glmnet. Grazie per la risposta.
Zach,

2

Sono stato sfidato da un cliente a risolvere questo problema in modo automatico, cioè chiavi in ​​mano. Ho implementato un approccio che per ciascuna coppia (cioè ye un candidato x), prewhiten, calcola le correlazioni incrociate delle serie pre-sbiancate, identifica il PDL (O ADL AUTOREGRESSIVE DISTRIBUTED LAG MODEL incluso qualsiasi DEAD TIME) incorporando il rilevamento degli interventi a produrre stime affidabili, sviluppare una "misura" per questa struttura. Dopo aver eseguito questa operazione per TUTTI i regressori candidati, classificarli in base alla "misura" e quindi selezionare i primi regressori K in base alla "misura". Questo a volte viene definito filtro lineare. Abbiamo integrato con successo questa euristica nel nostro pacchetto di serie storiche disponibile in commercio. Dovresti essere in grado di "FARE IL TUO PROPRIO"


In particolare, voglio incorporare il lazo o la rete elastica in un modello ARIMA.
Zach,

3
Non sto davvero cercando un filtro lineare (anche se questo è utile). Voglio specificamente un modo per incorporare il lazo, la regressione della cresta o la rete elastica in un modello ARIMAX.
Zach,

2
Al momento non sono interessato a spostamenti di livello, andamenti dell'ora locale, spostamenti di coefficienti o varianza di errore non costante. Sono particolarmente interessato ad applicare la regolarizzazione del lazo, della cresta o della rete elastica ai modelli ARIMAX.
Zach,

2
Se puoi incorporare la regolarizzazione del lazo, della cresta o della rete elastica nella metodologia sopra e pubblicare un codice di esempio in un linguaggio di programmazione open source, sarei felice di assegnarti la generosità.
Zach,

1
@frank stai provando a fare l'identificazione tramite stima (step-down) e questo non funziona perché ci sono troppe combinazioni di possibili impulsi, cambiamenti di livello, impulsi stagionali e andamenti del tempo. Se queste strutture sono necessarie ma ignorate, la stima dei parametri è distorta e i test parametrici di significato escono dalla finestra.
IrishStat
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.