Riferimento tecnico per l'algoritmo Microsoft Time Series

L'algoritmo Microsoft Time Series include due algoritmi distinti:

  • L'algoritmo ARTXP, introdotto in SQL Server 2005, è ottimizzato per stimare il successivo valore probabile in una serie.

  • L'algoritmo ARIMA è stato aggiunto in SQL Server 2008 per migliorare l'accuratezza della stima a lungo termine.

Per impostazione predefinita, Analysis Services utilizza ciascun algoritmo separatamente per il training del modello, quindi combina i risultati per produrre la stima migliore per un numero variabile di stime. È inoltre possibile scegliere di utilizzare solo uno degli algoritmi, in base ai requisiti relativi a dati e stime. In SQL Server 2008 Enterprise Edition è inoltre possibile personalizzare il punto di riferimento che controlla la combinazione di algoritmi durante la stima.

In questo argomento sono incluse informazioni aggiuntive sulla modalità di implementazione di ciascun algoritmo e su come personalizzare un algoritmo impostando parametri per ottimizzare i risultati di analisi e stima.

Implementazione degli algoritmi Time Series

Microsoft Research ha sviluppato l'algoritmo ARTXP basandolo sull'algoritmo Microsoft Decision Trees, un modello di albero autoregressivo per la rappresentazione di una serie temporale periodica. L'algoritmo ARTXP correla un numero variabile di elementi precedenti a ciascun elemento corrente stimato. Il nome ARTXP deriva dal fatto che l'algoritmo ART, o metodo dell'albero autoregressivo, viene applicato a più stati precedenti non noti. Per una descrizione dettagliata dell'algoritmo ARTXP, vedere Autoregressive Tree Models for Time-Series Analysis.

L'algoritmo ARIMA viene utilizzato per stime a lungo termine ed è un'implementazione dell'algoritmo ARIMA sviluppato da Box e Jenkins. ARIMA, o media mobile integrata autoregressiva (Autoregressive Integrated Moving Average), è un noto metodo per determinare le dipendenze in osservazioni effettuate in sequenza nel tempo. Questo algoritmo supporta inoltre la stagionalità moltiplicativa. L'algoritmo ARIMA utilizza termini media mobile e autoregressivi.

Benché l'algoritmo ARTXP supporti la stima incrociata, questa non è supportata dall'algoritmo ARIMA. La stima incrociata è pertanto disponibile solo quando si utilizza una combinazione di algoritmi o quando il modello viene configurato per l'utilizzo del solo algoritmo ARTXP.

Personalizzazione dell'algoritmo Microsoft Time Series

L'algoritmo Microsoft Time Series supporta diversi parametri che influiscono su comportamento, prestazioni e accuratezza del modello di data mining risultante.

Rilevamento della stagionalità

Entrambi gli algoritmi supportano il rilevamento della stagionalità o della periodicità. Analysis Services utilizza la trasformazione Fast Fourier per rilevare la stagionalità prima del training.

Per ottenere risultati ottimali, è possibile controllare il rilevamento della stagionalità impostando alcuni parametri dell'algoritmo. Modificando il valore di AUTODETECT_SEASONALITY, è possibile influenzare il possibile numero di segmenti temporali generati. Impostando un valore o più valori per PERIODICITY_HINT, è possibile fornire all'algoritmo informazioni su periodi ripetuti noti e aumentare l'accuratezza di rilevamento.

[!NOTA]

Gli algoritmi ARTXP e ARIMA sono entrambi dipendenti dagli hint di stagionalità. Un hint errato può pertanto influire negativamente sui risultati.

Combinazione di algoritmi

Per impostazione predefinita, in Analysis Services gli algoritmi vengono combinati e associati a un fattore di ponderazione equivalente. In SQL Server 2008 Enterprise Edition, tuttavia, è possibile personalizzare la combinazione dei risultati selezionando l'opzione MIXED e impostando un parametro per ponderare i risultati rispetto a stime a breve o a lungo termine.

Se si desidera utilizzare la stima incrociata, è necessario utilizzare l'opzione ARTXP o MIXED, in quanto ARIMA non supporta la stima incrociata.

Per controllare la scelta dell'algoritmo, impostare il parametro FORECAST_METHOD. Per impostazione predefinita, il parametro FORECAST_METHOD è impostato su MIXED e Analysis Services utilizza entrambi gli algoritmi e quindi ne pondera i valori per ottimizzare l'attendibilità di ciascun algoritmo. È tuttavia possibile impostare FORECAST_METHOD su ARTXP se si desidera utilizzare solo l'algoritmo ARTXP o su ARIMA se si desidera utilizzare solo l'algoritmo ARIMA.

