PredictTimeSeries (DMX)

Şunlar için geçerlidir: SQL Server Analysis Services

Zaman serisi verileri için öngörülen gelecekteki değerleri döndürür. Zaman serisi verileri süreklidir ve iç içe bir tabloda veya vaka tablosunda depolanabilir. PredictTimeSeries fonksiyonu her zaman iç içe bir tablo döndürür.

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

<tablo sütun referansı>, <skaler sütun referansı>
Tahmin edilecek sütunun adını belirtir. Sütun hem skaler hem de tablo şeklinde veriler içerebilir.

n
Tahmin edilecek sonraki adımların sayısını belirtir. Eğer n için bir değer belirtilmemişse, varsayılan değer 1'dir.

n 0 olamaz. Fonksiyon, en az bir tahmin yapmazsanız hata döndürür.

N-başlangıç, n-son
Zaman serisi adımları aralığını belirtir.

n-start tam sayı olmalı ve 0 olamaz.

n-end , n-start'tan büyük bir tam sayı olmalıdır.

<Kaynak sorgusu>
Tahmin yapmak için kullanılan harici verileri tanımlar.

REPLACE_MODEL_CASES | EXTEND_MODEL_CASES
Yeni verilerin nasıl işleneceğini gösterir.

REPLACE_MODEL_CASES, modeldeki veri noktalarının yeni verilerle değiştirilmesi gerektiğini belirtir. Ancak, tahminler mevcut madencilik modelindeki desenlere dayanır.

EXTEND_MODEL_CASES, yeni verinin orijinal eğitim veri setine eklenmesi gerektiğini belirtir. Bileşik veri seti üzerinde gelecekteki tahminler, yeni veriler tükendikten sonra yapılır.

Bu argümanlar yalnızca yeni veri eklendiğinde PREDICTION JOIN ifadesi kullanılarak kullanılabilir. Eğer bir PREDICTION JOIN sorgusu kullanırsanız ve argüman belirtmiyorsanız, varsayılan EXTEND_MODEL_CASES.

Dönüş Türü

Bir <masa ifadesi>.

Remarks

Microsoft Zaman Serisi algoritması, yeni veri eklemek için PREDICTION JOIN ifadesini kullandığınızda tarihsel tahmini desteklemez.

PREDICTION JOIN'da, tahmin süreci her zaman orijinal eğitim serisinin hemen ardından zaman adımında başlar. Yeni veri ekleseniz bile bu doğrudur. Bu nedenle, n parametre ve n-başlangıç parametre değerleri 0'dan büyük bir tam sayı olmalıdır.

Note

Yeni verinin süresi, tahmin için başlangıç noktasını etkilemez. Bu nedenle, yeni veri eklemek ve yeni tahminler yapmak istiyorsanız, tahmin başlangıç noktasını yeni verinin uzunluğundan büyük bir değere ayarlayın ya da tahmin noktasını yeni verinin uzunluğuyla uzatın.

Examples

Aşağıdaki örnekler, mevcut bir zaman serisi modeline karşı tahminlerin nasıl yapılacağını gösterir:

  • İlk örnek, mevcut modele dayalı belirli sayıda tahmin yapılmasını gösterir.

  • İkinci örnek, belirtilen modeldeki desenleri yeni bir veri setine uygulamak için REPLACE_MODEL_CASES parametresinin nasıl uygulanacağını gösterir.

  • Üçüncü örnek, EXTEND_MODEL_CASES parametresinin bir madencilik modelini taze verilerle güncellemek için nasıl kullanılacağını gösterir.

Zaman serisi modelleri ile çalışma hakkında daha fazla bilgi edinmek için veri madenciliği eğitimi, Ders 2: Tahmin Senaryosu Oluşturma (Ara Veri Madenciliği Eğitimi) ve Zaman Serisi Tahmin DMX Eğitimi'ne bakabilirsiniz.

Note

Modelinizden farklı sonuçlar alabilirsiniz; Aşağıdaki örneklerin sonuçları yalnızca sonuç formatını göstermek için sunulmaktadır.

