PredictTimeSeries(DMX)PredictTimeSeries (DMX)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

시계열 데이터에 대한 예측 미래 값을 반환합니다.Returns predicted future values for time series data. 시계열 데이터는 연속적이며 중첩 테이블이나 사례 테이블에 저장할 수 있습니다.Time series data is continuous and can be stored in a nested table or in a case table. PredictTimeSeries 함수는 항상 중첩된 테이블을 반환 합니다.The PredictTimeSeries function always returns a nested table.

구문Syntax


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>  

인수Arguments

<테이블 열 참조 >, <스칼라 열 참조 ><table column reference>, <scalar column referenc>
예측할 열의 이름을 지정합니다.Specifies the name of the column to predict. 열에는 스칼라 또는 테이블 형식 데이터가 포함될 수 있습니다.The column can contain either scalar or tabular data.

n
예측할 다음 단계의 수를 지정합니다.Specifies the number of next steps to predict. 에 대 한 값을 지정 하지 않으면 n , 기본값은 1입니다.If a value is not specified for n, the default is 1.

n0 일 수 없습니다.n cannot be 0. 하나 이상의 예측을 만들지 않으면 함수에서 오류가 반환됩니다.The function returns an error if you do not make at least one prediction.

n 시작, 끝 nn-start, n-end
시계열 단계의 범위를 지정합니다.Specifies a range of time series steps.

n 시작 는 정수 여야 하며 0 일 수 없습니다.n-start must be an integer and cannot be 0.

n 간 보다 큰 정수 여야 합니다 n 시작합니다.n-end must be an integer greater than n-start.

<원본 쿼리 ><source query>
예측을 수행하는 데 사용되는 외부 데이터를 정의합니다.Defines the external data that is used for making predictions.

REPLACE_MODEL_CASES | EXTEND_MODEL_CASESREPLACE_MODEL_CASES | EXTEND_MODEL_CASES
새 데이터를 처리하는 방법을 나타냅니다.Indicates how to handle new data.

REPLACE_MODEL_CASES는 모델의 데이터 요소가 새 데이터로 바뀌도록 지정합니다.REPLACE_MODEL_CASES specifies that the data points in the model should be replaced with new data. 그러나 예측은 기존 마이닝 모델의 패턴을 기반으로 합니다.However, predictions are based on the patterns in the existing mining model.

EXTEND_MODEL_CASES는 새 데이터가 원래의 학습 데이터 집합에 추가되도록 지정합니다.EXTEND_MODEL_CASES specifies that the new data should be added to the original training data set. 이후의 예측은 새 데이터가 모두 사용된 후에만 복합 데이터 집합에 대해 생성됩니다.Future predictions are made on the composite data set only after the new data has been used up.

이러한 인수는 PREDICTION JOIN 문을 사용하여 새 데이터가 추가되는 경우에만 사용할 수 있습니다.These arguments can be used only when new data is added by using a PREDICTION JOIN statement. PREDICTION JOIN 쿼리를 사용하고 인수를 지정하지 않을 경우 기본값은 EXTEND_MODEL_CASES입니다.If you use a PREDICTION JOIN query and do not specify an argument, the default is EXTEND_MODEL_CASES.

반환 형식Return Type

A < 식 테이블> 합니다.A <table expression>.

주의Remarks

MicrosoftMicrosoft 시계열 알고리즘은 PREDICTION JOIN 문을 사용하여 새 데이터를 추가하는 경우 기록 예측을 지원하지 않습니다.The MicrosoftMicrosoft Time Series algorithm does not support historical prediction when you use the PREDICTION JOIN statement to add new data.

PREDICTION JOIN에서 예측 프로세스는 항상 원래 학습 계열이 끝난 직후의 시간 단계에서 시작됩니다.In a PREDICTION JOIN, the prediction process always starts at the time step immediately after the end of the original training series. 이는 새 데이터를 추가하는 경우에도 마찬가지입니다.This is true even if you add new data. 따라서는 n 매개 변수 및 n 시작 매개 변수 값에는 0 보다 큰 정수 여야 합니다.Therefore, the n parameter and n-start parameter values must be an integer greater than 0.

참고

새 데이터의 길이는 예측의 시작 지점에 영향을 미치지 않습니다.The length of the new data does not affect the starting point for prediction. 따라서 새 데이터를 추가하고 새 예측도 수행하려면 예측 시작 지점을 새 데이터의 길이보다 큰 값으로 설정하거나 예측 종료 지점을 새 데이터 길이만큼 늘려야 합니다.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.

Examples

