高度な時系列予測 (中級者向けデータ マイニング チュートリアル)
予測モデルの検証によって、ほとんどの地域の売上が似たパターンに合致するものの、太平洋地域の 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 を右クリックし、[データの探索] をクリックしてデータが正しくフィルター選択されていることを確認します。
クロス予測クエリを作成するときは、このデータをモデルへの入力として使用します。
このレッスンの次の作業
時系列予測での更新後のデータの使用 (中級者向けデータ マイニング チュートリアル)
関連項目
参照
Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス