高度な時系列予測 (中級者向けデータ マイニング チュートリアル)
予測モデルの検証によって、ほとんどの地域の売上が似たパターンに合致するものの、太平洋地域の 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 多次元 2012
[テーブルとビューの選択]: 先ほど作成したテーブル NewSalesData を選択します。
[完了] をクリックします。
[データ ソース ビュー] デザイン画面で、[NewSalesData] を右クリックし、[ データの探索 ] を選択してデータを確認します。
警告
このデータは予測だけに使用するので、データが不完全でもかまいません。
クロス予測モデルのデータの作成
元の予測モデルで使用されていたデータは既にビュー vTimeSeries によってグループ化されており、複数の自転車モデルが少数のカテゴリにまとめられ、個別の国の結果が地域に結合されていました。 世界的な予測に使用できるモデルを作成するには、データ ソース ビュー デザイナーで直接、追加の簡単な集計をいくつか作成します。 新しいデータ ソース ビューには、すべての地域におけるすべての製品の売上の合計と平均だけが含まれます。
モデルに使用するデータ ソースを作成した後、予測に使用する新しいデータ ソース ビューを作成する必要があります。 たとえば、新しい全世界モデルを使用してヨーロッパの売上を予測する場合は、ヨーロッパ地域のみのデータを提供する必要があります。 そこで、元のデータをフィルター処理する新しいデータ ソース ビューを設定し、各予測クエリ セットごとにフィルター条件を変更します。
カスタム データ ソース ビューを使用してモデル データを作成するには
ソリューション エクスプローラーで、[データ ソース ビュー] を右クリックし、[新しいデータ ソース ビュー] を選択します。
ウィザードの [ようこそ] ページで、 [次へ]をクリックします。
[ データ ソースの選択 ] ページで、[Adventure Works DW 多次元 2012] を選択し、[ 次へ] をクリックします。
[ テーブルとビューの選択] ページで、テーブルを追加せず、[ 次へ] をクリックします。
ページの [ウィザードの完了] で、名前
AllRegions
を入力し、[完了] をクリック します。次に、空のデータ ソース ビューデザイン画面を右クリックし、[ 新しい名前付きクエリ] を選択します。
[ 名前付きクエリの作成 ] ダイアログ ボックスの [名前] に「」と入力
AllRegions
し、[ 説明] に「 Sum and average of sales for all models and regions」と入力します。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 多次元 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')
Note
各系列で個別に予測を作成する必要があるので、クエリ テキストをコピーしてテキスト ファイルに保存し、他のデータ系列で再利用できます。
[データ ソース ビュー] デザイン画面で、[T1000 Pacific] を右クリックし、[ データの探索 ] を選択して、データが正しくフィルター処理されていることを確認します。
クロス予測クエリを作成するときは、このデータをモデルへの入力として使用します。
このレッスンの次の作業
時系列予測での更新後のデータの使用 (中級者向けデータ マイニング チュートリアル)
参照
Microsoft Time Series アルゴリズム
Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス
多次元モデル内のデータ ソース ビュー