다음 예에서는 기존 시계열 모델에 대해 예측을 수행하는 방법을 보여 줍니다.The following examples show how to make predictions against an existing time series model:

  • 첫 번째 예는 현재 모델을 기반으로 지정된 수만큼의 예측을 수행하는 방법을 보여 줍니다.The first example shows how to make a specified number of predictions based on the current model.

  • 두 번째 예는 REPLACE_MODEL_CASES 매개 변수를 사용하여 지정 모델의 패턴을 새 데이터 집합에 적용하는 방법을 보여 줍니다.The second example shows how to use the REPLACE_MODEL_CASES parameter to apply the patterns in the specified model to a new set of data.

  • 세 번째 예는 EXTEND_MODEL_CASES 매개 변수를 사용하여 마이닝 모델을 새 데이터로 업데이트하는 방법을 보여 줍니다.The third example shows how to use the EXTEND_MODEL_CASES parameter to update a mining model with fresh data.

    시계열 모델을 사용 하는 방법에 대 한 자세한 내용은 데이터 마이닝 자습서를 참조 하십시오. 2 단원: 예측 시나리오 ( 중급 데이터 마이닝 자습서 ) 구축시계열 예측 DMX 자습서합니다.To learn more about working with time series models, see the data mining tutorial, Lesson 2: Building a Forecasting Scenario (Intermediate Data Mining Tutorial) and Time Series Prediction DMX Tutorial.

참고

사용자 모델의 결과는 다를 수 있습니다. 아래 예의 결과는 결과 형식을 보여 주기 위한 것입니다.You might obtain different results from your model; the results of the examples below are provided only to illustrate the result format.

예제 1: 시간 조각의 수 예측Example 1: Predicting a Number of Time Slices

다음 예제에서는 PredictTimeSeries 다음에 대 한 예측을 반환 하는 함수 세 시간 단계 및 결과를 Europe 및 Pacific 지역의 M200 계열로 제한 합니다.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. 이 특정 모델에서 예측 가능한 특성은 Quantity 이므로 사용 해야 [Quantity] 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'  

예상 결과: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

이 예에서는 결과를 읽기 쉽도록 FLATTENED 키워드가 사용되었습니다.In this example, the FLATTENED keyword has been used to make the results easier to read. FLATTENED 키워드를 사용하지 않고 계층적 행 집합을 반환하면 이 쿼리에서 두 열을 반환합니다.If you do not use the FLATTENED keyword and instead return a hierarchical rowset, this query returns two columns. 첫 번째 열에는 [ModelRegion]에 대한 값이 포함되고 두 번째 열에는 두 개의 열(예측되는 시간 조각을 보여 주는 $TIME 및 예측되는 값을 포함하는 Quantity)이 있는 중첩 테이블이 포함됩니다.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.

예제 2: 새 데이터를 추가 및 REPLACE_MODEL_CASES 사용Example 2: Adding New Data and Using REPLACE_MODEL_CASES

특정 지역에 대한 데이터가 잘못된 것을 발견하고 모델의 패턴을 사용하여 새 데이터와 일치하도록 예측을 조정하려 한다고 가정합니다.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. 다른 지역의 추세가 더 안정적이라는 것을 발견하고 가장 안정적인 모델을 여러 지역의 데이터에 적용하려고 할 수도 있습니다.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.

이러한 시나리오에서는 REPLACE_MODEL_CASES 매개 변수를 사용하고 기록 데이터로 사용할 새 데이터 집합을 지정할 수 있습니다.In such scenarios, you can use the REPLACE_MODEL_CASES parameter and specify a new set of data to use as historical data. 이렇게 하면 프로젝션이 지정된 모델의 패턴을 기반으로 하지만 새 데이터 요소의 끝에서 부드럽게 이어집니다.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. 이 시나리오는 전체 연습은 참조 고급 시계열 예측 ( 중급 데이터 마이닝 자습서 )합니다.For a complete walkthrough of this scenario, see Advanced Time Series Predictions (Intermediate Data Mining Tutorial).

다음 PREDICTION JOIN 쿼리에서는 데이터를 바꾸고 새 예측을 만드는 구문을 보여 줍니다.The following PREDICTION JOIN query illustrates the syntax for replacing data and making new predictions. 데이터를 바꾸기 위해 이 예에서는 Amount 및 Quantity 열의 값을 검색하여 각 값에 2를 곱합니다.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]  

다음 표에서 예측의 결과 비교합니다.The following tables compare the results of prediction.

원래 예측: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

업데이트 된 예측: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

예제 3: 새 데이터 추가 및 EXTEND_MODEL_CASES를 사용 하 여Example 3: Adding New Data and Using EXTEND_MODEL_CASES

예 3에서는 사용 된 EXTEND_MODEL_CASES 기존 데이터 계열의 끝에 추가 된 새 데이터를 제공 하는 옵션입니다.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. 기존 데이터 요소를 바꾸는 대신 새 데이터가 모델에 추가됩니다.Rather than replacing the existing data points, the new data is added onto the model.

