Altoparlante
|
Trascrizione
|
| |
Ciao, grazie per aver dedicato del tempo per visualizzarlo. Il mio nome è Jacob Rhyne. Sono un tester del software per JMP. Oggi condividerò con te un componente aggiuntivo che ho scritto per aiutarti a scegliere tra un modello ARIMA o un modello State Space Smoothing nella piattaforma Time Series in JMP. |
| |
Inizierò quindi 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. Fornire una panoramica della convalida incrociata delle serie temporali, che è lo strumento principale del componente aggiuntivo. Concluderò quindi con la demo del componente aggiuntivo utilizzando JMP 16.1. |
| |
La piattaforma Time Series di JMP consente agli utenti di adattare molti modelli di serie temporali diversi. 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 di esempio sulle spedizioni di acciaio contengono i totali mensili delle spedizioni di acciaio statunitensi dal 1984 al 1991. E lo esplorerò con la piattaforma Time Series nel menu Modellazione specializzata. |
| |
La colonna Spedizioni di acciaio è la mia serie temporale. La colonna della data è il mio ID temporale. Supponiamo che io sia interessato a prevedere le spedizioni di acciaio per i prossimi due anni. Quindi, poiché si tratta di dati mensili, ho bisogno di 24 periodi di previsione. E farò clic su OK per avviare il report sulle serie temporali. |
| |
Puoi vedere che ho un grafico delle serie temporali, alcune statistiche di base della serie, nonché alcuni dati diagnostici di base delle serie temporali. |
| |
Vorrei adattare un modello ARIMA a questa serie e quando installo un modello ARIMA devo decidere se devo effettuare qualche tipo di trasformazione o differenziazione. Quindi utilizzerò l'opzione Differenza nel menu Serie temporali per esplorare questo aspetto. |
| |
Inizierò con una differenziazione non stagionale dell'ordine uno e farò clic sulla stima. |
| |
Ora ho un grafico delle serie di differenze. Sembra migliore in termini di maggiore stazionarietà, ma ho ancora un po' di stagionalità qui. E posso dirlo guardando la diagnostica. Scendo al ritardo numero 12. |
| |
Vedo che il valore di autocorrelazione è alto e anche l'autocorrelazione parziale è un po' alta per il ritardo 12. Quindi, questo suggerisce che dovrei adattare un modello ARIMA stagionale con differenziazioni non stagionali e stagionali. |
| |
Chiuderò questo report sulle differenze solo per mantenere pulito il mio report. Inoltre, esplorerò il montaggio di alcuni modelli ARIMA diversi, con l'opzione del gruppo di modelli ARIMA. |
| |
Quindi ho deciso che vorrei 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. |
| |
Pertanto, 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 in base all'AIC, quindi selezionerò il modello che riduce al minimo l'AIC. |
| |
Posso scorrere verso il basso per dare un'occhiata al modello e al rapporto. Vedo che è stabile e invertibile. Potrei consultare la tabella delle stime dei parametri. Dai un'occhiata alle previsioni e agli intervalli di previsione. |
| |
Supponiamo che io abbia esaminato tutte queste diagnostiche e che io sia soddisfatto di questo modello ARIMA stagionale come candidato da considerare per la previsione. |
| |
Quindi rimuoverò questi altri modelli ARIMA stagionali dal rapporto. |
| |
E diciamo che voglio anche prendere in considerazione l'utilizzo di un modello di livellamento dello spazio degli stati per creare una previsione. Posso farlo utilizzando l'opzione Smoothing dello spazio degli stati dal menu delle serie temporali. |
| |
Devo dire che il periodo è 12 perché si tratta di dati mensili e inserirò semplicemente tutti i modelli di livellamento dello spazio degli stati consigliati per questa serie temporale. |
| |
Quindi farò clic su OK per eseguirlo. Se scorro verso il basso fino al rapporto di confronto dei modelli, posso vedere che JMP soddisfa tutti i modelli di livellamento dello spazio degli stati consigliati. Sono ancora una volta ordinati in ordine decrescente dall'AIC. |
| |
Quindi il modello che minimizzava l’AIC era un modello di errore moltiplicativo senza trend e stagionalità moltiplicativa. Quindi, selezionerò questo modello |
| |
nella struttura di confronto dei modelli e scorri verso il basso per dare un'occhiata all'adattamento del modello. |
| |
Quindi posso esaminare il riepilogo del modello e 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 degli stati come candidato da prendere in considerazione per la previsione. |
| |
Pertanto, rimuoverò l'altro modello di smussamento dello spazio degli stati dai miei modelli e dalla finestra di confronto dei modelli. |
| |
Quindi ora la domanda è: come faccio a scegliere tra il modello ARIMA che sto prendendo in considerazione e il modello State Space Smoothing che sto prendendo in considerazione per la previsione. |
| |
Puoi vedere che ho questo avviso di testo letto che mi dice che i criteri basati sulla probabilità non sono confrontabili tra le diverse classi di modelli. |
| |
Ciò significa che non posso semplicemente scorrere e visualizzare l'AIC e dire che, poiché l'AIC è inferiore, per il modello ARIMA lo utilizzerò per le previsioni. |
| |
Non è una decisione valida. Allora, cosa faccio? Bene, esiste già un'opzione disponibile in JMP. Se i tuoi dati sono abbastanza lunghi. |
| |
per avere un holdback impostato, è possibile utilizzare l'opzione previsione su holdback all'avvio della piattaforma Time Series. |
| |
Ciò farebbe sì che si adatterebbe a tutti i modelli di serie temporali utilizzati per il set di addestramento. E, nella finestra di confronto dei modelli, invece di ordinare i modelli per AIC, |
| |
ordinerà i modelli in base all'errore quadratico medio o RMSE del set di holdback e sceglierai il modello che minimizza l'RMSE del set di holdback. |
| |
Tuttavia, se i tuoi dati non sono sufficientemente lunghi per utilizzare un set di holdback, non possiamo utilizzare l'opzione di previsione sull'holdback e abbiamo bisogno di un altro metodo che ci aiuti 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. Pertanto, 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 training e test in cui in qualsiasi gruppo successivo si espande il set di training di una riga. |
| |
Fornirò per un momento un esempio dettagliato di convalida incrociata delle serie temporali, ma vorrei sottolineare che non ho inventato questo metodo. Se desideri saperne di più, |
| |
dopo aver visto questo discorso, questa è una risorsa che consiglierei sui principi e sulla pratica di previsione 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 2021 perché sono un fan del cinema. |
| |
E mi piacerebbe 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 già detto, la convalida incrociata delle serie temporali suddividerà i tuoi dati in gruppi di set di training e test in cui espandi il set di training di una riga e di ciascun 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. Questo ti darà un numero suggerito di righe predefinite da utilizzare nel tuo set di allenamento iniziale, ma puoi modificarlo, se lo desideri. |
| |
Per questo esempio manterrò il valore predefinito di 17 righe iniziali nel set di training. |
| |
Quando avvii il componente aggiuntivo di convalida incrociata delle serie temporali ti fornirà un report standard sulle serie temporali. Verrà inoltre aggiunta 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, ovvero il numero di righe nel tuo primo set di allenamento, la durata della previsione a cui sei interessato e il periodo se intendi adattare i modelli stagionali. |
| |
Quindi manterrò il valore predefinito di 17 righe nel set di training che mi consentirà di avere sei diversi gruppi di convalida incrociata delle 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 mancante perché non adatterò 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 sei righe successive sono il mio set di prova. |
| |
Ciò che il mio componente aggiuntivo farà è adattarsi 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 training. |
| |
Selezionerà il modello migliore di ciascuna classe da parte dell'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 training di una riga, quindi ora lo è il mio set di training |
| |
composto dalle righe da 1 a 18 e le sei righe successive sono il mio set di test. E poi ripeto il processo che ho eseguito 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. Selezionare il modello migliore in base alla previsione AIC nel set di test e memorizzare l'errore di previsione. |
| |
E continuo a farlo finché non avrò utilizzato tutti i miei dati. Pertanto, il gruppo di convalida incrociata delle serie temporali finali per questo esempio utilizzerebbe le righe da 1 a 22 per il set di training, quindi utilizzerebbe 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 è segnalare RMSE, MAE e MAPE complessivi per le due classi di modelli e fornire un grafico dell'RMSE per ogni gruppo di convalida incrociata delle serie temporali. |
| |
E puoi utilizzare questa tabella e questo grafico per aiutarti a decidere se adattare ogni modello per la previsione o la previsione del modello di livellamento dello spazio degli stati. |
| |
Diamo un'occhiata al componente aggiuntivo in azione con questi dati. |
| |
Quindi apro i dati del botteghino che ho ottenuto da Box Office Mojo ed eseguirò questo script che avvia semplicemente 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 aumentano, quindi vorrei effettuare una trasformazione del registro |
| |
alla media lorda. Posso farlo creando una colonna di 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, avvierò il mio componente aggiuntivo e farò clic oltre la dichiarazione di non responsabilità. Voglio prevedere la chiusura media settimanale dei botteghini per le prossime sei settimane. |
| |
e voglio effettuare una trasformazione logaritmica sul lordo medio, quindi utilizzerò una trasformazione Box Cox con Lambda uguale a zero. |
| |
E farò clic su OK. |
| |
Questo avvia quindi il report standard delle serie temporali per la risposta trasformata di Box Cox. Potrei adattare qualsiasi tipo di modello di serie temporale, volevo che fossero disponibili in JMP con questo menu con triangolo rosso. |
| |
Ma andrò invece alla fine del report e utilizzerò la convalida incrociata delle serie temporali per ottenere un consiglio sull'opportunità di adattarmi e un modello ARIMA o un modello di livellamento dello spazio degli stati. |
| |
Manterrò le righe iniziali su 17, perché ciò mi consentirà di ottenere sei gruppi di convalida incrociata di serie temporali che ho appena mostrato nell'esempio precedente. |
| |
Manterrò una durata di previsione pari a sei perché voglio prevedere le prossime sei settimane al botteghino e manterrò il periodo pari a quello mancante per questo esempio. |
| |
Quindi farò 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. |
| |
Pertanto, 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 livellamento dello spazio degli stati consigliati. |
| |
Quindi faccio clic su stima, ciò che fa il componente aggiuntivo è espandere questo set di dati nei miei sei gruppi di convalida incrociata di 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. Dalla tabella è possibile vedere che nel complesso i modelli ARIMA hanno prodotto RMSE, MAE e MAPE inferiori rispetto ai modelli di livellamento dello spazio statale. E, se guardo la trama |
| |
Posso vedere che i modelli ARIMA hanno prodotto un RMSE inferiore per ogni gruppo di convalida incrociata delle serie temporali. |
| |
Pertanto questo componente aggiuntivo consiglia di utilizzare un modello ARIMA per creare previsioni per questi dati, anziché un modello di attenuazione dello spazio degli stati. 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 eseguire il prossimo esempio utilizzerò un sottoinsieme dei dati di esempio trimestrali MC3. |
| |
I dati campione trimestrali MC3 contengono dati per poco più di 100 serie temporali diverse dal concorso di modellizzazione 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 preso un sottoinsieme casuale di tre serie dalla tabella. |
| |
Quindi lancerò il mio componente aggiuntivo. |
| |
E imposta il programma di avvio: la mia colonna Y è la mia serie temporale, l'ora è l'ID temporale. Inoltre, poiché dispongo di dati per più serie, devo utilizzare l'opzione per per la colonna della serie. Diciamo ancora una volta che voglio fare una previsione per i prossimi due anni, quindi inserirò otto periodi di previsione e farò clic su OK. |
| |
Ciò ha fatto emergere il rapporto sulle serie temporali per ogni serie diversa nella mia tabella, come ci si aspetterebbe. E dispongo anche di controlli di convalida incrociata delle serie temporali per ciascuna serie nella tabella. |
| |
Quindi potrei utilizzare la convalida incrociata delle serie temporali per ciascuna di queste serie per ottenere un consiglio sull'utilizzo di un modello ARIMA o di un modello di livellamento dello spazio degli stati per le previsioni. |
| |
Nell'interesse del tempo lo farò solo per la prima serie. Utilizzerò un periodo di quattro perché vorrei adattare i modelli stagionali per questa serie. Farò clic su Esegui. |
| |
Quindi utilizzerò un ordine di differenziazione non stagionale pari a uno, ma lascerò che tutti gli altri ordini di media mobile autoregressiva e l'ordine di differenziazione stagionale vadano da zero a uno. |
| |
Imposta il periodo di osservazione su quattro perché, ancora una volta, si tratta di dati trimestrali. Quindi, quando faccio clic su stima, ciò che accadrà è che si adatterà a questi 32 modelli ARIMA |
| |
in ciascuno dei gruppi di convalida incrociata delle serie temporali. Quindi il componente aggiuntivo andrà dove la serie è N 691. |
| |
Lo sta espandendo in sei diversi gruppi di convalida incrociata di serie temporali. Sta adattando i modelli ARIMA richiesti al set di allenamento. I modelli di livellamento dello spazio degli stati consigliati per il set di training. |
| |
Selezione del modello migliore da parte di AIC. Previsione nel set di test e memorizzazione dell'errore di previsione. |
| |
Gli darò un secondo per finire. |
| |
Eccoci qui. |
| |
E posso scorrere e visualizzare i risultati. Pertanto, come puoi vedere dalla tabella, i modelli ARIMA hanno prodotto RMSE, MAE e MAPE inferiori rispetto ai modelli di livellamento dello spazio degli stati. |
| |
E dal grafico, posso vedere che in tutti i modelli ARIMA, tranne l'ultimo gruppo di convalida incrociata delle serie temporali, avevano un RMSE inferiore |
| |
rispetto a un modello di livellamento dello spazio degli stati, ed era praticamente 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. Inoltre, puoi passare alle altre serie diverse e ripetere il processo e per quelle potrebbe consigliare un modello di livellamento dello spazio degli stati. |
| |
Concluderò quindi la demo mostrando un'altra funzionalità del componente aggiuntivo che in realtà non è 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 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 utilizzare l'opzione previsione su holdback |
| |
per selezionare i modelli. Quindi, dal momento che lo sto facendo, non ho davvero bisogno di utilizzare la convalida incrociata delle serie temporali. Quindi, posso utilizzare l'opzione del set di test di training |
| |
avere un set di test indipendente per valutare il modello che scelgo. Deciderò che la durata del mio set di test sarà 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 come sono state eseguite le mie previsioni. Quindi farò clic su OK. |
| |
E puoi vedere che quello che è successo è che ho aggiunto un'altra colonna alla tabella. È semplicemente una colonna indicatrice per il set di test dove è uguale a uno se la riga è inclusa nel set di test e zero se non lo è. |
| |
E adatterà questi modelli di serie temporali solo alle righe in cui il set di test è uguale a zero. Ciò mi consente di preservare l'indipendenza del set di test. |
| |
Quindi, adattiamo alcuni modelli ARIMA a questi dati. Utilizzo gli stessi controlli che ho utilizzato all'inizio di questo discorso con un ordine di differenziazione stagionale e non stagionale pari a uno, ma lascio che ogni altro ordine vari 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 dei modelli e posso vedere che il modello che riduce al minimo l'errore quadratico medio nell'insieme di holdback 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 con le migliori prestazioni nel set di test. Posso anche selezionarlo. |
| |
E toglierò gli altri modelli che non considero più per le previsioni. |
| |
Quindi, ancora una volta ho utilizzato la previsione sull'opzione holdback, quindi sceglierei questo modello di livellamento dello spazio degli stati da utilizzare per la previsione, ma sono solo curioso di sapere come si comporterebbe il modello ARIMA nel set di test. |
| |
Quindi posso scorrere verso il basso fino alla casella di analisi del set di test. E ciò che farà, dal momento che ho utilizzato l'opzione di previsione sull'holdback, riadatterà entrambi i modelli selezionati ai dati combinati di training e holdback per ottenere i parametri aggiornati. |
| |
Quindi eseguirà la previsione nel set di test e valuterà il rendimento della previsione rispetto ai dati effettivi del set di test. |
| |
Quindi, farò clic su Esegui per eseguire l'analisi. E vedo che ho una tabella del set di test RMSE, MAE e MAPE e un grafico del set di test rispetto alla previsione. |
| |
Posso vedere che non solo il modello di livellamento dello spazio degli stati ha funzionato meglio nel set di holdback, ma ha anche funzionato meglio nel set di test. Quindi questa opzione di analisi del set di test ti offre semplicemente uno strumento per valutare le prestazioni del tuo modello. |
| |
Quindi, giusto per riassumere. Il componente aggiuntivo consente di eseguire la convalida incrociata delle serie temporali. |
| |
Penso che questo componente aggiuntivo potrebbe esserti utile se disponi di dati di serie temporali non sufficientemente lunghi per utilizzare l'opzione di previsione su holdback disponibile in JMP ma desideri comunque prendere in considerazione l'utilizzo di classi di modelli diverse. |
| |
Il componente aggiuntivo offre inoltre la possibilità di utilizzare un set di test per valutare la previsione. Inoltre, come per 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 proverai il componente aggiuntivo e spero che ti piaccia il resto di Discovery. Grazie mille. |