Microsoft タイム シリーズ アルゴリズム

Microsoft タイム シリーズ アルゴリズムでは、一定期間の製品売上などの連続値を予測するために最適化された回帰アルゴリズムが採用されています。 デシジョン ツリーなどの他の Microsoft アルゴリズムでは、傾向を予測するために新しい情報を含む列を追加する必要がありますが、タイム シリーズ モデルでは必要ありません。 タイム シリーズ モデルでは、モデルの作成に使用された元のデータセットのみを使用して傾向を予測できます。 予測を実行するときに新しいデータをモデルに追加することで、新しいデータを自動的に傾向分析に組み込むこともできます。

次の図は、4 つの販売地域における一定期間の製品売上を予測するための一般的なモデルを示しています。 図に示したモデルでは、各地域の売上が赤、黄、紫、青の線で表されています。 各地域を表す線は、次の 2 つの部分で構成されます。

  • 縦線の左側は、履歴情報です。アルゴリズムによるモデルの作成に使用されたデータを表します。

  • 縦線の右側は、予測情報です。モデルによる予測を表します。

ソース データと予測データの組み合わせをシリーズと呼びます。

タイム シリーズの例

Microsoft タイム シリーズ アルゴリズムには、クロス予測を実行できる重要な機能があります。 2 つの別個の関連するシリーズを持つアルゴリズムをトレーニングする場合、結果として得られるモデルを使用して、一方のシリーズの結果をもう一方のシリーズの動作に基づいて予測できます。 たとえば、ある製品の実際の売上が、別の製品の売上の予測に影響を与える場合があります。複数のシリーズに適用できる汎用モデルの作成には、クロス予測も有効です。 4 つすべての地域の平均値を使用して汎用モデルをトレーニングし、そのモデルを個々のシリーズに適用することで、各地域でより安定した予測を実行できます。

Adventure Works Cycles の経営陣は、来年の自転車の売上を月ごとに予測することを希望しています。 特に、ある自転車モデルの売上から別のモデルの売上を予測できるかどうかということに関心があります。 過去 3 年間の履歴データに対して Microsoft タイム シリーズ アルゴリズムを使用すると、将来の自転車の売上を予測するデータ マイニング モデルを生成できます。 また、クロス予測を実行して、個々の自転車モデルの売上傾向が関連しているかどうかを確認することもできます。

この会社では、四半期ごとに最新の売上データを使ってモデルを更新し、予測を更新して、最新の傾向をモデル化することを計画しています。 売上データを正確に更新していない、または一貫して更新していない販売店のデータを修正するために、汎用予測モデルを作成し、それを使用して全地域の予測を作成します。

アルゴリズムの動作

SQL Server 2005 の Microsoft タイム シリーズ アルゴリズムでは、ARTXP というアルゴリズムのみが使用されました。 ARTXP アルゴリズムは短期的な予測に適しているため、シリーズ内で最も近い値を予測するために使用されました。 SQL Server 2008 以降、Microsoft タイム シリーズ アルゴリズムでは、ARTXP アルゴリズムに加えて ARIMA アルゴリズムが使用されます。 ARIMA アルゴリズムは、長期的な予測に適しています。 ARTXP アルゴリズムと ARIMA アルゴリズムの実装の詳細については、「Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス」を参照してください。

既定では、Microsoft タイム シリーズ アルゴリズムはアルゴリズムを組み合わせて使用し、パターンの分析と予測を実行します。 同じデータに基づいて、2 つの異なるモデルをトレーニングします。一方のモデルでは ARTXP アルゴリズムを使用し、もう一方のモデルでは ARIMA アルゴリズムを使用します。この 2 つのモデルの結果を統合して、さまざまな数のタイム スライスに対して最適な予測を出力します。 ARTXP アルゴリズムは短期的な予測に適しているため、予測シリーズの初めのうちに高い割合で使用されます。 一方、さらに将来のタイム スライスを予測対象とするにつれて、ARIMA が使用される割合が高くなります。

また、アルゴリズムの組み合わせを調整して、時系列内で短期と長期のどちらの予測を重視するかを指定できます。 SQL Server 2008 Standard 以降では、次のいずれかの設定を Microsoft タイム シリーズ アルゴリズムに適用できます。

  • ARTXP のみを使用し、短期的な予測を行う。

  • ARIMA のみを使用し、長期的な予測を行う。

  • 2 つのアルゴリズムを組み合わせて使用する (既定)。