다음 예에서는 NATURAL PREDICTION JOIN 뒤에 오는 SELECT 문에 새 데이터가 제공됩니다.In the following example, the new data is provided in the SELECT statement that follows NATURAL PREDICTION JOIN. 이 구문을 사용하여 새로운 여러 입력 행을 제공할 수 있지만 새로운 각 입력 행에는 고유한 타임스탬프가 있어야 합니다.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')  

쿼리에서 사용 하기 때문에 EXTEND_MODEL_CASES 옵션을 Analysis ServicesAnalysis Services 에서 예측을 위해 다음 작업을 수행 합니다.Because the query uses the EXTEND_MODEL_CASES option, Analysis ServicesAnalysis Services takes the following actions for its predictions:

  • 2개월에 상당하는 새 데이터를 모델에 추가하여 학습 사례의 전체 크기를 늘립니다.Increases the total size of the training cases by adding the two new months of data to the model.

  • 이전 사례 데이터의 끝에서 예측을 시작합니다.Starts the predictions at the end of the previous case data. 이에 따라 첫 두 예측은 모델에 방금 추가한 새로운 실제 판매 데이터를 나타냅니다.Therefore, the first two predictions represent the new actual sales data that you just added to the model.

  • 새로 확장된 모델을 기반으로 나머지 세 개의 시간 조각에 대한 새 예측을 반환합니다.Returns new predictions for the remaining three time slices based on the newly expanded model.

    다음 표에서는 예 2 쿼리의 결과를 보여 줍니다.The following table lists the results of the Example 2 query. M200 Europe에 대해 반환된 첫 두 값은 사용자가 제공한 새 값과 동일합니다.Notice that the first two values returned for M200 Europe are exactly the same as the new values that you provided. 이 동작은 의도적인 것으로, 새 데이터의 끝 이후부터 예측을 시작하려면 시작 및 종료 시간 단계를 지정해야 합니다.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. 이 작업을 수행 하는 방법의 예제를 보려면 5 단원: 시계열 모델 확장합니다.For an example of how to do this, see Lesson 5: Extending the Time Series Model.

    Pacific 지역에 대한 새 데이터도 제공하지 않았습니다.Also, notice that you did not supply new data for the Pacific region. 따라서 Analysis ServicesAnalysis Services는 5개의 시간 조각 모두에 대해 새 예측을 반환합니다.Therefore, Analysis ServicesAnalysis Services returns new predictions for all five time slices.

    M200 Europe: quantity 합니다.Quantity: M200 Europe. EXTEND_MODEL_CASES:EXTEND_MODEL_CASES:

$TIME$TIME 수량Quantity
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

M200 Pacific: quantity 합니다.Quantity: M200 Pacific. EXTEND_MODEL_CASES:EXTEND_MODEL_CASES:

$TIME$TIME 수량Quantity
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

시계열 예측의 통계를 반환 하는 예 4:Example 4: Returning Statistics in a Time Series Prediction

PredictTimeSeries 함수 지원 하지 않습니다 INCLUDE_STATISTICS 매개 변수로 합니다.The PredictTimeSeries function does not support INCLUDE_STATISTICS as a parameter. 그러나 다음 쿼리를 사용하면 시계열 쿼리에 대한 예측 통계를 반환할 수 있습니다.However, the following query can be used to return the prediction statistics for a time series query. 이 방법은 중첩 테이블 열이 있는 모델에도 사용할 수 있습니다.This approach can also be used with models that have nested table columns.

이 특정 모델에서 예측 가능한 특성은 Quantity 이므로 사용 해야 [Quantity] PredictTimeSeries 함수는 첫 번째 인수입니다.In this particular model, the predictable attribute is Quantity, so you must use [Quantity] as the first argument to the PredictTimeSeries function. 모델에서 다른 예측 가능한 특성을 사용하는 경우 다른 열 이름으로 대체할 수 있습니다.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'  

예제 결과: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
참고

이 예에서는 결과를 보다 쉽게 표 형식으로 나타낼 수 있도록 FLATTENED 키워드가 사용되었지만, 공급자에서 계층적 행 집합을 지원하는 경우 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. FLATTENED 키워드를 생략하면 쿼리에서 두 개의 열이 반환됩니다. 첫 번째 열에는 [Model Region] 데이터 계열을 식별하는 값이 포함되고 두 번째 열에는 통계 중첩 테이블이 포함됩니다.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.

관련 항목:See Also

Data Mining Extensions ( DMX ) 함수 참조 Data Mining Extensions (DMX) Function Reference
시계열 모델 쿼리 예제 Time Series Model Query Examples
예측 ( DMX )Predict (DMX)