高度な時系列予測 (中級者向けデータ マイニング チュートリアル)
対象: SQL Server 2016 Preview
予測モデルの検証によって、ほとんどの地域の売上が似たパターンに合致するものの、太平洋地域の M200 モデルなど、一部の地域とモデルについては、傾向が大きく異なることがわかりました。 これは驚くことではなく、地域間で違いが生じることは一般的で、その要因は販売促進の有無、レポートの不正確性、地政学的なイベントの有無など多岐にわたります。
しかし、ユーザーは世界中で適用できるモデルを求めています。 したがって、個別の要因が予測に与える影響を最小限に抑えるため、全世界の売上の集計メジャーに基づくモデルを作成することにします。 その後、このモデルを使用して、個々の地域に対する予測を行います。
このタスクでは、高度な予測タスクの実行に必要なすべてのデータ ソースを構築します。 予測クエリへの入力として使用する 2 つのデータ ソース ビューと、新しいモデルの構築に使用する 1 つのデータ ソース ビューを作成します。
手順
(予測用の) 拡張売上データを準備する
(モデルを構築するための) 集計データを準備する
(クロス予測のための) 系列データを準備する
新しい拡張売上データの作成
売上データを更新するには、最新の売上の数値を取得する必要があります。 特に関心があるのは太平洋地域のデータです。この地域では、地域の販売促進を開始して、新しい店への関心を引きつけ、製品の認知度を高めています。
このシナリオでは、2 つの地域についての 3 か月間の新しいデータを含む Excel ブックからデータをインポートしてあるものとします。 Transact-SQL スクリプトを使用してデータ用のテーブルを作成し、予測に使用するデータ ソース ビューを定義します。
新しい売上データでのテーブルの作成
Transact-SQL クエリ ウィンドウで次のステートメントを実行し、AdventureWorksDW データベース (またはその他のデータベース) に売上データを追加します。
USE [database name]; GO IF OBJECT_ID ([dbo].[NewSalesData]) IS NOT NULL DROP TABLE [dbo].[NewSalesData]; GO CREATE TABLE [dbo].[NewSalesData]( [Series] [nvarchar](255) NULL, [NewDate] [datetime] NULL, [NewQty] [float] NULL, [NewAmount] [money] NULL ) ON [PRIMARY] GO
次のスクリプトを使用して、新しい値を挿入します。
INSERT INTO [NewSalesData] (Series,NewDate,NewQty,NewAmount) VALUES('T1000 Pacific', '7/25/08', 55, '$130,170.22'), ('T1000 Pacific', '8/25/08', 50, '$114,435.36 '), ('T1000 Pacific', '9/25/08', 50, '$117,296.24 '), ('T1000 Europe', '7/25/08', 37, '$88,210.00 '), ('T1000 Europe', '8/25/08', 41, '$97,746.00 '), ('T1000 Europe', '9/25/08', 37, '$88,210.00 '), ('T1000 North America', '7/25/08', 69, '$164,500.00 '), ('T1000 North America', '8/25/08', 66, '$157,348.00 '), ('T1000 North America', '9/25/08', 58, '$138,276.00 '), ('M200 Pacific', '7/25/08', 65, '$149,824.35'), ('M200 Pacific', '8/25/08', 54, '$124,619.46'), ('M200 Pacific', '9/25/08', 61, '$141,143.39'), ('M200 Europe', '7/25/08', 75, '$173,026.00'), ('M200 Europe', '8/25/08', 76, '$175,212.00'), ('M200 Europe', '9/25/08', 84, '$193,731.00'), ('M200 North America', '7/25/08', 94, '$216,916.00'), ('M200 North America', '8/25/08', 94, '$216,891.00'), ('M200 North America', '9/25/08', 91,'$209,943.00');
警告
通貨の値と共に引用符を使用し、コンマ区切り記号および通貨記号の問題を防ぎます。 また、130170.22
サンプル データベースで使用されている日付は、このリリース用に更新されています。 AdventureWorks の以前のエディションを使用している場合は、それに合わせて、挿入する日付を調整しなければならない場合があります。
新しい売上データを使用したデータ ソース ビューの作成
ソリューション エクスプ ローラー, を右クリックして データ ソース ビュー, 、し、[ 新しいデータ ソース ビューします。
データ ソース ビュー ウィザードで、以下の選択を行います。
[データ ソース]: Adventure Works DW Multidimensional 2012
テーブルとビュー選択: NewSalesData を作成したテーブルを選択します。
**[完了]**をクリックします。
データ ソース ビュー デザイン画面で NewSalesData を右クリックし、 データの探索 データを検証します。
警告
このデータは予測だけに使用するので、データが不完全でもかまいません。
クロス予測モデルのデータの作成
元に使用されたデータ モデルが既に予測作り出しました少数のカテゴリ、複数の自転車モデルと地域に個別の国の結果をマージする vTimeSeries ビューによってグループ化されています。 世界的な予測に使用できるモデルを作成するには、データ ソース ビュー デザイナーで直接、追加の簡単な集計をいくつか作成します。 新しいデータ ソース ビューには、すべての地域におけるすべての製品の売上の合計と平均だけが含まれます。
モデルに使用するデータ ソースを作成した後、予測に使用する新しいデータ ソース ビューを作成する必要があります。 たとえば、新しい全世界モデルを使用してヨーロッパの売上を予測する場合は、ヨーロッパ地域のみのデータを提供する必要があります。 そこで、元のデータをフィルター処理する新しいデータ ソース ビューを設定し、各予測クエリ セットごとにフィルター条件を変更します。
カスタム データ ソース ビューを使用してモデル データを作成するには
ソリューション エクスプ ローラー, を右クリックして データ ソース ビュー, 、し、[ 新しいデータ ソース ビューします。
ウィザードの [ようこそ] ページで、 **[次へ]**をクリックします。
[データ ソースの選択] ページで Adventure Works DW Multidimensional 2012を選択し、 **[次へ]**をクリックします。
**[テーブルとビューの選択]**ページでは、テーブルを追加せずに、単に **[次へ]**をクリックします。
**[ウィザードの完了]**ページで、「 AllRegions」と名前を入力し、 **[完了]**をクリックします。
次に、空のデータ ソース ビュー デザイン画面を右クリックし、[ 新しい名前付きクエリします。
[名前付きクエリの作成] ダイアログ ボックスの **[名前]**に「 AllRegions」と入力し、 **[説明]**に「 すべてのモデルおよび地域の売上の合計と平均」と入力します。
SQL テキスト ペインに、以下のステートメントを入力して [OK] をクリックします。
SELECT ReportingDate, SUM ([Quantity]) as SumQty, AVG ([Quantity]) as AvgQty, SUM ([Amount]) AS SumAmt, AVG ([Amount]) AS AvgAmt, 'All Regions' as [Region] FROM dbo.vTimeSeries GROUP BY ReportingDate
右クリックし、 AllRegions テーブルをクリックし [ データの探索します。
クロス予測のための系列データを作成するには
ソリューション エクスプ ローラー, を右クリックして データ ソース ビュー, 、し、[ 新しいデータ ソース ビューします。
データ ソース ビュー ウィザードで、以下の選択を行います。
[データ ソース]: Adventure Works DW Multidimensional 2012
[テーブルとビューの選択]: テーブルを選択しない
名前: T1000 Pacific Region
**[完了]**をクリックします。
空のデザイン画面を右クリックして T1000 Pacific Region.dsv, 、し、[ 新しい名前付きクエリします。
[名前付きクエリの作成] ダイアログ ボックスが表示されます。 名前を再入力し、以下の説明を追加します。
名前: T1000 Pacific Region
説明: フィルターvTimeSeries領域およびモデル
テキスト ペインに、以下のクエリを入力して [OK] をクリックします。
SELECT ReportingDate, ModelRegion, Quantity, Amount FROM dbo.vTimeSeries WHERE (ModelRegion = N'T1000 Pacific')
注意
各系列で個別に予測を作成する必要があるので、クエリ テキストをコピーしてテキスト ファイルに保存し、他のデータ系列で再利用できます。データ ソース ビュー デザイン画面で T1000 Pacific を右クリックし、 データの探索 データが正しくフィルター選択されていることを確認します。
クロス予測クエリを作成するときは、このデータをモデルへの入力として使用します。
このレッスンの次の作業
更新後のデータと #40; 中級者向けデータ マイニング チュートリアル ) を使用して時系列予測
参照
Microsoft タイム シリーズ アルゴリズム
Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス
多次元モデルのデータ ソース ビュー