PredictTimeSeries (DMX)PredictTimeSeries (DMX)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce i valori futuri stimati per una serie temporale.Returns predicted future values for time series data. I dati di una serie temporale sono continui e possono essere archiviati in una tabella nidificata o di case.Time series data is continuous and can be stored in a nested table or in a case table. Il PredictTimeSeries funzione restituisce sempre una tabella nidificata.The PredictTimeSeries function always returns a nested table.

SintassiSyntax


PredictTimeSeries(<table column reference>)  
PredictTimeSeries(<table column reference>, n)  
PredictTimeSeries(<table column reference>, n-start, n-end)  
PredictTimeSeries(<scalar column reference>)  
PredictTimeSeries(<scalar column reference>, n)  
PredictTimeSeries(<scalar column reference>, n-start, n-end)  
PredictTimeSeries(<table column reference>, n, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<table column reference>, n-start, n-end, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<scalar column reference>, n, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  
PredictTimeSeries(<scalar column reference>, n-start, n-end, REPLACE_MODEL_CASES | EXTEND_MODEL_CASES) PREDICTION JOIN <source query>  

ArgomentiArguments

<tabella di riferimento di colonna >, <colonna scalare perchè ><table column reference>, <scalar column referenc>
Specifica il nome della colonna da stimare.Specifies the name of the column to predict. La colonna può contenere dati scalari o tabulari.The column can contain either scalar or tabular data.

n
Specifica il numero dei prossimi passaggi da stimare.Specifies the number of next steps to predict. Se non è stato specificato un valore per n , il valore predefinito è 1.If a value is not specified for n, the default is 1.

nnon può essere 0.n cannot be 0. La funzione restituisce un errore se non viene indicata almeno una stima.The function returns an error if you do not make at least one prediction.

avvio di n, n-endn-start, n-end
Specifica un intervallo di passaggi della serie temporale.Specifies a range of time series steps.

n-inizio deve essere un numero intero e non può essere 0.n-start must be an integer and cannot be 0.

n-end deve essere un numero intero maggiore di n-inizio.n-end must be an integer greater than n-start.

<query di origine ><source query>
Definisce i dati esterni utilizzati per l'esecuzione di stime.Defines the external data that is used for making predictions.

REPLACE_MODEL_CASES | EXTEND_MODEL_CASESREPLACE_MODEL_CASES | EXTEND_MODEL_CASES
Indica come gestire i nuovi dati.Indicates how to handle new data.

REPLACE_MODEL_CASES specifica che i punti dati nel modello devono essere sostituiti con i nuovi dati.REPLACE_MODEL_CASES specifies that the data points in the model should be replaced with new data. Tuttavia, le stime sono basate sugli schemi nel modello di data mining esistente.However, predictions are based on the patterns in the existing mining model.

EXTEND_MODEL_CASES specifica che i nuovi dati devono essere aggiunti al set di dati di training originale.EXTEND_MODEL_CASES specifies that the new data should be added to the original training data set. Stime future vengono eseguite sul set di dati composto solo dopo che i nuovi dati sono stati utilizzati.Future predictions are made on the composite data set only after the new data has been used up.

È possibile utilizzare questi argomenti solo quando i dati nuovi sono aggiunti mediante un'istruzione PREDICTION JOIN.These arguments can be used only when new data is added by using a PREDICTION JOIN statement. Se si utilizza una query PREDICTION JOIN e non si specifica un argomento, l'impostazione predefinita è EXTEND_MODEL_CASES.If you use a PREDICTION JOIN query and do not specify an argument, the default is EXTEND_MODEL_CASES.

Tipo restituitoReturn Type

Oggetto < espressione di tabella>.A <table expression>.

OsservazioniRemarks

L'algoritmo MicrosoftMicrosoft Time Series non supporta la stima cronologica quando i dati nuovi sono aggiunti mediante l'istruzione PREDICTION JOIN.The MicrosoftMicrosoft Time Series algorithm does not support historical prediction when you use the PREDICTION JOIN statement to add new data.

In un'istruzione PREDICTION JOIN, il processo di stima inizia sempre immediatamente dopo la fine della serie di training originaleIn a PREDICTION JOIN, the prediction process always starts at the time step immediately after the end of the original training series. anche se si aggiungono dati nuovi.This is true even if you add new data. Pertanto, il n parametro e n-inizio i valori dei parametri devono essere un numero intero maggiore di 0.Therefore, the n parameter and n-start parameter values must be an integer greater than 0.

Nota

La lunghezza dei dati nuovi non influisce sul punto iniziale di stima.The length of the new data does not affect the starting point for prediction. Pertanto, per aggiungere dati nuovi ed eseguire anche stime nuove, accertarsi di impostare il punto di inizio della stima su un valore maggiore della lunghezza dei dati nuovi oppure estendere il punto finale della stima in base alla lunghezza dei dati nuovi.Therefore, if you want to add new data and also make new predictions, make sure that you either set the prediction start point to a value greater than the length of the new data, or extend the prediction end point by the length of the new data.

EsempiExamples

Negli esempi seguenti viene illustrato come eseguire stime in base a un modello Time Series esistente:The following examples show how to make predictions against an existing time series model:

Nota

È possibile che vengano restituiti risultati diversi dal modello utilizzato. I risultati degli esempi seguenti sono forniti solo per illustrare il formato del risultato.You might obtain different results from your model; the results of the examples below are provided only to illustrate the result format.

Esempio 1: Stima di un numero di intervalli di tempoExample 1: Predicting a Number of Time Slices

L'esempio seguente usa il PredictTimeSeries funzione per restituire una stima per i prossimi tre intervalli temporali e limita i risultati per la serie M200 nelle aree Europa e Pacifico.The following example uses the PredictTimeSeries function to return a prediction for the next three time steps, and restricts results to the M200 series in the Europe and Pacific regions. In questo modello specifico, l'attributo stimabile è Quantity, pertanto è necessario utilizzare [Quantity] come primo argomento alla funzione PredictTimeSeries.In this particular model, the predictable attribute is Quantity, so you must use [Quantity] as the first argument to the PredictTimeSeries function.

SELECT FLATTENED  
    [Forecasting].[Model Region],  
    PredictTimeSeries([Forecasting].[Quantity],3)AS t   
FROM  
    [Forecasting]  
WHERE [Model Region] = 'M200 Europe'  
OR [Model Region] = 'M200 Pacific'  

Risultati previsti:Expected results:

Model RegionModel Region t.$TIMEt.$TIME t.Quantityt.Quantity
M200 EuropeM200 Europe 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 121121
M200 EuropeM200 Europe 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 142142
M200 EuropeM200 Europe 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 152152
M200 PacificM200 Pacific 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 4646
M200 PacificM200 Pacific 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 4444
M200 PacificM200 Pacific 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 4242

In questo esempio è stata utilizzata la parola chiave FLATTENED per rendere più semplice la lettura dei risultati.In this example, the FLATTENED keyword has been used to make the results easier to read. Se non si utilizza la parola chiave FLATTENED e viene restituito invece un set di righe gerarchico, questa query restituisce due colonne.If you do not use the FLATTENED keyword and instead return a hierarchical rowset, this query returns two columns. La prima colonna contiene il valore per [ModelRegion] e la seconda colonna contiene una tabella nidificata con due colonne: $TIME, che mostra gli intervalli di tempo stimati e Quantity, che contiene i valori stimati.The first column contains the value for [ModelRegion], and the second column contains a nested table with two columns: $TIME, which shows the time slices that are being predicted, and Quantity, which contains the predicted values.

Esempio 2: Aggiunta di dati nuovi e utilizzo di REPLACE_MODEL_CASESExample 2: Adding New Data and Using REPLACE_MODEL_CASES

Si supponga di trovare dati non corretti per una particolare area e di voler utilizzare gli schemi nel modello per modificare le stime in modo che riflettano i nuovi dati.Suppose you find that the data was incorrect for a particular region, and want to use the patterns in the model, but to adjust the predictions to match the new data. In alternativa, si potrebbe scoprire che un'altra area dispone di tendenze più affidabili e desiderare di applicare il modello più affidabile ai dati da un'area diversa.Or, you might find that another region has more reliable trends and you want to apply the most reliable model to data from a different region.

In questo scenario, è possibile utilizzare il parametro REPLACE_MODEL_CASES e specificare un nuovo set di dati da impiegare come dati della cronologia.In such scenarios, you can use the REPLACE_MODEL_CASES parameter and specify a new set of data to use as historical data. In tal modo, le proiezioni saranno basate sugli schemi nel modello specificato, ma continueranno uniformemente dalla fine dei nuovi punti dati.That way, the projections will be based on the patterns in the specified model, but will continue smoothly from the end of the new data points. Per una descrizione completa di questo scenario, vedere avanzate stime basate su serie temporali ( esercitazione intermedia sul Data Mining Data ).For a complete walkthrough of this scenario, see Advanced Time Series Predictions (Intermediate Data Mining Tutorial).

Nella seguente query PREDICTION JOIN è illustrata la sintassi per la sostituzione di dati e l'esecuzione delle nuove stime.The following PREDICTION JOIN query illustrates the syntax for replacing data and making new predictions. Per i dati della sostituzione, l'esempio recupera il valore delle colonne Amount e Quantity e moltiplica ogni valore per due:For the replacement data, the example retrieves the value of the Amount and Quantity columns and multiplies each by two:

SELECT [Forecasting].[Model Region],  
    PredictTimeSeries([Forecasting].[Quantity], 3, REPLACE_MODEL_CASES)   
FROM  
    [Forecasting]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT [ModelRegion],   
    ([Quantity] * 2) as Quantity,  
    ([Amount] * 2) as Amount,  
      [ReportingDate]  
    FROM [dbo].vTimeSeries  
    WHERE ModelRegion = N''M200 Pacific''  
    ') AS t  
ON  
  [Forecasting].[Model Region] = t.[ Model Region] AND  
[Forecasting].[Reporting Date] = t.[ReportingDate] AND  
[Forecasting].[Quantity] = t.[Quantity] AND  
[Forecasting].[Amount] = t.[Amount]  

Le tabelle seguenti confrontano i risultati della stima.The following tables compare the results of prediction.

Stime originali:Original predictions:

M200 PacificM200 Pacific 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 4646
M200 PacificM200 Pacific 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 4444
M200 PacificM200 Pacific 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 4242

Stime aggiornate:Updated predictions:

M200 PacificM200 Pacific 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 9191
M200 PacificM200 Pacific 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 8989
M200 PacificM200 Pacific 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 8484

Esempio 3: Aggiunta di dati nuovi e utilizzo di EXTEND_MODEL_CASESExample 3: Adding New Data and Using EXTEND_MODEL_CASES

Esempio 3 viene illustrato l'utilizzo del EXTEND_MODEL_CASES opzione per fornire nuovi dati, che viene aggiunto alla fine di una serie di dati esistente.Example 3 illustrates the use of the EXTEND_MODEL_CASES option to provide new data, which is added to the end of an existing data series. Anziché sostituire i punti dati esistenti, i nuovi dati vengono aggiunti nel modello.Rather than replacing the existing data points, the new data is added onto the model.

Nell'esempio seguente, i nuovi dati vengono forniti nell'istruzione SELECT che segue NATURAL PREDICTION JOIN.In the following example, the new data is provided in the SELECT statement that follows NATURAL PREDICTION JOIN. È possibile fornire più righe di nuovo input con questa sintassi, ma ogni nuova riga di input deve disporre di un timestamp univoco:You can supply multiple rows of new input with this syntax, but each new row of input must have a unique time stamp:

SELECT [Model Region],  
    PredictTimeSeries([Forecasting].[Quantity], 5, EXTEND_MODEL_CASES)   
FROM  
    [Forecasting]  
NATURAL PREDICTION JOIN  
    (SELECT  
        1 as [Reporting Date],  
        10 as [Quantity],  
        'M200 Europe' AS [Model Region]  
    UNION SELECT   
        2 as [Reporting Date],  
        15 as [Quantity],  
        'M200 Europe' AS [Model Region]  
) AS T  
WHERE ([Model Region] = 'M200 Europe'  
 OR [Model Region] = 'M200 Pacific')  

Poiché la query utilizza la EXTEND_MODEL_CASES opzione Analysis ServicesAnalysis Services esegue le azioni seguenti per le stime:Because the query uses the EXTEND_MODEL_CASES option, Analysis ServicesAnalysis Services takes the following actions for its predictions:

  • Aumenta la dimensione totale dei case di training aggiungendo i due nuovi mesi di dati al modello.Increases the total size of the training cases by adding the two new months of data to the model.

  • Avvia le stime alla fine dei dati del case precedenti.Starts the predictions at the end of the previous case data. Pertanto, le prime due stime rappresentano i nuovi dati di vendita effettivi che sono stati appena aggiunti al modello.Therefore, the first two predictions represent the new actual sales data that you just added to the model.

  • Restituisce stime nuove per i tre intervalli di tempo rimanenti in base al modello appena espanso.Returns new predictions for the remaining three time slices based on the newly expanded model.

    Nella tabella seguente sono elencati i risultati della query dell'esempio 2.The following table lists the results of the Example 2 query. Notare che i primi due valori restituiti per M200 Europa corrispondono esattamente ai nuovi valori forniti.Notice that the first two values returned for M200 Europe are exactly the same as the new values that you provided. Questo comportamento avviene per motivi strutturali. Per avviare stime dopo la fine dei nuovi dati, è necessario specificare intervallo temporale di inizio e di fine.This behavior is by design; if you want to start predictions after the end of the new data, you must specify a starting and ending time step. Per un esempio di come eseguire questa operazione, vedere lezione 5: estendere il modello Time Series.For an example of how to do this, see Lesson 5: Extending the Time Series Model.

    Inoltre, notare che non sono stati forniti i nuovi dati per l'area Pacifico.Also, notice that you did not supply new data for the Pacific region. Pertanto Analysis ServicesAnalysis Services restituisce nuove stime per tutti e cinque gli intervalli di tempo,Therefore, Analysis ServicesAnalysis Services returns new predictions for all five time slices.

    Quantità: M200 Europe.Quantity: M200 Europe. EXTEND_MODEL_CASES:EXTEND_MODEL_CASES:

$TIME$TIME QuantityQuantity
7/25/2008 0:007/25/2008 0:00 1010
8/25/2008 0:008/25/2008 0:00 1515
9/25/2008 0:009/25/2008 0:00 7272
10/25/2008 0:0010/25/2008 0:00 6969
11/25/2008 0:0011/25/2008 0:00 6868

Quantità: M200 Pacific.Quantity: M200 Pacific. EXTEND_MODEL_CASES:EXTEND_MODEL_CASES:

$TIME$TIME QuantityQuantity
7/25/2008 0:007/25/2008 0:00 4646
8/25/2008 0:008/25/2008 0:00 4444
9/25/2008 0:009/25/2008 0:00 4242
10/25/2008 0:0010/25/2008 0:00 4242
11/25/2008 0:0011/25/2008 0:00 3838

Esempio 4: Restituzione di statistiche in una stima basata su serie temporaliExample 4: Returning Statistics in a Time Series Prediction

Il PredictTimeSeries funzione non supporta INCLUDE_STATISTICS come parametro.The PredictTimeSeries function does not support INCLUDE_STATISTICS as a parameter. Tuttavia, è possibile utilizzare la query seguente per visualizzare le statistiche di stima relative a una query di serie temporale.However, the following query can be used to return the prediction statistics for a time series query. Questo approccio può essere utilizzato anche nel caso di modelli con colonne della tabella nidificate.This approach can also be used with models that have nested table columns.

In questo modello specifico, l'attributo stimabile è Quantity, pertanto è necessario utilizzare [Quantity] come primo argomento alla funzione PredictTimeSeries.In this particular model, the predictable attribute is Quantity, so you must use [Quantity] as the first argument to the PredictTimeSeries function. Se nel modello viene utilizzato un attributo stimabile diverso, è possibile sostituire un nome della colonna diverso.If your model uses a different predictable attribute, you can substitute a different column name.

SELECT FLATTENED [Model Region],  
(SELECT   
     $Time,  
     [Quantity] as [PREDICTION],   
     PredictVariance([Quantity]) AS [VARIANCE],  
     PredictStdev([Quantity]) AS [STDEV]  
FROM  
      PredictTimeSeries([Quantity], 3) AS t  
) AS t  
FROM Forecasting  
WHERE [Model Region] = 'M200 Europe'  
OR [Model Region] = 'M200 North America'  

Risultati dell'esempio:Sample results:

Model RegionModel Region t.$TIMEt.$TIME t.PREDICTIONt.PREDICTION t.VARIANCEt.VARIANCE t.STDEVt.STDEV
M200 EuropeM200 Europe 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 121121 11.605058141559711.6050581415597 3.406619753004393.40661975300439
M200 EuropeM200 Europe 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 142142 10.67820186662110.678201866621 3.267751806153743.26775180615374
M200 EuropeM200 Europe 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 152152 9.868978425686149.86897842568614 3.141493024930373.14149302493037
M200 North AmericaM200 North America 7/25/2008 12:00:00 AM7/25/2008 12:00:00 AM 163163 1.204345292881621.20434529288162 1.204345292881621.20434529288162
M200 North AmericaM200 North America 8/25/2008 12:00:00 AM8/25/2008 12:00:00 AM 178178 1.650313439006341.65031343900634 1.650313439006341.65031343900634
M200 North AmericaM200 North America 9/25/2008 12:00:00 AM9/25/2008 12:00:00 AM 156156 1.689693991854421.68969399185442 1.689693991854421.68969399185442
Nota

In questo esempio è stata utilizzata la parola chiave FLATTENED per rendere più semplice la presentazione dei risultati in una tabella. Tuttavia, se il provider supporta i set di righe gerarchici, è possibile omettere la parola chiave FLATTENED.The FLATTENED keyword was used in this example to make the results easier to present in a table; however, if your provider supports hierarchical rowsets you can omit the FLATTENED keyword. Se si omette la parola chiave FLATTENED, la query restituisce due colonne, la prima colonna contenente il valore che identifica la serie di dati [Model Region] e la seconda colonna contenente la tabella di statistiche nidificata.If you omit the FLATTENED keyword, the query returns two columns, the first column containing the value that identifies the [Model Region] data series, and the second column containing the nested table of statistics.

Vedere ancheSee Also

Data Mining Extensions ( DMX ) Riferimento (funzione) Data Mining Extensions (DMX) Function Reference
Tempo Series Model Query Examples Time Series Model Query Examples
Stimare ( DMX )Predict (DMX)