Örnek 1: Zaman Dilimi Sayısını Tahmin Etmek

Aşağıdaki örnek, sonraki üç zaman adımı için tahmin döndürmek amacıyla PredictTimeSeries fonksiyonunu kullanır ve sonuçları Avrupa ve Pasifik bölgelerindeki M200 serileriyle sınırlar. Bu özel modelde öngörülebilir öznitelik Nicelik'tir, bu yüzden [Quantity] PredictTimeSeries fonksiyonunun ilk argümanı olarak kullanmalısınız.

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

Beklenen sonuçlar:

Model Bölgesi t.$TIME t.Miktar
M200 Avrupa 25/07/2008 00:00:00 121
M200 Avrupa 25/08/2008 00:00:00 142
M200 Avrupa 25/09/2008 00:00:00 152
M200 Pacific 25/07/2008 00:00:00 46
M200 Pacific 25/08/2008 00:00:00 44
M200 Pacific 25/09/2008 00:00:00 42

Bu örnekte, sonuçların okunmasını kolaylaştırmak için FLATTENED anahtar kelimesi kullanılmıştır. FLATTENED anahtar kelimesini kullanmazsanız ve bunun yerine hiyerarşik bir sıra kümesi döndürerseniz, bu sorgu iki sütun döner. İlk sütunda [ModelRegion] değeri bulunurken, ikinci sütunda iki sütunlu iç içe bir tablo bulunur: tahmin edilen zaman dilimlerini gösteren $TIME ve tahmin edilen değerleri içeren Nicelik.

Örnek 2: Yeni Veri Ekleme ve REPLACE_MODEL_CASES Kullanımı

Diyelim ki veriler belirli bir bölge için yanlış oldu ve modeldeki kalıpları kullanmak istiyorsun, ancak tahminleri yeni veriye uyacak şekilde ayarlamak istiyorsun. Ya da başka bir bölgenin daha güvenilir eğilimlere sahip olduğunu ve en güvenilir modeli farklı bir bölgeden gelen verilere uygulamak isteyebileceğinizi görebilirsiniz.

Böyle durumlarda, REPLACE_MODEL_CASES parametresini kullanarak tarihsel veri olarak kullanılacak yeni bir veri seti belirleyebilirsiniz. Bu şekilde, projeksiyonlar belirlenen modeldeki desenlere dayanacak ancak yeni veri noktalarının sonundan itibaren sorunsuz devam edecektir. Bu senaryonun tam bir rehberi için Gelişmiş Zaman Serisi Tahminleri'ne (Ara Veri Madenciliği Eğitimi) bakınız.

Aşağıdaki PREDICTION JOIN sorgusu, veriyi değiştirip yeni tahminler yapma sözdizimini göstermektedir. Yerine geçen veri için, örnek Miktar ve Miktar sütunlarının değerini alır ve her birini ikiye çarpar:

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]  

Aşağıdaki tablolar tahmin sonuçlarını karşılaştırmaktadır.

Orijinal tahminler:

Model Bölgesi Raporlama Tarihi Miktar
M200 Pacific 25/07/2008 00:00:00 46
M200 Pacific 25/08/2008 00:00:00 44
M200 Pacific 25/09/2008 00:00:00 42

Güncellenmiş tahminler:

Model Bölgesi Raporlama Tarihi Miktar
M200 Pacific 25/07/2008 00:00:00 91
M200 Pacific 25/08/2008 00:00:00 89
M200 Pacific 25/09/2008 00:00:00 84

Örnek 3: Yeni Veri Eklemek ve EXTEND_MODEL_CASES Kullanmak

Örnek 3, mevcut veri serisinin sonuna eklenen yeni veri sağlamak için EXTEND_MODEL_CASES seçeneğinin kullanımını gösterir. Mevcut veri noktalarının yerini almak yerine, yeni veriler modele eklenir.