SQL Server 2008 Enterprise 以降では、Microsoft タイム シリーズ アルゴリズムの予測モデルの組み合わせ方法をカスタマイズできます。 2 つのアルゴリズムを混用するモデルを使用する場合、Microsoft タイム シリーズ アルゴリズムでは次の方法で 2 つのアルゴリズムを組み合わせます。

  • 最初のいくつかの予測は、常に ARTXP のみを使用して作成されます。

  • その後で、ARIMA と ARTXP を組み合わせて使用します。

  • 予測期間の値が増えるにつれ、予測に使用される ARIMA の割合が増えていき、最終的には ARTXP が使用されなくなります。

  • PREDICTION_SMOOTHING パラメーターを設定することで、アルゴリズムの混用を開始するポイント、ARTXP の割合を減らす速度、ARIMA の割合を増やす速度を指定します。

2 つのアルゴリズムを使用することで、データの周期性を複数レベルで検出できます。 たとえば、データに年周期性があり、さらに月周期性もある場合があります。 このような周期性を検出するために、周期性のヒントを指定することや、アルゴリズムでの周期性の自動検出を指定することができます。

周期性に加え、Microsoft タイム シリーズ アルゴリズムには、周期性の検出、予測の実行、事例の分析の際の動作を制御するパラメーターが他にもあります。 アルゴリズムのパラメーターの設定方法の詳細については、「Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス」を参照してください。

タイム シリーズ モデルに必要なデータ

データ マイニング モデルのトレーニングに使用するデータを用意する際には、特定のモデルにおける要件と、データの使用方法を把握しておいてください。

各予測モデルには、ケース シリーズが含まれている必要があります。これは、変更が発生するタイム スライスや他のシリーズを指定する列です。 たとえば、前に示した図のデータは数か月間の自転車の売上履歴および売上予測のシリーズを示しています。 このモデルの場合、各地域がシリーズであり、日付の列にタイム シリーズが含まれます。このタイム シリーズはケース シリーズでもあります。 他のモデルでは、ケース シリーズはテキスト フィールドである場合や、顧客 ID や取引 ID などの識別子である場合があります。 しかし、タイム シリーズ モデルでは常に日付や時刻など、ケース シリーズに対応する固有の数値が使用されます。

タイム シリーズ モデルの要件は次のとおりです。

  • 1 つの Key Time 列 : 各モデルには、ケース シリーズとして使用される数値列または日付列が 1 つ含まれている必要があります。これにより、モデルで使用されるタイム スライスを定義します。 Key Time 列のデータ型は、datetime データ型または numeric データ型になります。 ただし、この列には連続的な値が含まれる必要があります。また、値は各シリーズで一意である必要があります。 タイム シリーズ モデルに対応するケース シリーズは 2 つの列に格納することはできません。たとえば、年の列と月の列などです。

  • 予測可能列 : 各モデルには、アルゴリズムでタイム シリーズ モデルの作成に使用される予測可能列が 1 つ以上必要です。 予測可能列のデータ型には、連続値が含まれている必要があります。 たとえば、収入、売上、気温などの数値属性が時間の経過と共にどう変化するかを予測することができます。 しかし、購入状況や教育水準など、孤立した値を含む列は予測可能列として使用できません。

  • シリーズ キー列 (省略可能) : 各モデルには、シリーズを識別する一意の値を含むキー列を追加できます。 このオプションのシリーズ キー列には、一意の値が含まれている必要があります。 たとえば、すべてのタイム スライスで各製品名に対応するレコードが 1 つのみであれば、多数の製品モデルの売上を 1 つのモデルに含めることができます。

Microsoft タイム シリーズ モデルの入力データを定義する方法はいくつかあります。 ただし、入力ケースの形式はマイニング モデルの定義に影響するため、ビジネス ニーズを考慮し、それに応じてデータを準備しておく必要があります。 次の 2 つの例は、入力データがモデルにどのように影響するかを示しています。 どちらの例でも、完成したマイニング モデルには 4 つの独自のシリーズに対応するパターンが含まれます。

  • 製品 A の売上

  • 製品 B の売上

  • 製品 A の数量

  • 製品 B の数量

どちらの例でも、各製品の今後の売上と数量を新しく予測できます。 製品または時間について新しい値を予測することはできません。

例 1: 列値として表されるシリーズを含むタイム シリーズ データ セット

この例では、次の入力ケースのテーブルを使用します。

TimeID

Product

Sales

Volume

1/2001

A

1000

600

2/2001

A

1100

500

1/2001

