Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'algoritmo Microsoft Time Series include due algoritmi separati per l'analisi delle serie temporali:
L'algoritmo ARTXP, introdotto in SQL Server 2005, è ottimizzato per stimare il valore probabile successivo in una serie.
L'algoritmo ARIMA è stato aggiunto in SQL Server 2008 per migliorare l'accuratezza per la stima a lungo termine.
Per impostazione predefinita, Analysis Services usa ogni algoritmo separatamente per eseguire il training del modello e quindi combina i risultati per produrre la stima migliore per un numero variabile di stime. È anche possibile scegliere di usare solo uno degli algoritmi, in base ai dati e ai requisiti di stima. In SQL Server 2008 Enterprise è anche possibile personalizzare il punto di taglio che controlla la combinazione di algoritmi durante la stima.
In questo argomento vengono fornite informazioni aggiuntive sulla modalità di implementazione di ogni algoritmo e su come personalizzare l'algoritmo impostando i parametri per ottimizzare i risultati dell'analisi e della stima.
Implementazione dell'algoritmo Microsoft Time Series
Microsoft Research ha sviluppato l'algoritmo ARTXP originale usato in SQL Server 2005, basando l'implementazione sull'algoritmo Microsoft Decision Trees. Di conseguenza, l'algoritmo ARTXP può essere descritto come modello ad albero autoregressivo per rappresentare i dati periodici delle serie temporali. Questo algoritmo mette in relazione un numero variabile di elementi passati a ogni elemento corrente stimato. Il nome ARTXP deriva dal fatto che il metodo di albero autoregressivo (un algoritmo ART) viene applicato a più stati precedenti sconosciuti. Per una spiegazione dettagliata dell'algoritmo ARTXP, vedere Autoregressive Tree Models for Time-Series Analysis.
L'algoritmo ARIMA è stato aggiunto all'algoritmo Microsoft Time Series in SQL Server 2008 per migliorare la stima a lungo termine. Si tratta di un'implementazione del processo per il calcolo delle medie mobili integrate autoregressive descritto da Box e Jenkins. La metodologia ARIMA consente di determinare le dipendenze nelle osservazioni eseguite in sequenza nel tempo e può incorporare shock casuali come parte del modello. Il metodo ARIMA supporta anche la stagionalità moltiplicativa. I lettori che vogliono saperne di più sull'algoritmo ARIMA sono invitati a leggere il lavoro seminale di Box e Jenkins; questa sezione è destinata a fornire dettagli specifici sul modo in cui la metodologia ARIMA è stata implementata nell'algoritmo Microsoft Time Series.
Per impostazione predefinita, l'algoritmo Microsoft Time Series usa entrambi i metodi, ARTXP e ARIMA e combina i risultati per migliorare l'accuratezza della stima. Se si desidera utilizzare solo un metodo specifico, è possibile impostare i parametri dell'algoritmo in modo che usino solo ARTXP o solo ARIMA o per controllare come vengono combinati i risultati degli algoritmi. Si noti che l'algoritmo ARTXP supporta la stima incrociata, ma l'algoritmo ARIMA non lo fa. Pertanto, la stima incrociata è disponibile solo quando si usa una combinazione di algoritmi o quando si configura il modello in modo che usi solo ARTXP.
Comprensione dell'ordine di differenza di ARIMA
Questa sezione introduce alcuni termini necessari per comprendere il modello ARIMA e discute l'implementazione specifica della differenziazione nell'algoritmo Microsoft Time Series. Per una spiegazione completa di questi termini e concetti, è consigliabile consultare Box e Jenkins.
Un termine è un componente di un'equazione matematica. Ad esempio, un termine in un'equazione polinomiale può includere una combinazione di variabili e costanti.
La formula ARIMA inclusa nell'algoritmo Microsoft Time Series utilizza termini autoregressivi e medi mobili.
I modelli time series possono essere stazionari o non stazioni. I modelli stazionari sono quelli che tornano a una media, anche se possono avere cicli, mentre i modelli non stazioni non hanno un focus sull'equilibrio e sono soggetti a una maggiore varianza o modifica introdotta da shock o variabili esterne.
L'obiettivo della differenziazione è quello di stabilizzare una serie temporale e renderla stazionaria.
L'ordine di differenza rappresenta il numero di volte in cui viene presa la differenza tra i valori per una serie temporale.
L'algoritmo Microsoft Time Series funziona accettando valori in una serie di dati e tentando di adattare i dati a un modello. Se la serie di dati non è già fissa, l'algoritmo applica un ordine di differenza. Ogni aumento dell'ordine di differenza tende a rendere la serie temporale più fissa.
Ad esempio, se si dispone della serie temporale (z1, z2, ..., zn) ed eseguire calcoli usando un ordine di differenza, si ottiene una nuova serie (y1, y2,...., yn-1), dove yi = zi+1-zi. Quando l'ordine di differenza è 2, l'algoritmo genera un'altra serie (x1, x2, ..., xn-2), in base alla serie y derivata dall'equazione del primo ordine. La quantità corretta di differenze dipende dai dati. Un singolo ordine di differenze è più comune nei modelli che mostrano una tendenza costante; un secondo ordine di differenze può indicare una tendenza che varia in base al tempo.
Per impostazione predefinita, l'ordine di differenza usato nell'algoritmo Microsoft Time Series è -1, ovvero l'algoritmo rileverà automaticamente il valore migliore per l'ordine di differenza. In genere, il valore migliore è 1 (quando è necessaria la differenza), ma in determinate circostanze l'algoritmo aumenterà tale valore a un massimo di 2.
L'algoritmo Microsoft Time Series determina l'ordine di differenza ARIMA ottimale usando i valori di autoregressione. L'algoritmo esamina i valori AR e imposta un parametro nascosto, ARIMA_AR_ORDER, che rappresenta l'ordine dei termini AR. Questo parametro nascosto, ARIMA_AR_ORDER, ha un intervallo di valori compreso tra -1 e 8. Con il valore predefinito -1, l'algoritmo selezionerà automaticamente l'ordine di differenza appropriato.
Ogni volta che il valore di ARIMA_AR_ORDER è maggiore di 1, l'algoritmo moltiplica la serie temporale per un termine polinomiale. Se un termine della formula polinomiale viene risolto in una radice di 1 o vicina a 1, l'algoritmo tenta di mantenere la stabilità del modello rimuovendo il termine e aumentando l'ordine di differenza di 1. Se l'ordine di differenza è già al massimo, il termine viene rimosso e l'ordine di differenza non cambia.
Ad esempio, se il valore di AR = 2, il termine polinomiale AR risultante potrebbe essere simile al seguente: 1 - 1,4B + .45B^2 = (1- .9B) (1- 0,5B). Si noti il termine (1- .9B) che ha una radice di circa 0,9. L'algoritmo elimina questo termine dalla formula polinomiale, ma non può aumentare l'ordine di differenza di uno perché è già al valore massimo di 2.
È importante notare che l'unico modo in cui è possibile forzare una modifica nell'ordine di differenza consiste nell'usare il parametro non supportato, ARIMA_DIFFERENCE_ORDER. Questo parametro nascosto controlla il numero di volte in cui l'algoritmo esegue differenze nella serie temporale e può essere impostato digitando un parametro di algoritmo personalizzato. Tuttavia, non è consigliabile modificare questo valore a meno che non si sia preparati a sperimentare e non si abbia familiarità con i calcoli coinvolti. Si noti inoltre che attualmente non esiste alcun meccanismo, inclusi i parametri nascosti, per consentire di controllare la soglia in corrispondenza della quale viene attivato l'aumento dell'ordine di differenza.
Infine, si noti che la formula descritta in precedenza è il caso semplificato, senza hint di stagionalità. Se vengono fornite indicazioni di stagionalità, si aggiunge un termine polinomiale AR separato a sinistra dell'equazione per ogni indicazione di stagionalità, e si applica la stessa strategia per eliminare i termini che potrebbero destabilizzare la serie differenziata.
Personalizzazione dell'algoritmo Microsoft Time Series
L'algoritmo Microsoft Time Series supporta i parametri seguenti che influiscono sul comportamento, sulle prestazioni e sull'accuratezza del modello di data mining risultante.
Annotazioni
L'algoritmo Microsoft Time Series è disponibile in tutte le edizioni di SQL Server; Tuttavia, alcune funzionalità avanzate, inclusi i parametri per la personalizzazione dell'analisi delle serie temporali, sono supportate solo in edizioni specifiche di SQL Server. Per un elenco delle funzionalità supportate dalle edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2012.
Rilevamento della stagionalità
Entrambi gli algoritmi ARIMA e ARTXP supportano il rilevamento della stagionalità o della periodicità. Analysis Services usa la trasformazione di Fourier veloce per rilevare la stagionalità prima dell'addestramento. Tuttavia, è possibile influire sul rilevamento della stagionalità e sui risultati dell'analisi delle serie temporali impostando i parametri dell'algoritmo.
Modificando il valore di AUTODETECT_SEASONALITY, è possibile influenzare il numero di possibili segmenti di tempo generati.
Impostando un valore o più valori per PERIODICITY_HINT, è possibile fornire all'algoritmo informazioni sui cicli previsti nei dati e aumentare potenzialmente l'accuratezza del rilevamento.
Annotazioni
Entrambi gli algoritmi ARTXP e ARIMA sono molto sensibili agli hint di stagionalità. Pertanto, fornire l'hint errato può influire negativamente sui risultati.
Scelta di un algoritmo e specifica della combinazione di algoritmi
Per impostazione predefinita o quando si seleziona l'opzione MIXED, Analysis Services combina gli algoritmi e li assegna allo stesso peso. Tuttavia, in SQL Server 2008 Enterprise è possibile specificare un particolare algoritmo oppure personalizzare la proporzione di ogni algoritmo nei risultati impostando un parametro che pondera i risultati verso la stima a breve o a lungo termine. Per impostazione predefinita, il parametro FORECAST_METHOD è impostato su MIXED e Analysis Services usa entrambi gli algoritmi e quindi ne pondera i valori per massimizzare i punti di forza di ogni algoritmo.
Per controllare la scelta dell'algoritmo, impostare il parametro FORECAST_METHOD .
Se si vuole usare la stima incrociata, è necessario usare l'opzione ARTXP o MIXED perché ARIMA non supporta la stima incrociata.
Impostare il FORECAST_METHOD su ARTXP se si vuole favorire la previsione a breve termine.
Imposta FORECAST_METHOD su ARIMA per migliorare la predizione a lungo termine.
In SQL Server 2008 Enterprise è anche possibile personalizzare il modo in cui Analysis Services combina la combinazione degli algoritmi ARIMA e ARTXP. È possibile controllare sia il punto iniziale per la miscela che la frequenza di modifica impostando il parametro PREDICTION_SMOOTHING :
Se si imposta PREDICTION_SMOOTHING su 0, il modello usa solo ARTXP.
Se si imposta PREDICTION_SMOOTHING su 1, il modello usa solo ARIMA.
Se si imposta PREDICTION_SMOOTHING su un valore compreso tra 0 e 1, il modello pondera l'algoritmo ARTXP come funzione esponenzialmente decrescente dei passaggi di stima. Allo stesso tempo, il modello assegna un peso all'algoritmo ARIMA come complemento a 1 del peso ARTXP. Il modello usa la normalizzazione e una costante di stabilizzazione per uniformare le curve.
In generale, se si prevede fino a 5 intervalli di tempo, ARTXP è quasi sempre la scelta migliore. Tuttavia, man mano che si aumenta il numero di intervalli di tempo da prevedere, ARIMA in genere offre prestazioni migliori.
Il diagramma seguente illustra come il modello combina gli algoritmi quando PREDICTION_SMOOTHING è impostato sul valore predefinito 0,5. ARIMA e ARTXP sono ponderati allo stesso modo in un primo momento, ma man mano che aumenta il numero di passaggi di stima, ARIMA viene pesato più pesantemente.
Al contrario, il diagramma seguente illustra la fusione degli algoritmi quando PREDICTION_SMOOTHING è impostato su 0,2. Per il passaggio 0, il modello pesa ARIMA come 0,2 e ARTXP come 0,8. Successivamente, il peso di ARIMA aumenta in modo esponenziale e il peso di ARTXP diminuisce in modo esponenziale.
Impostazione dei parametri dell'algoritmo
Nella tabella seguente vengono descritti i parametri che è possibile usare con l'algoritmo Microsoft Time Series.
| Parametro | Descrizione |
|---|---|
| AUTO_DETECT_PERIODICITY | Specifica un valore numerico compreso tra 0 e 1 che rileva la periodicità. Il valore predefinito è 0.6. Se il valore è più vicino a 0, la periodicità viene rilevata solo per i dati fortemente periodici. L'impostazione di questo valore più vicino a 1 favorisce l'individuazione di molti modelli quasi periodici e la generazione automatica di hint di periodicità. Nota: il trattamento di molte indicazioni di periodicità porterà probabilmente a tempi di formazione del modello significativamente più lunghi, ma a modelli più accurati. |
| PENALE PER LA COMPLESSITÀ | Controlla la crescita dell'albero delle decisioni. Il valore predefinito è 0.1. La riduzione di questo valore aumenta la probabilità di una divisione. L'aumento di questo valore riduce la probabilità di una divisione. Nota: questo parametro è disponibile solo in alcune edizioni di SQL Server. |
| METODO_DI_PREVISIONE | Specifica l'algoritmo da utilizzare per l'analisi e la stima. I valori possibili sono ARTXP, ARIMA o MIXED. Il valore predefinito è MIXED. |
| HISTORIC_MODEL_COUNT | Specifica il numero di modelli cronologici che verranno compilati. Il valore predefinito è 1. Nota: questo parametro è disponibile solo in alcune edizioni di SQL Server. |
| HISTORICAL_MODEL_GAP | Specifica il ritardo di tempo tra due modelli cronologici consecutivi. L'impostazione predefinita è 10. Il valore rappresenta un numero di unità di tempo, in cui l'unità è definita dal modello. Se ad esempio si imposta questo valore su g, i modelli cronologici vengono compilati per i dati troncati da intervalli di tempo a intervalli di g, 2*g, 3*g e così via. Nota: questo parametro è disponibile solo in alcune edizioni di SQL Server. |
| INSTABILITY_SENSITIVITY | Controlla il punto in cui la varianza di stima supera una determinata soglia, dopo la quale l'algoritmo ARTXP elimina le stime. Il valore predefinito è 1. Nota: questo parametro non si applica ai modelli che usano solo ARIMA. Il valore predefinito 1 fornisce lo stesso comportamento di SQL Server 2005. Analysis Services monitora la deviazione standard normalizzata per ogni stima. Non appena questo valore supera la soglia per qualsiasi stima, l'algoritmo time series restituisce un valore NULL e arresta il processo di stima. Il valore 0 arresta il rilevamento dell'instabilità. Ciò significa che è possibile creare un numero infinito di stime, indipendentemente dalla varianza. Nota: questo parametro può essere modificato solo in SQL Server Enterprise. In SQL Server Standard Analysis Services usa solo il valore predefinito 1. |
| MAXIMUM_SERIES_VALUE | Specifica il valore massimo da usare per le stime. Questo parametro viene usato, insieme a MINIMUM_SERIES_VALUE, per vincolare le stime a un intervallo previsto. Ad esempio, è possibile specificare che la quantità di vendita stimata per qualsiasi giorno non deve mai superare il numero di prodotti nell'inventario. Nota: questo parametro è disponibile solo in alcune edizioni di SQL Server. |
| MINIMUM_SERIES_VALUE | Specifica il valore minimo che può essere stimato. Questo parametro viene usato, insieme a MAXIMUM_SERIES_VALUE, per vincolare le stime a un intervallo previsto. Ad esempio, è possibile specificare che la quantità di vendita stimata non deve mai essere un numero negativo. Nota: questo parametro è disponibile solo in alcune edizioni di SQL Server. |
| MINIMUM_SUPPORT | Specifica il numero minimo di sezioni temporali necessarie per generare una divisione in ogni albero di serie temporali. L'impostazione predefinita è 10. |
| SOSTITUZIONE_VALORE_MANCANTE | Specifica il modo in cui vengono riempite le lacune nei dati cronologici. Per impostazione predefinita, i gap nei dati non sono consentiti. Se i dati contengono più serie, anche la serie non può avere bordi sfumati. Ovvero, tutte le serie devono avere gli stessi punti iniziale e finale. Analysis Services usa anche il valore di questo parametro per riempire le lacune nei nuovi dati quando si esegue un PREDICTION JOIN sul modello di serie temporale. Nella tabella seguente sono elencati i valori possibili per questo parametro:Nessuno: impostazione predefinita. Sostituisce i valori mancanti con i valori tracciati lungo la curva del modello sottoposto a training. Precedente: ripete il valore della sezione temporale precedente. Media: usa una media mobile delle fette temporali utilizzate nell'addestramento. Costante numerica: usa il numero specificato per sostituire tutti i valori mancanti. |
| PERIODICITY_HINT | Fornisce un suggerimento all'algoritmo in base alla periodicità dei dati. Ad esempio, se le vendite variano in base all'anno e l'unità di misura nella serie è mesi, la periodicità è 12. Questo parametro accetta il formato di {n [, n]}, dove n è un numero positivo. N tra parentesi quadre [] è facoltativo e può essere ripetuto con la frequenza necessaria. Ad esempio, per fornire più hint di periodicità per i dati forniti mensilmente, è possibile immettere {12, 3, 1} per rilevare i modelli per l'anno, il trimestre e il mese. Tuttavia, la periodicità ha un forte effetto sulla qualità del modello. Se l'hint che si dà differisce dalla periodicità effettiva, i risultati possono essere influenzati negativamente. Il valore predefinito è {1}. Nota: sono necessarie le parentesi graffe. Inoltre, questo parametro ha un tipo di dati stringa. Pertanto, se si digita questo parametro 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 il modello deve essere misto per ottimizzare la previsione. Questo parametro è disponibile solo in alcune edizioni di SQL Server. È possibile digitare qualsiasi valore compreso tra 0 e 1 oppure usare uno dei valori seguenti: 0: Specifica che la previsione utilizza solo ARTXP. Le previsioni sono ottimizzate per meno previsioni. 0.5: (Impostazione predefinita) Specifica che per la stima devono essere usati entrambi gli algoritmi e i risultati uniti. 1: specifica che la stima usa solo ARIMA. La previsione è ottimizzata per molte stime. Nota: usare il parametro FORECAST_METHOD per controllare il training. |
Bandiere di modellazione
L'algoritmo Microsoft Time Series supporta i flag di modellazione seguenti. Quando si crea la struttura di data mining o il modello di data mining, si definiscono indicatori di modellazione per specificare come i valori vengono gestiti in ogni colonna durante l'analisi. Per ulteriori informazioni, vedere Modellazione dei flag (Data Mining).
| Flag di modellazione | Descrizione |
|---|---|
| NON NULLO | Indica che la colonna non può contenere un valore Null. Se Analysis Services rileva un valore Null durante il training del modello, verrà generato un errore. Si applica alle colonne delle strutture di data mining. |
| ESISTENZA_MODELLO_SOLO | Significa che la colonna verrà considerata come con due possibili stati: Missing e Existing. Un valore Null è un valore mancante. Applicabile alle colonne del modello di mining. |
Requisiti
Un modello time series deve contenere una colonna temporale chiave contenente valori univoci, colonne di input e almeno una colonna stimabile.
Colonne di input e prevedibili
L'algoritmo Microsoft Time Series supporta i tipi di contenuto di colonna di input specifici, i tipi di contenuto delle colonne stimabili e i flag di modellazione elencati nella tabella seguente.
| colonna | Tipi di contenuto |
|---|---|
| Attributo di input | Continuo, Chiave, Tempo Chiave e Tabella |
| Attributo prevedibile | Continuo, Tabella |
Annotazioni
I tipi di contenuto ciclici e ordinati sono supportati, ma l'algoritmo li considera come valori discreti e non esegue un'elaborazione speciale.
Vedere anche
Algoritmo di serie temporali di MicrosoftEsempi di query del modello di serie temporaliContenuto del modello di data mining per i modelli di serie temporali (Analysis Services - Data Mining)