時系列モデルの要件について (中級者向けデータ マイニング チュートリアル)
予測モデルで使用するデータを準備する際に、時系列内のステップの識別に使用できる列が 1 つだけデータに含まれていることを確認する必要があります。この列は Key Time 列として使用され、一意の数値を含んでいる必要があります。系列の開始時点と終了時点以外でデータにギャップ (途切れ) がある場合は、MISSING_VALUE_SUBSTITUTION パラメータを使用して系列を埋めることができます。Analysis Services には、不足データを平均や定数などの値で置き換えるためのオプションがいくつか用意されています。
複数の系列のデータを分析する場合は、すべての系列の開始日と終了日が同じであることを確認する必要があります。
ここでは、Business Intelligence Development Studio で簡単なピボット テーブルを作成する作業を通じて、時系列データについて学習します。データのギャップを検出して処理する方法についても学習します。
予測モデルの時間キーを特定するには
[SalesByRegion.dsv [Design]] ペインで、[vTimeSeries] テーブルを右クリックし、[データの探索] をクリックします。
[vTimeSeries テーブルの探索] というタイトルの新しいタブが開きます。このタブは、[テーブル]、[ピボット テーブル]、[グラフ]、[ピボット グラフ] の 4 つのタブで構成されます。
[テーブル] タブで、タブの右側の [サンプリング オプション] ボタンをクリックします。
[データ探索オプション] ダイアログ ボックスの [サンプリング方法] の既定のサンプリング方法では、[上から順に取得] オプションが使用され、最初の 5,000 行がサンプリングされることに注意してください。
[サンプリング方法] を [ランダムに取得] に変更し、[サンプル数] を「1000」に変更して [OK] をクリックします。
注意 サンプリング オプションを変更してもデータ マイニングに使用されるデータには影響しません。グラフやテーブルは、データの表示や確認を目的としたツールに過ぎません。
[テーブル] タブで、[TimeIndex] 列と [Reporting Date] 列で使用されているデータを確認します。
どちらの列も一意の値を持つシーケンスですが、各列のデータ型を確認する必要があります。
注意 [Reporting Date] 列が表示されない場合は、古いバージョンの AdventureWorksDW データベースを使用している可能性があります。このチュートリアルでは、SQL Server 2008 の日付と時刻の新しい機能を利用するために AdventureWorksDW2008 データベースが必要です。日付と時刻の変更の詳細については、「SQL Server 2008 におけるデータベース エンジン機能の重大な変更」を参照してください。
[SalesByRegion.dsv [Design]] タブをクリックします。
[Reporting Date] 列を選択します。
[プロパティ] ウィンドウに、TimeIndex フィールドのデータ型が System.Int32、Reporting Date フィールドのデータ型が System.DateTime であることが示されます。Microsoft タイム シリーズ アルゴリズムでは、datetime データ型は必要なく、値が一意であり、順序付けられていることのみが必要とされます。したがって、どちらの列も予測モデルの時間キーとして使用できます。ただし、売上データの予測をカレンダー日付で表す場合は、Reporting Date 列を一意の系列 ID として使用します。
データ ソース ビューのキーを設定するには
[SalesByRegion.dsv] ペインで [vTimeSeries] テーブルをクリックします。
[Reporting Date] 列を右クリックし、[論理主キーの設定] をクリックします。
ピボット グラフを使用してデータ系列のギャップを確認するには
[SalesByRegion.dsv [Design]] ペインで [vTimeSeries] テーブルを右クリックし、[データの探索] をクリックします。
[ピボット テーブル] タブをクリックします。
[ピボットテーブル フィールド リスト] ダイアログ ボックスで、[Quantity] フィールドと [Amount] フィールドを選択し、テーブルの [ここに詳細のフィールドをドロップします] 領域までドラッグします。
同様に、[TimeIndex] フィールドを [ここに列のフィールドをドロップします] ボックスまでドラッグします。
注意 TimeIndex フィールドは、時系列を表すためではなく、旧バージョンとの互換性のために用意されています。TimeIndex フィールドから系列の簡単なビューを表示して、ピボット グラフでデータを参照する際に使用することもできます。
[ModelRegion] フィールドを [ここに行のフィールドをドロップします] ボックスまでドラッグします。
作成されたピボット テーブルには、左の列に製品と地域の一覧が表示され、その右にカレンダー年月ごとの売上数量と売上額を含んだ列が表示されます。
右側のスクロール バーをドラッグして、T1000 系列の売上データの開始日を表示します。
このテーブルから、T1000 製品ラインに 2003 年 7 月までのデータがないことがわかります。SQL Server 2008 の Microsoft タイム シリーズ アルゴリズムでは、1 つのモデルに含めるすべての系列の終了時点が同じであることが重要な要件となります。T1000 モデルの自転車は 2003 年に売り出されたため、この系列のデータは他のモデルの自転車よりも開始時点が後になりますが、系列の終了日が同じなので、データは基準を満たしています。
TimeIndex をテーブルの外部にドラッグし、時系列を表すために使用されるフィールドを変更します。
次のフィールドのいずれかを、[ピボットテーブル フィールド リスト] から [ここに列のフィールドをドロップします] ボックスまでドラッグします。列をテーブルの外部にドラッグしたり、別の集計単位 (四半期や月など) を選択したりすることで、時系列の表示方法を変えてみます。
ReportingDate
ReportingDate By Week
ReportingDate By Month
不足データの処理 (オプション)
系列に不足データがあると、モデルを処理しようとする際にエラーが表示されます。不足データには、複数の方法で対処することができます。
Analysis Services で、平均を計算するか、前の値を使用して、不足した値を埋めます。この操作を行うには、マイニング モデル作成時にパラメータを設定します。詳細については、「Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス」を参照してください。
データ ソースを変更するか、基になるビューをフィルタ処理することで、系列を除外するか、値を置き換えます。この操作はリレーショナル データ ソースで行うことができます。または、顧客の名前付きクエリまたは名前付き計算を作成することでデータ ソース ビューを変更できます。詳細については、「データ ソース ビューの設計 (Analysis Services)」を参照してください。このレッスンの後半の作業で、名前付きクエリとカスタム計算の両方を作成する例を示します。
このシナリオでは、ある系列の開始時点でデータの一部が不足していますが、すべての系列は同じ日に終了し、不足値はありません。したがって、データが時系列モデルの要件を満たしているので、追加で変更を行う必要はありません。
データ ソース ビュー デザイナを閉じるには
- [vTimeSeries テーブルの探索] タブを右クリックし、[閉じる] をクリックします。