B

500

900

2/2001

B

300

890

テーブルの TimeID 列には時刻識別子が入っており、1 日あたり 2 つのエントリがあります。 TimeID 列がケース シリーズになります。 したがって、タイム シリーズ モデルの Key Time 列として、この列を指定します。

Product 列では、データベース内の製品を定義します。 この列に製品シリーズが含まれています。 したがって、タイム シリーズ モデルの 2 つ目のキーとして、この列を指定します。

Sales 列は 1 日の指定製品の総利益を示し、Volume 列は倉庫に残っている指定製品の数量を示します。 この 2 つの列に、モデルのトレーニングに使用されるデータが含まれます。 Sales と Volume の両方が、Product 列の各シリーズの予測可能な属性になります。

例 2: 各シリーズが別の列に含まれるタイム シリーズ データ セット

この例では最初の例と基本的に同じ入力データを使用しますが、次の表に示すように、入力データの構成が異なります。

TimeID

A_Sales

A_Volume

B_Sales

B_Volume

1/2001

1000

600

500

900

2/2001

1100

500

300

890

このテーブルでも、TimeID 列にタイム シリーズ モデルのケース シリーズが含まれ、これを Key Time 列として指定します。 ただし、前の例での Sales 列と Volume 列がそれぞれ 2 つの列に分けられ、その各列の前に製品名が付けられています。 このため、TimeID 列の各日には 1 つのエントリしか存在しません。 これにより、タイム シリーズ モデルには、A_Sales、A_Volume、B_Sales、および B_Volume という 4 つの予測可能列が含まれます。

さらに、製品名が独立した列に分けられたため、シリーズ キー列を追加指定する必要がなくなります。 モデル内のすべての列が、ケース シリーズ列または予測可能列になります。

タイム シリーズ モデルの表示

モデルのトレーニング後、結果がパターンのセットとして保存されます。これを参照したり、これを使用して予測を実行したりできます。

モデルを参照するには、タイム シリーズ ビューアーを使用します。 タイム シリーズ ビューアーには、将来の予測を表示するグラフと、データの周期的構造のツリー ビューが表示されます。

予測の計算方法の詳細を知るには、Microsoft 汎用コンテンツ ツリー ビューアーでモデルを参照してください。 モデルに保存される内容には、ARIMA アルゴリズムと ARTXP アルゴリズムで検出された周期的構造や、アルゴリズムの配分に使用された数式、その他の統計情報などの詳細が含まれます。

タイム シリーズ予測の作成

既定では、タイム シリーズ モデルを表示すると、Analysis Services にはそのシリーズに対応する 5 個の予測が表示されます。 ただし、さまざまな数の予測を返すクエリを作成することや、予測に列を追加して説明的な統計情報を返すこともできます。 タイム シリーズ モデルに対するクエリの作成方法については、「タイム シリーズ モデルのクエリ例」を参照してください。 データ マイニング拡張機能 (DMX) を使用してタイム シリーズ予測を作成する方法の例については、「PredictTimeSeries (DMX)」を参照してください。

Microsoft タイム シリーズ アルゴリズムを使用して予測を実行する際には、次に示す制限事項や要件も考慮する必要があります。

  • クロス予測は、アルゴリズムを混用するモデルを使用する場合や、ARTXP アルゴリズムに基づいたモデルを使用する場合にのみ使用できます。 ARIMA アルゴリズムのみに基づいたモデルを使用する場合、クロス予測は実行できません。

  • タイム シリーズ モデルでは、サーバーで 64 ビットのオペレーティング システムが使用されているかどうかに応じて、予測が大きく変わる場合があります。 この違いが発生する原因は、Itanium ベースのシステムにおける浮動小数点演算の数値の表示方法と処理方法が、x64 ベースのシステムにおける方法と異なるためです。 予測結果がオペレーティング システムによって変わる可能性があるため、運用時に使用するものと同じオペレーティング システムでモデルを評価することをお勧めします。

解説

  • Predictive Model Markup Language (PMML) を使用したマイニング モデルの作成はサポートされていません。

  • OLAP マイニング モデルの使用はサポートされています。

  • データ マイニング ディメンションの作成はサポートされていません。

  • ドリルスルーはサポートされています。

関連項目

参照

Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス

タイム シリーズ モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)

概念

データ マイニング アルゴリズム (Analysis Services - データ マイニング)

Microsoft タイム シリーズ ビューアーを使用したモデルの参照

タイム シリーズ モデルのクエリ例