Condividi tramite


Algoritmo Microsoft Time Series

L'algoritmo Microsoft Time Series fornisce algoritmi di regressione ottimizzati per la previsione di valori continui, ad esempio le vendite di prodotti, nel corso del tempo. Mentre altri algoritmi Microsoft, ad esempio gli alberi delle decisioni, richiedono colonne aggiuntive di nuove informazioni come input per stimare una tendenza, un modello time series non lo fa. Un modello time series può stimare le tendenze solo in base al set di dati originale usato per creare il modello. È anche possibile aggiungere nuovi dati al modello quando si esegue una stima e si incorporano automaticamente i nuovi dati nell'analisi delle tendenze.

Il diagramma seguente illustra un modello tipico per la previsione delle vendite di un prodotto in quattro aree di vendita diverse nel tempo. Il modello illustrato nel diagramma mostra le vendite per ogni area tracciata come linee rosse, gialle, viola e blu. La riga per ogni area ha due parti:

  • Le informazioni cronologiche vengono visualizzate a sinistra della linea verticale e rappresentano i dati usati dall'algoritmo per creare il modello.

  • Le informazioni stimate vengono visualizzate a destra della linea verticale e rappresentano la previsione che il modello effettua.

La combinazione dei dati di origine e dei dati di stima è detta serie.

Esempio di una serie temporale Esempio

Una funzionalità importante dell'algoritmo Microsoft Time Series è che può eseguire la stima incrociata. Se si esegue il training dell'algoritmo con due serie separate, ma correlate, è possibile usare il modello risultante per stimare il risultato di una serie in base al comportamento dell'altra serie. Ad esempio, le vendite osservate di un prodotto possono influenzare le vendite previste di un altro prodotto. La stima incrociata è utile anche per la creazione di un modello generale che può essere applicato a più serie. Ad esempio, le stime per una determinata area sono instabili perché la serie non dispone di dati di buona qualità. È possibile eseguire il training di un modello generale in una media di tutte e quattro le aree e quindi applicare il modello alla singola serie per creare stime più stabili per ogni area.

Esempio

Il team di gestione di Adventure Works Cycles vuole prevedere le vendite mensili delle biciclette per l'anno prossimo. L'azienda è particolarmente interessata al fatto che la vendita di un modello di biciclette possa essere usata per stimare la vendita di un altro modello. Usando l'algoritmo Microsoft Time Series sui dati cronologici degli ultimi tre anni, l'azienda può produrre un modello di data mining che prevede future vendite di biciclette. Inoltre, l'azienda può eseguire stime incrociate per verificare se le tendenze di vendita dei singoli modelli di biciclette sono correlate.

Ogni trimestre, l'azienda prevede di aggiornare il modello con i dati di vendita recenti e aggiornare le stime per modellare le tendenze recenti. Per correggere i negozi che non aggiornano in modo accurato o coerente i dati delle vendite, creeranno un modello di previsione generale e lo useranno per creare previsioni per tutte le aree.

Funzionamento dell'algoritmo

In SQL Server 2005 l'algoritmo Microsoft Time Series ha usato un singolo algoritmo ARTXP. L'algoritmo ARTXP è stato ottimizzato per le stime a breve termine e quindi ha stimato il valore probabile successivo in una serie. A partire da SQL Server 2008, l'algoritmo Microsoft Time Series usa sia l'algoritmo ARTXP che un secondo algoritmo, ARIMA. L'algoritmo ARIMA è ottimizzato per la stima a lungo termine. Per una spiegazione dettagliata sull'implementazione degli algoritmi ARTXP e ARIMA, vedere Documentazione tecnica sull'algoritmo Microsoft Time Series.

Per impostazione predefinita, l'algoritmo Microsoft Time Series usa una combinazione di algoritmi durante l'analisi dei modelli e l'esecuzione di stime. L'algoritmo esegue il training di due modelli separati sugli stessi dati: un modello usa l'algoritmo ARTXP e un modello usa l'algoritmo ARIMA. L'algoritmo combina quindi i risultati dei due modelli per ottenere la stima migliore rispetto a un numero variabile di intervalli di tempo. Poiché ARTXP è ideale per le stime a breve termine, viene ponderato più pesantemente all'inizio di una serie di stime. Tuttavia, poiché le sezioni temporali che si prevede si spostano ulteriormente nel futuro, ARIMA è ponderato più pesantemente.

È anche possibile controllare la combinazione di algoritmi per favorire la stima a breve o a lungo termine nella serie temporale. A partire da SQL Server 2008 Standard, è possibile specificare che l'algoritmo Microsoft Time Series usi una delle impostazioni seguenti:

  • Usare solo ARTXP per la stima a breve termine.

  • Usare solo ARIMA per la stima a lungo termine.

  • Usare la fusione predefinita dei due algoritmi.

