Altoparlante
|
Trascrizione
|
| |
Ciao, grazie per aver dedicato del tempo per visualizzare questo. Mi chiamo Jacob Rhyne. Sono un tester software per JMP. Oggi condividerò con voi un componente aggiuntivo che ho scritto per aiutarvi a scegliere tra un modello ARIMA o un modello State Space Smoothing nella piattaforma Time Series in JMP. |
| |
Quindi comincio con una breve panoramica sull'adattamento dei modelli ARIMA e State Space Smoothing nella piattaforma Time Series. |
| |
Introdurrò la necessità di un componente aggiuntivo per aiutare a scegliere tra queste due classi di modelli. E fornisci una panoramica della convalida incrociata delle serie temporali, che è lo strumento principale del componente aggiuntivo. Quindi finirò con la demo del componente aggiuntivo utilizzando JMP 16.1. |
| |
La piattaforma Time Series in JMP consente agli utenti di adattare molti modelli di serie temporali differenti. Il focus di questa presentazione saranno i modelli ARIMA e State Space Smoothing e mostrerò come adattarli entrambi utilizzando i dati di esempio di Steel Shipments. |
| |
I dati campione di Steel Shipments contengono i totali mensili delle spedizioni di acciaio negli Stati Uniti dal 1984 al 1991. E lo esplorerò con la piattaforma Time Series nel menu Modellazione specializzata. |
| |
La colonna Spedizioni in acciaio è la mia serie temporale. La colonna della data è il mio ID ora. Supponiamo che io sia interessato a prevedere i prossimi due anni di spedizioni di acciaio. Quindi, poiché si tratta di dati mensili, ho bisogno di 24 periodi di previsione. E farò clic su OK per avviare il mio rapporto sulle serie temporali. |
| |
Puoi vedere che ho un grafico delle serie temporali, alcune statistiche di base della serie, nonché alcune diagnostiche di base delle serie temporali. |
| |
Vorrei adattare un modello ARIMA a questa serie, e quando monto un modello ARIMA devo decidere, devo fare qualche tipo di trasformazione o differenziazione. Quindi userò l'opzione Differenza nel menu Serie temporali per esplorare questo. |
| |
Inizierò con una differenziazione non stagionale dell'ordine uno e farò clic su una stima. |
| |
Ora ho un grafico della serie delle differenze. Ha un aspetto migliore in termini di stabilità, ma ho ancora una certa stagionalità qui. E posso dirlo guardando la diagnostica. Scendo al ritardo numero 12. |
| |
Vedo che il valore di correlazione automatica è alto e anche la correlazione automatica parziale è un po' alta per il ritardo 12. Quindi, questo suggerisce che dovrei adattare un modello ARIMA stagionale con differenze non stagionali e stagionali. |
| |
Chiuderò questo rapporto sulle differenze solo per mantenere pulito il mio rapporto. E esplorerò il montaggio di alcuni modelli ARIMA diversi, con l'opzione del gruppo di modelli ARIMA. |
| |
Quindi ho deciso di adattare un modello ARIMA stagionale con un ordine di differenziazione non stagionale di uno e un ordine di differenziazione stagionale di uno. Ma, per gli ordini autoregressivi e a media mobile, li lascerò essere zero o uno. |
| |
Quindi, quando faccio clic su Stima, JMP si adatterà a questi 16 diversi modelli ARIMA stagionali. Posso scorrere verso il basso fino alla finestra di confronto dei modelli e visualizzare questi modelli. I modelli sono ordinati in ordine decrescente per AIC, quindi selezionerò il modello che riduce al minimo l'AIC. |
| |
Posso scorrere verso il basso dare un'occhiata al modello e al rapporto. Vedo che è stabile e invertibile. Potrei guardare attraverso la tabella delle stime dei parametri. Dai un'occhiata alla previsione e agli intervalli di previsione. |
| |
Supponiamo che io abbia esaminato tutte queste diagnostiche e che sia soddisfatto di questo modello ARIMA stagionale come candidato da considerare per le previsioni. |
| |
Quindi rimuoverò questi altri modelli ARIMA stagionali dal rapporto. |
| |
E diciamo, voglio anche prendere in considerazione l'utilizzo di un modello di livellamento dello spazio di stato per creare una previsione. Posso farlo utilizzando l'opzione Livellamento dello spazio di stato dal menu delle serie temporali. |
| |
Devo dire che il periodo è 12 perché si tratta di dati mensili e mi limiterò a inserire tutti i modelli di levigatura dello spazio dello stato consigliati per questa serie temporale. |
| |
Quindi farò clic su OK per eseguire che se scorro verso il basso fino al rapporto di confronto dei modelli, posso vedere che JMP si adatta a tutti i modelli di smussamento dello spazio di stato consigliati. Sono ancora una volta ordinati in ordine decrescente dall'AIC. |
| |
Quindi il modello che ha minimizzato l'AIC era un modello di errore moltiplicativo senza trend e stagionalità moltiplicativa. Quindi, seleziono questo modello |
| |
nello schema di confronto del modello e scorri verso il basso per dare un'occhiata alla vestibilità del modello. |
| |
Quindi posso guardare attraverso il riepilogo del modello posso guardare la tabella delle stime dei parametri. |
| |
È possibile visualizzare la previsione e gli intervalli di previsione. Diciamo che ho esaminato tutte queste diagnostiche e sono soddisfatto di questo modello di livellamento dello spazio di stato come candidato da considerare per la previsione. |
| |
Quindi, rimuoverò l'altro modello State Space Smothing dai miei modelli e dalla mia finestra di confronto dei modelli. |
| |
Quindi ora, la domanda è come faccio a scegliere tra questo modello ARIMA che sto considerando e il modello State Space Smoothing che sto considerando per le previsioni. |
| |
Puoi vedere che ho questo avviso di testo letto che mi dice che i criteri basati sulla probabilità non sono comparabili tra le diverse classi di modelli. |
| |
E ciò significa che non posso semplicemente scorrere e visualizzare l'AIC e dire, poiché l'AIC è inferiore, per il modello ARIMA lo userò per le previsioni. |
| |
Non è una decisione valida. Allora, cosa faccio? Bene, c'è già un'opzione disponibile in JMP. Se i tuoi dati sono abbastanza lunghi. |
| |
per impostare un trattenuto, è possibile utilizzare l'opzione di previsione su trattenuta all'avvio della piattaforma Time Series. |
| |
E ciò che farebbe è che si adatterebbe a tutti i modelli di serie temporali che hai usato per il set di allenamento. E, nella finestra di confronto dei modelli invece di ordinare i modelli per AIC, |
| |
genererà i modelli in base all'errore quadratico medio della radice o RMSE del set di holdback e sceglieresti il modello che riduce al minimo RMSE del set di holdback. |
| |
Tuttavia, se i dati non sono sufficientemente lunghi per utilizzare un set di holdback, non possiamo utilizzare l'opzione di previsione su holdback e abbiamo bisogno di un altro metodo per aiutarci a scegliere tra un modello ARIMA o un modello State Space Smoothing. |
| |
E per fare questo. |
| |
Questo è il motivo per cui ho creato il componente aggiuntivo. Quindi, il componente aggiuntivo ti aiuta a scegliere utilizzando qualcosa chiamato convalida incrociata delle serie temporali. |
| |
La convalida incrociata delle serie temporali essenzialmente suddivide le serie temporali in più set di addestramento e test in cui ogni gruppo successivo espandi il set di addestramento di una riga. |
| |
Darò momentaneamente un esempio dettagliato di convalida incrociata delle serie temporali, ma vorrei sottolineare che non ho inventato questo metodo. Se vuoi saperne di più, |
| |
dopo aver visto questo discorso, questa è una risorsa che consiglierei di prevedere i principi e la pratica del Dr. Rob Hyndman. |
| |
Ma diamo un'occhiata a un esempio di convalida incrociata di serie temporali. |
| |
Diciamo che ho dati per i risultati al botteghino nordamericano da gennaio a luglio del 2021 perché sono un fan del cinema. |
| |
E vorrei prevedere le prossime sei settimane al botteghino utilizzando un modello ARIMA o un modello State Space Smoothing. E, per decidere quale previsione utilizzare, vorrei utilizzare la convalida incrociata delle serie temporali. |
| |
Come ho detto, la convalida incrociata delle serie temporali suddividerà i tuoi dati in gruppi di set di allenamento e test in cui espandi il set di allenamento di una riga e ogni gruppo successivo. |
| |
Quindi devo decidere quante righe voglio nel mio set di allenamento iniziale. |
| |
Per impostazione predefinita, il mio componente aggiuntivo ti farà avere sei gruppi di convalida incrociata di serie temporali. Quindi questo ti darà un numero suggerito di righe predefinite da utilizzare nel tuo set di allenamento iniziale, ma sei libero di cambiarlo, se lo desideri. |
| |
Manterrò il valore predefinito di 17 righe iniziali nel training set per questo esempio. |
| |
Quando avvii il componente aggiuntivo per la convalida incrociata delle serie temporali, ti verrà fornito un rapporto sulle serie temporali standard. Tuttavia, aggiungerà anche una casella di riepilogo per i controlli di convalida incrociata delle serie temporali nella parte inferiore del report. |
| |
Quindi qui, devi specificare il numero di righe iniziali, che è il numero di righe nel tuo primo set di allenamento, la lunghezza della previsione che ti interessa e il periodo se intendi adattare i modelli stagionali. |
| |
Quindi manterrò il valore predefinito di 17 righe nel set di addestramento che mi consentirà di avere sei diversi gruppi di convalida incrociata di serie temporali. |
| |
Avrò una durata di previsione di sei perché voglio prevedere le prossime sei settimane al botteghino. E qui manterrò il periodo uguale a quello mancante perché non ho intenzione di adattare i modelli stagionali per questi dati particolari. |
| |
Quindi, esploriamo il primo gruppo di convalida incrociata delle serie temporali. |
| |
Puoi vedere che ho 17 righe nel mio primo set di allenamento e le successive sei righe sono il mio set di prova. |
| |
Quello che farà il mio componente aggiuntivo è che si adatterà a qualsiasi modello ARIMA che gli ho chiesto al set di formazione. E adatterà i modelli di livellamento dello spazio degli stati consigliati al set di addestramento. |
| |
Selezionerà il miglior modello di ogni classe dall'AIC e porterà la mia previsione sui modelli selezionati nel set di test e valuterà l'errore di previsione. |
| |
Il secondo gruppo di convalida incrociata delle serie temporali espanderà il set di addestramento di una riga, quindi ora il mio set di addestramento è |
| |
composto da righe da uno a 18 e le successive sei righe sono il mio set di prova. E poi ripeto il processo che ho fatto nel primo gruppo di convalida incrociata delle serie temporali. |
| |
Adatto a qualsiasi modello ARIMA richiesto dall'utente e adatto ai modelli State Space Smoothing consigliati. Seleziona il modello migliore dalla previsione AIC nel set di test e memorizza l'errore di previsione. |
| |
E continuo a farlo finché non avrò usato tutti i miei dati. Pertanto, il gruppo di convalida incrociata della serie temporale finale per questo esempio utilizzerà le righe da 1 a 22 per il set di addestramento e quindi utilizzerà il resto dei dati, le sei righe finali come set di test. |
| |
Quindi ho detto che sto memorizzando l'errore di previsione per ogni gruppo di convalida incrociata delle serie temporali. |
| |
Ciò che fa il componente aggiuntivo è riportare RMSE, MAE e MAPE complessivi per le due classi di modelli e fornisce un grafico dell'RMSE per ogni gruppo di convalida incrociata delle serie temporali. |
| |
E puoi usare questa tabella e questo grafico per aiutarti a decidere, se dovessi adattare ogni modello per la previsione o la previsione del modello di livellamento dello spazio di stato. |
| |
Diamo un'occhiata al componente aggiuntivo in azione con questi dati. |
| |
Quindi aprirò i miei dati al botteghino che ho ottenuto dal botteghino mojo ed eseguirò solo questo script che avvia la piattaforma Time Series per questi dati, perché voglio solo dare un'occhiata alle serie temporali. |
| |
Sto prevedendo, l'incasso medio al botteghino per settimana e posso vedere che con il passare delle settimane la varianza e l'incasso medio aumenta e quindi vorrei fare una trasformazione del registro |
| |
alla media lorda. Posso farlo creando una colonna della formula di registro per il lordo medio ma |
| |
non è necessario, il componente aggiuntivo ti dà la possibilità di eseguire una trasformazione Box Cox, proprio come la piattaforma Time Series standard. Quindi, lancerò il mio componente aggiuntivo, fare clic oltre il disclaimer. Voglio prevedere che la media chiuderà il botteghino settimanalmente per le prossime sei settimane. |
| |
e voglio portare una trasformazione logaritmica al lordo medio, quindi userò una trasformazione Box Cox con Lambda uguale a zero. |
| |
E farò clic su OK. |
| |
Quindi questo avvia il rapporto sulle serie temporali standard per la risposta trasformata di Box Cox. Potrei adattarsi a qualsiasi tipo di modello di serie temporali, volevo che fosse disponibile in JMP con questo menu a triangolo rosso. |
| |
Ma invece andrò in fondo al report e utilizzerò la convalida incrociata delle serie temporali per ottenere una raccomandazione sull'adattamento e un modello ARIMA o un modello di livellamento dello spazio di stato. |
| |
Manterrò le righe iniziali su 17, perché ciò mi darà sei gruppi di convalida incrociata di serie temporali che ho appena mostrato nell'esempio precedente. |
| |
Manterrò una lunghezza di previsione di sei perché voglio prevedere le prossime sei settimane al botteghino e manterrò il periodo uguale a quello mancante per questo esempio. |
| |
Quindi faccio clic su Esegui e ora devo dire quali modelli ARIMA vorrei inserire in ogni gruppo di convalida incrociata delle serie temporali. Quindi, decido che vorrei utilizzare la differenziazione non stagionale di uno, ma lascerò che gli ordini autoregressivi e a media mobile siano zero o uno. |
| |
Quindi, quando faccio clic su stima, ciò che accadrà è che ogni gruppo di convalida incrociata delle serie temporali si adatterà a questi quattro modelli ARIMA e ai modelli di levigatura dello spazio dello stato consigliati. |
| |
Quindi faccio clic su stima, ciò che sta facendo il componente aggiuntivo è espandere questo set di dati nei miei sei gruppi di convalida incrociata delle serie temporali adattando i modelli richiesti alla previsione del set di addestramento nel set di test e memorizzando l'errore di previsione. |
| |
Quindi scorrerò verso il basso e visualizzerò i risultati. Puoi vedere dalla tabella che nel complesso i modelli ARIMA hanno prodotto RMSE, MAE e MAPE inferiori rispetto ai modelli di livellamento dello spazio di stato. E, se guardo la trama |
| |
Vedo che i modelli ARIMA hanno prodotto un RMSE inferiore per ogni gruppo di convalida incrociata delle serie temporali. |
| |
Quindi questo componente aggiuntivo consiglia di utilizzare un modello ARIMA per creare previsioni per questi dati, invece di un modello di livellamento dello spazio di stato. Quindi posso andare al menu del triangolo rosso e andare avanti e adattare un modello ARIMA con l'opzione del gruppo di modelli ARIMA. |
| |
Vediamo un altro esempio del componente aggiuntivo e per fare questo prossimo esempio utilizzerò un sottoinsieme dei dati di esempio trimestrali dell'MC3. |
| |
I dati di esempio trimestrali MC3 contengono dati per poco più di 100 diverse serie temporali della competizione di modellazione MC3. Le serie sono tutte trimestrali. |
| |
Penso che questo sia un set di dati interessante solo perché contiene così tante serie temporali diverse. Tuttavia, solo per ragioni di tempo in questo discorso ho appena preso un sottoinsieme casuale di tre serie dal tavolo. |
| |
Quindi lancerò il mio componente aggiuntivo. |
| |
E imposta il programma di avvio la mia colonna Y è la mia serie temporale, il tempo è l'ID del tempo. E, poiché ho dati per più serie, devo utilizzare l'opzione by per la colonna della serie. Diciamo ancora che voglio prevedere i prossimi due anni, quindi inserirò otto periodi di previsione e cliccherò su OK. |
| |
Questo ha portato alla visualizzazione del rapporto sulle serie temporali per ogni serie diversa nella mia tabella, come ci si aspetterebbe. E ho anche controlli di convalida incrociata delle serie temporali per ogni serie nella tabella. |
| |
Quindi potrei usare la convalida incrociata delle serie temporali per ciascuna di queste serie per ottenere una raccomandazione sull'utilizzo di un modello ARIMA o di un modello di livellamento dello spazio di stato per la previsione. |
| |
Nell'interesse del tempo lo farò solo per la prima serie. Userò un periodo di quattro perché vorrei adattare i modelli stagionali per questa serie. Farò clic su Esegui. |
| |
Quindi userò un ordine di differenziazione non stagionale di uno, ma tutti gli altri ordini di media mobile autoregressiva e l'ordine di differenziazione stagionale lascerò variare da zero a uno. |
| |
Imposta il periodo di osservazione su quattro perché, ancora una volta, si tratta di dati trimestrali. Quindi cosa succederà quando clicco su preventivo è che si adatterà a questi 32 modelli ARIMA |
| |
in ciascuno dei gruppi di convalida incrociata delle serie temporali. Quindi il componente aggiuntivo sta andando dove la serie è N 691. |
| |
Lo sta espandendo in sei diversi gruppi di convalida incrociata di serie temporali. Sta adattando i miei modelli ARIMA richiesti al set di allenamento. I modelli di livellamento dello spazio degli stati consigliati per il training set. |
| |
Selezione del miglior modello AIC. Previsione nel set di prova e memorizzazione dell'errore di previsione. |
| |
Gli darò un secondo per finire. |
| |
Eccoci qui. |
| |
E posso scorrere e visualizzare i risultati. Quindi, come puoi vedere dalla tabella, i modelli ARIMA hanno prodotto RMSE, MAE e MAPE inferiori rispetto ai modelli di livellamento dello spazio di stato. |
| |
E dal grafico, posso vedere che in tutti, tranne l'ultimo gruppo di convalida incrociata delle serie temporali, i modelli ARIMA avevano un RMSE inferiore |
| |
rispetto a un modello di livellamento dello spazio degli stati, ed è stato più o meno lo stesso nell'ultimo gruppo. |
| |
Quindi ancora una volta si tratta di convalida incrociata delle serie temporali e consiglierei di utilizzare un modello ARIMA per creare previsioni per la serie N 691. E puoi andare alle altre serie diverse e ripetere il processo e per quelli potrebbe consigliare un modello di livellamento dello spazio degli stati. |
| |
Quindi finirò la demo mostrando che un'altra funzionalità del componente aggiuntivo non è in realtà correlata alla convalida incrociata delle serie temporali. |
| |
Ti ho anche dato la possibilità di utilizzare un set di test per valutare le previsioni con il componente aggiuntivo e lo mostrerò utilizzando nuovamente i dati di esempio di Steel Shipments. Quindi lancerò il mio componente aggiuntivo. Ok, voglio prevedere le spedizioni di acciaio per data. |
| |
Diciamo che voglio prevedere i prossimi due anni, quindi prendi 24 periodi di previsione e, come ho detto prima, se la tua serie è abbastanza lunga, per un set di holdback puoi usare l'opzione di previsione su holdback |
| |
per selezionare i modelli. Quindi, dal momento che lo sto facendo, non ho davvero bisogno di usare la convalida incrociata delle serie temporali. Quindi, posso usare l'opzione del set di test di allenamento |
| |
avere un set di test indipendente per valutare il modello che scelgo. Deciderò che la lunghezza del mio set di test sia 12. |
| |
E ciò significa che prenderà le ultime 12 righe dei miei dati e le manterrà completamente fuori dalla mia analisi, in modo che io possa usarle per valutare l'andamento delle mie previsioni. Quindi farò clic su OK. |
| |
E puoi vedere che quello che è successo è che ho aggiunto un'altra colonna alla tabella. È solo una colonna dell'indicatore per il set di test dove è uguale a uno se la riga è inclusa nel set di test e zero se non lo è. |
| |
E adatterà solo questi modelli di serie temporali alle righe in cui il set di test è uguale a zero. Questo mi permette di preservare l'indipendenza del test set. |
| |
Quindi, adattiamo alcuni modelli ARIMA a questi dati. Uso gli stessi controlli che ho fatto all'inizio di questo discorso con un ordine di differenziazione stagionale e non stagionale di uno, ma lascio che ogni altro ordine vada da zero a uno. |
| |
Quindi, faccio clic su stima per eseguire questi 16 diversi modelli ARIMA stagionali e adatterò anche i modelli di livellamento dello spazio degli stati consigliati. |
| |
Quindi, scorrerò verso il basso fino alla finestra di confronto del modello e posso vedere che il modello che riduce al minimo l'errore quadratico medio della radice nel set di trattenimento era il modello State Space Smoothing con errore additivo, nessuna tendenza e stagionalità additiva. |
| |
Diciamo che sono anche solo interessato a come si comporterebbe il modello ARIMA più performante nel set di prova. Posso selezionarlo anche io. |
| |
E rimuoverò gli altri modelli che non sto più considerando per le previsioni. |
| |
Quindi, ancora una volta ho usato l'opzione previsione su holdback, quindi sceglierei questo modello di livellamento dello spazio di stato da utilizzare per la previsione, ma sono solo curioso di sapere come andrebbe il modello ARIMA nel set di test. |
| |
Così posso scorrere verso il basso fino alla casella di analisi del mio set di test. E, ciò che farà, dal momento che ho usato l'opzione previsione su holdback, riadatterà entrambi questi modelli selezionati ai dati combinati di training e holdback per ottenere i parametri aggiornati. |
| |
E poi eseguirà la previsione nel set di test e valuterà come si è comportata la previsione rispetto ai dati effettivi del set di test. |
| |
Quindi, farò clic su Esegui per eseguire quell'analisi. E posso vedere di avere una tabella del set di test RMSE, MAE e MAPE e un grafico del set di test rispetto alla previsione. |
| |
Vedo che non solo il modello di livellamento dello spazio di stato ha funzionato meglio nel set di trattenimento, ma ha anche funzionato meglio nel set di prova. Quindi questa opzione di analisi del set di test ti offre solo uno strumento per valutare come si è esibito il tuo modello di adattamento. |
| |
Quindi, solo per riassumere. Il componente aggiuntivo consente di eseguire la convalida incrociata delle serie temporali. |
| |
Penso che questo componente aggiuntivo possa esserti utile se disponi di dati di serie temporali che non sono sufficientemente lunghi per utilizzare l'opzione di previsione su holdback presente in JMP, ma desideri comunque considerare l'utilizzo di classi di modelli diverse. |
| |
Il componente aggiuntivo offre anche la possibilità di utilizzare un set di test per valutare le previsioni. E, proprio come un disclaimer, come con tutte le misure di selezione del modello per i dati delle serie temporali, il componente aggiuntivo non garantisce previsioni più accurate. |
| |
La ringrazio molto per il vostro tempo. Spero che tu provi il componente aggiuntivo e spero che ti piaccia il resto di Discovery. Grazie mille. |