Aşağıdaki örnekte, yeni veriler NATURAL PREDICTION JOIN'den sonra gelen SELECT ifadesinde sağlanmıştır. Bu sözdizimi ile birden fazla yeni giriş satırı sağlayabilirsiniz, ancak her yeni giriş satırının benzersiz bir zaman damgası olmalıdır:

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')  

Sorgu EXTEND_MODEL_CASES seçeneğini kullandığı için, Analiz Hizmetleri tahminleri için aşağıdaki işlemleri gerçekleştirir:

  • Modele iki yeni aylık veri ekleyerek eğitim vakalarının toplam boyutunu artırır.

  • Tahminleri önceki vaka verilerinin sonunda başlatır. Bu nedenle, ilk iki tahmin, modele yeni eklediğiniz gerçek satış verilerini temsil eder.

  • Yeni genişletilmiş modele dayalı olarak kalan üç zaman dilimi için yeni tahminler döndürür.

Aşağıdaki tablo, Örnek 2 sorgusunun sonuçlarını listeler. M200 Europe için geri dönen ilk iki değerin, verdiğiniz yeni değerlerle tamamen aynı olduğunu unutmayın. Bu davranış kasıtlı olarak yapılmıştır; Yeni verilerin sonundan sonra tahminlere başlamak istiyorsanız, bir başlangıç ve bitiş zaman adımı belirtmelisiniz.

Ayrıca, Pasifik bölgesi için yeni veri sağlamadığınızı fark edin. Bu nedenle, Analysis Services tüm beş zaman dilimi için yeni tahminler döndürür.

Miktar: M200 Avrupa. EXTEND_MODEL_CASES:

$TIME Miktar
7/25/2008 0:00 10
8/25/2008 0:00 15
9/25/2008 0:00 72
10/25/2008 0:00 69
11/25/2008 0:00 68

Miktar: M200 Pacific. EXTEND_MODEL_CASES:

$TIME Miktar
7/25/2008 0:00 46
8/25/2008 0:00 44
9/25/2008 0:00 42
10/25/2008 0:00 42
11/25/2008 0:00 38

Örnek 4: Zaman Serisi Tahmininde İstatistikleri Geri Getirmek

PredictTimeSeries fonksiyonu INCLUDE_STATISTICS parametre olarak desteklemez. Ancak, aşağıdaki sorgu, bir zaman serisi sorgusu için tahmin istatistiklerini döndürmek için kullanılabilir. Bu yaklaşım, iç içe yerleştirilmiş tablo sütunlarına sahip modellerle de kullanılabilir.

Bu özel modelde öngörülebilir öznitelik Nicelik'tir, bu yüzden [Quantity] PredictTimeSeries fonksiyonunun ilk argümanı olarak kullanmalısınız. Modeliniz farklı bir öngörülebilir özellik kullanıyorsa, farklı bir sütun adı koyabilirsiniz.

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'  

Örnek sonuçlar:

Model Bölgesi t.$TIME t.TAHMIN t.VARYANS t.STDEV
M200 Avrupa 25/07/2008 00:00:00 121 11.6050581415597 3.40661975300439
M200 Avrupa 25/08/2008 00:00:00 142 10.678201866621 3.26775180615374
M200 Avrupa 25/09/2008 00:00:00 152 9.86897842568614 3.14149302493037
M200 Kuzey Amerika 25/07/2008 00:00:00 163 1.20434529288162 1.20434529288162
M200 Kuzey Amerika 25/08/2008 00:00:00 178 1.65031343900634 1.65031343900634
M200 Kuzey Amerika 25/09/2008 00:00:00 156 1.68969399185442 1.68969399185442

Note

Bu örnekte, sonuçların tabloda sunulmasını kolaylaştırmak için FLATTENED anahtar kelimesi kullanılmıştır; ancak sağlayıcınız hiyerarşik sıra kümelerini destekliyorsa, FLATTENED anahtar kelimesini çıkarabilirsiniz. FLATTENED anahtar kelimesini çıkarırsanız, sorgu iki sütun döner: ilk sütun veri serisini [Model Region] tanımlayan değeri, ikinci sütun ise içiçe istatistik tablosunu içerir.