A partire da SQL Server 2008 Enterprise, è possibile personalizzare il modo in cui l'algoritmo Microsoft Time Series combina i modelli per la stima. Quando si usa un modello misto, l'algoritmo Microsoft Time Series combina i due algoritmi nel modo seguente:

  • Solo ARTXP viene sempre usato per eseguire la prima coppia di stime.

  • Dopo la prima coppia di stime, viene usata una combinazione di ARIMA e ARTXP.

  • Man mano che aumenta il numero di passaggi di stima, le stime si basano maggiormente su ARIMA fino a quando ARTXP non viene più usato.

  • Si controlla il punto di combinazione, la velocità con cui viene ridotto il peso di ARTXP e il peso di ARIMA viene aumentato impostando il parametro PREDICTION_SMOOTHING.

Entrambi gli algoritmi possono rilevare la stagionalità nei dati a più livelli. Ad esempio, i dati potrebbero contenere cicli mensili annidati entro cicli annuali. Per rilevare questi cicli stagionali, è possibile fornire un hint di periodicità o specificare che l'algoritmo deve rilevare automaticamente la periodicità.

Oltre alla periodicità, esistono diversi altri parametri che controllano il comportamento dell'algoritmo Microsoft Time Series quando rileva la periodicità, esegue stime o analizza i casi. Per informazioni su come impostare i parametri dell'algoritmo, vedere Documentazione tecnica sull'algoritmo Microsoft Time Series.

Dati necessari per i modelli Time Series

Quando si preparano i dati per l'uso nel training di qualsiasi modello di data mining, assicurarsi di comprendere i requisiti per il modello specifico e il modo in cui vengono usati i dati.

Ogni modello di previsione deve contenere una serie di casi, ovvero la colonna che specifica le sezioni temporali o altre serie in cui si verifica il cambiamento. Ad esempio, i dati nel diagramma precedente mostrano la serie per le vendite di biciclette cronologiche e previste in un periodo di diversi mesi. Per questo modello, ogni area è una serie e la colonna delle date contiene la serie temporale, che rappresenta anche la serie di casi. In altri modelli, la serie di casi può essere un campo di testo o un identificatore, ad esempio un ID cliente o un ID transazione. Tuttavia, un modello time series deve usare sempre una data, un'ora o un altro valore numerico univoco per la serie case.

I requisiti per un modello time series sono i seguenti:

  • Una singola colonna di tempo chiave Ogni modello deve contenere una colonna numerica o di data utilizzata come serie temporale dei casi, che definisce gli intervalli temporali utilizzati dal modello. Il tipo di dati per la colonna tempo può essere un tipo di dati datetime o un tipo di dati numerico. Tuttavia, la colonna deve contenere valori continui e i valori devono essere univoci per ogni serie. La serie di casi per un modello di serie temporale non può essere archiviata in due colonne, ad esempio una colonna Anno e una colonna Mese.

  • Colonna stimabile Ogni modello deve contenere almeno una colonna stimabile intorno alla quale l'algoritmo compilerà il modello time series. Il tipo di dati della colonna stimabile deve avere valori continui. Ad esempio, è possibile stimare il modo in cui gli attributi numerici, ad esempio reddito, vendite o temperatura, cambiano nel tempo. Tuttavia, non è possibile usare una colonna contenente valori discreti, ad esempio lo stato di acquisto o il livello di istruzione, come colonna stimabile.

  • Colonna chiave della serie facoltativa Ogni modello può avere una colonna chiave aggiuntiva che contiene valori univoci che identificano una serie. La colonna chiave della serie facoltativa deve contenere valori univoci. Ad esempio, un singolo modello può contenere vendite per molti modelli di prodotto, purché sia presente un solo record per ogni nome di prodotto per ogni sezione temporale.

È possibile definire i dati di input per il modello Microsoft Time Series in diversi modi. Tuttavia, poiché il formato dei case di input influisce sulla definizione del modello di data mining, è necessario considerare le esigenze aziendali e preparare i dati di conseguenza. I due esempi seguenti illustrano come i dati di input influiscono sul modello. In entrambi gli esempi, il modello di data mining completato contiene modelli per quattro serie distinte:

  • Vendite per prodotto A

  • Vendite per prodotto B

  • Volume per prodotto A

  • Volume per il prodotto B

In entrambi gli esempi è possibile prevedere nuove vendite e volumi futuri per ogni prodotto. Non è possibile stimare nuovi valori per il prodotto o per il tempo.

Esempio 1: set di dati serie temporali con serie rappresentate come valori di colonna

In questo esempio viene usata la tabella seguente di case di input:

TimeID Prodotto Vendite Volume
1/2001 Un 1000 600
2/2001 A 1.100 500
1/2001 B 500 900
2/2001 B 300 890

La colonna TimeID della tabella contiene un identificatore di ora e contiene due voci per ogni giorno. La colonna TimeID diventa la serie di casi. Pertanto, si designerebbe questa colonna come colonna temporale chiave per il modello time series.

La colonna Product definisce un prodotto nel database. Questa colonna contiene la serie di prodotti. Di conseguenza, questa colonna verrà designata come seconda chiave per il modello time series.

La colonna Sales descrive i profitti lordi del prodotto specificato per un giorno e la colonna Volume descrive la quantità del prodotto specificato che rimane nel magazzino. Queste due colonne contengono i dati usati per eseguire il training del modello. Sia Sales che Volume possono essere attributi stimabili per ogni serie nella colonna Product.

Esempio 2: Set di dati di serie temporali con ogni serie in una colonna separata

Anche se questo esempio usa fondamentalmente gli stessi dati di input del primo esempio, i dati di input sono strutturati in modo diverso, come illustrato nella tabella seguente:

TimeID A_Sales A_Volume B_Sales B_Volume
1/2001 1000 600 500 900
2/2001 1.100 500 300 890

In questa tabella, la colonna TimeID contiene ancora la serie di casi per il modello di serie temporali, che viene designata da te come colonna temporale chiave. Tuttavia, le colonne Sales e Volume precedenti sono ora suddivise in due colonne e ognuna di queste colonne è preceduta dal nome del prodotto. Di conseguenza, nella colonna TimeID c'è soltanto un record per ogni giorno. Verrà creato un modello time series contenente quattro colonne stimabili: A_Sales, A_Volume, B_Sales e B_Volume.

Inoltre, poiché i prodotti sono stati separati in colonne diverse, non è necessario specificare una colonna chiave serie aggiuntiva. Tutte le colonne del modello sono una colonna di serie temporale o una colonna prevedibile.

Visualizzazione di un modello Time Series

Dopo aver eseguito il training del modello, i risultati vengono archiviati come set di modelli, che è possibile esplorare o usare per eseguire stime.

Per esplorare il modello, è possibile usare Time Series Viewer. Il visualizzatore include un grafico che visualizza stime future e una visualizzazione albero delle strutture periodiche nei dati.

Per altre informazioni sul modo in cui vengono calcolate le stime, è possibile esplorare il modello in Microsoft Generic Content Tree Viewer. Il contenuto archiviato per il modello include dettagli quali le strutture periodiche rilevate dagli algoritmi ARIMA e ARTXP, l'equazione usata per combinare gli algoritmi e altre statistiche.

Creazione di stime di serie temporali

Per impostazione predefinita, quando si visualizza un modello time series, Analysis Services mostra cinque stime per la serie. È tuttavia possibile creare query per restituire un numero variabile di stime ed è possibile aggiungere colonne aggiuntive alle stime per restituire statistiche descrittive. Per informazioni su come creare query su un modello time series, vedere Esempi di query del modello Time Series. Per esempi di come usare DMX (Data Mining Extensions) per eseguire stime delle serie temporali, vedere PredictTimeSeries (DMX).

Quando si usa l'algoritmo Microsoft Time Series per eseguire stime, è consigliabile prendere in considerazione le restrizioni e i requisiti aggiuntivi seguenti:

  • La stima incrociata è disponibile solo quando si usa un modello misto o un modello basato sull'algoritmo ARTXP. Se si usa un modello basato solo sull'algoritmo ARIMA, la stima incrociata non è possibile.

  • Un modello time series può eseguire stime che differiscono, a volte in modo significativo, a seconda del sistema operativo a 64 bit usato dal server. Queste differenze si verificano a causa del modo in cui un sistema basato su Itanium rappresenta e gestisce i numeri per l'aritmetica a virgola mobile, che differisce dal modo in cui un sistema basato su x64 esegue questi calcoli. Poiché i risultati della stima possono essere specifici del sistema operativo, è consigliabile valutare i modelli nello stesso sistema operativo che verrà usato nell'ambiente di produzione.

Osservazioni:

  • Non supporta l'uso del linguaggio PMML (Predictive Model Markup Language) per creare modelli di data mining.

  • Supporta l'uso di modelli di data mining OLAP.

  • Non supporta la creazione di dimensioni per l'analisi dei dati.

  • Supporta il drill-through.

Vedere anche

Algoritmi di data mining (Analysis Services - Data mining)
Esplorare un modello usando il Visualizzatore Microsoft Time Series
Riferimento tecnico per l'algoritmo Microsoft Time Series
Esempi di query sul modello Time Series
Contenuto del modello di data mining per i modelli Time Series (Analysis Services - Data mining)