In SQL Server 2008 Enterprise Edition è inoltre possibile personalizzare il modo in cui gli algoritmi ARIMA e ARTXP vengono combinati da Analysis Services. È possibile determinare sia il punto di inizio della combinazione sia la frequenza di modifica impostando il parametro PREDICTION_SMOOTHING:

  • Se si imposta PREDICTION_SMOOTHING su 0, il modello utilizzerà solo l'algoritmo ARTXP.

  • Se si imposta PREDICTION_SMOOTHING su 1, il modello utilizzerà solo l'algoritmo ARIMA.

  • Se si imposta set PREDICTION_SMOOTHING su un valore compreso tra 0 e 1, il modello pondera l'algoritmo ARTXP come funzione esponenzialmente decrescente degli intervalli per la stima. Il modello, inoltre, pondera l'algoritmo ARIMA come complemento 1 rispetto al fattore di ponderazione di ARTXP. Il modello utilizza la normalizzazione e una costante di stabilizzazione per smussare le curve.

In generale, per stime di fino a cinque intervalli di tempo, ARTXP rappresenta quasi sempre la scelta migliore. Se, tuttavia, si aumenta il numero di intervalli di tempo da stimare, le prestazioni dell'algoritmo ARIMA risultano in genere migliori.

Nel diagramma seguente viene illustrato il modo in cui il modello combina gli algoritmi quando PREDICTION_SMOOTHING è impostato sul valore predefinito, ovvero 0,5. ARIMA e ARTXP vengono innanzitutto ponderati in modo equivalente, ma, con l'aumentare del numero di stime, all'algoritmo ARIMA viene assegnato un fattore di ponderazione maggiore.

Curva predefinita per la combinazione degli algoritmi Time Series

Al contrario, nel diagramma seguente viene illustrata la combinazione degli algoritmi quando PREDICTION_SMOOTHING è impostato su 0,2. Per l'intervallo 0, il modello assegna all'algoritmo ARIMA un fattore di ponderazione pari a 0,2 e all'algoritmo ARTxp un fattore di ponderazione pari a 0,8. Successivamente, il fattore di ponderazione dell'algoritmo ARIMA aumenta in misura esponenziale, mentre quello di ARTXP diminuisce in misura esponenziale.

Curva di decadimento per la combinazione dei modelli Time Series

Impostazione dei parametri dell'algoritmo

Nella tabella seguente vengono descritti i parametri che è possibile utilizzare con l'algoritmo Microsoft Time Series.

Parametro

Descrizione

AUTO_DETECT_PERIODICITY

Specifica un valore numerico compreso tra 0 e 1 per il rilevamento della periodicità. Il valore predefinito è 0,6.

Se il valore è prossimo a 0, la periodicità viene rilevata solo per dati fortemente periodici.

L'impostazione di un valore prossimo a 1 favorisce l'individuazione di numerosi modelli quasi periodici e la generazione automatica di hint di periodicità.

NotaNota
È probabile che la gestione di un numero elevato di hint di periodicità comporti tempi di training del modello significativamente più lunghi, ma modelli più accurati.

COMPLEXITY_PENALTY

Controlla l'aumento delle dimensioni dell'albero delle decisioni. Il valore predefinito è 0,1.

La riduzione di questo valore comporta una maggiore probabilità di una divisione. L'aumento di questo valore comporta una minore probabilità di una divisione.

NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

FORECAST_METHOD

Specifica l'algoritmo da utilizzare per l'analisi e la stima. I valori possibili sono ARTXP, ARIMA e MIXED. Il valore predefinito è MIXED.

HISTORIC_MODEL_COUNT

Specifica il numero di modelli cronologici che verranno generati. Il valore predefinito è 1.

NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

HISTORICAL_MODEL_GAP

Specifica l'intervallo di tempo tra due modelli cronologici consecutivi. Il valore predefinito è 10. Il valore rappresenta un numero di unità di tempo, in cui l'unità è definita dal modello.

Se, ad esempio, questo valore viene impostato su g, verranno generati modelli cronologici per i dati suddivisi in periodi temporali in corrispondenza degli intervalli di tempo g, 2*g, 3*g e così via.

NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

INSTABILITY_SENSITIVITY

Controlla il punto in cui la varianza della stima supera una certa soglia e l'algoritmo ARTXP disattiva le stime. Il valore predefinito è 1.

NotaNota
Questo parametro si applica solo ad ARTXP e pertanto non ai modelli creati utilizzando solo l'algoritmo ARIMA. Se applicato a un modello misto, il parametro viene applicato solo alla parte ARTXP del modello.

Il valore predefinito 1 determina un comportamento dei modelli ARTXP identico a SQL Server 2005. Analysis Services controlla la deviazione standard normalizzata per ogni stima. Quando le deviazioni standard per una stima superano la soglia, l'algoritmo Time Series restituisce un valore NULL e interrompe il processo di stima.

Un valore 0 comporta l'interruzione del rilevamento dell'instabilità. È pertanto possibile creare un numero infinito di stime, indipendentemente dalla varianza.

NotaNota
Questo parametro può essere modificato solo in SQL Server Enterprise. In SQL Server Standard Analysis Services utilizza solo il valore predefinito 1.

MAXIMUM_SERIES_VALUE

Specifica il valore massimo da utilizzare per le stime. Questo parametro viene utilizzato, insieme a MINIMUM_SERIES_VALUE, per vincolare le stime a un intervallo previsto. È possibile, ad esempio, specificare che la quantità stimata per le vendite per qualsiasi giorno non superi mai il numero di prodotti in inventario.

NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

MINIMUM_SERIES_VALUE

Specifica il valore minimo che può essere stimato. Questo parametro viene utilizzato, insieme a MAXIMUM_SERIES_VALUE, per vincolare le stime a un intervallo previsto. È possibile specificare, ad esempio, che la quantità prevista per le vendite non sia mai un numero negativo.

NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

MINIMUM_SUPPORT

Specifica il numero minimo di intervalli di tempo necessari per generare una divisione in ogni albero di serie temporali. Il valore predefinito è 10.

MISSING_VALUE_SUBSTITUTION

Specifica il modo in cui riempire i gap nei dati cronologici. Per impostazione predefinita, non sono consentiti gap nei dati.

Nella tabella seguente sono inclusi i valori possibili per questo parametro:

ValoreDescrizione
PreviousRipete il valore dall'intervallo di tempo precedente.
MeanUtilizza una media mobile degli intervalli di tempo utilizzati nel training.
Numeric constantUtilizza il numero specificato per sostituire tutti i valori mancanti.
NoneSostituisce i valori mancanti con quelli tracciati lungo la curva del modello di cui è stato eseguito il training. Si tratta del valore predefinito.

Se i dati contengono più serie, inoltre, le serie non possono avere margini discontinui, ovvero tutte le serie devono avere gli stessi punti di inizio e di fine.

Analysis Services utilizza inoltre il valore di questo parametro per riempire i gap nei nuovi dati quando si esegue un'istruzione PREDICTION JOIN nel modello Time Series.

PERIODICITY_HINT

Specifica un hint per l'algoritmo in riferimento alla periodicità dei dati. Se, ad esempio, le vendite variano in base all'anno e l'unità di misura utilizzata nella serie è il mese, la periodicità è 12. Questo parametro assume il formato {n [, n]}, dove n è qualsiasi numero positivo.

Il valore n all'interno delle parentesi quadre [] è facoltativo e può essere ripetuto con la frequenza desiderata. Per specificare, ad esempio, più hint di periodicità per i dati forniti ogni mese, è possibile immettere {12, 3 1} per rilevare modelli per l'anno, il trimestre e il mese. La periodicità, tuttavia, influisce significativamente sulla qualità del modello. Se l'hint specificato è diverso dalla periodicità effettiva, i risultati possono subire conseguenze negative.

Il valore predefinito è {1}.

NotaNota
Le parentesi graffe sono obbligatorie. I dati di questo parametro, inoltre, sono di tipo stringa. Se pertanto questo parametro viene digitato come parte di un'istruzione DMX (Data Mining Extensions), è necessario racchiudere il numero e le parentesi graffe tra virgolette.

PREDICTION_SMOOTHING

Specifica il modo in cui combinare il modello per ottimizzare la previsione. È possibile digitare qualsiasi valore compreso tra 0 e 1 o utilizzare uno dei valori seguenti:

NotaNota
Utilizzare il parametro FORECAST_METHOD per controllare il training.
ValoreDescrizione
0Specifica che la stima utilizza solo l'algoritmo ARTXP. La previsione è ottimizzata per un numero minore di stime.
1Specifica che la stima utilizza solo l'algoritmo ARIMA. La previsione è ottimizzata per un numero elevato di stime.
0.5Impostazione predefinita. Specifica che per la stima devono essere utilizzati entrambi gli algoritmi e che i risultati devono essere combinati.
NotaNota
Questo parametro è disponibile solo in SQL Server Enterprise Edition.

Flag di modellazione

L'algoritmo Microsoft Time Series supporta i flag di modellazione seguenti. Quando si crea la struttura o il modello di data mining, vengono definiti i flag di modellazione che consentono di specificare la modalità di gestione dei valori in ogni colonna durante l'analisi. Per ulteriori informazioni, vedere Flag di modellazione (data mining).

Flag di modellazione

Descrizione

NOT NULL

Indica che la colonna non può contenere un valore Null. Se Analysis Services rileva un valore Null durante il training del modello, viene restituito un errore.

Si applica alle colonne della struttura di data mining.

MODEL_EXISTENCE_ONLY

Indica che la colonna verrà considerata come se presentasse due stati possibili, ovvero Missing ed Existing. Un valore Null è un valore mancante.

Si applica alle colonne del modello di data mining.

Requisiti

Un modello Time Series deve includere una colonna chiave temporale contenente valori univoci, colonne di input e almeno una colonna stimabile.

Colonne di input e stimabili

L'algoritmo Microsoft Time Series supporta i tipi di contenuto specifici delle colonne di input, i tipi di contenuto specifici delle colonne stimabili e i flag di modellazione elencati nella tabella seguente.

Colonna

Tipi di contenuto

Attributo di input

Continuous, Key, Key Time e Table

Attributo stimabile

Continuous e Table

[!NOTA]

Sono supportati i tipi di contenuto Cyclical e Ordered ma l'algoritmo li considera come valori discreti e non esegue un'elaborazione speciale.