次の方法で共有


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

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

次の図は、時間の経過と同時に 4 つの販売地域の製品の売上を予測するための一般的なモデルを示しています。 図に示されているモデルは、赤、黄、紫、青の線でプロットされた各地域の売上を示しています。 各リージョンの行には、次の 2 つの部分があります。

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

  • 予測情報は垂直線の右側に表示され、モデルが行う予測を表します。

ソース データと予測データの組み合わせは 、系列と呼ばれます。

時系列の例 時系列

Microsoft タイム シリーズ アルゴリズムの重要な機能は、クロス予測を実行できることです。 2 つの別個の関連系列を使用してアルゴリズムをトレーニングする場合は、結果のモデルを使用して、もう一方の系列の動作に基づいて 1 つの系列の結果を予測できます。 たとえば、ある製品の観測売上が、別の製品の予測売上に影響を与える可能性があります。 クロス予測は、複数の系列に適用できる一般的なモデルを作成する場合にも役立ちます。 たとえば、特定のリージョンの予測は、系列に質の高いデータがないため、不安定です。 4 つのすべてのリージョンの平均で一般的なモデルをトレーニングし、そのモデルを個々の系列に適用して、リージョンごとにより安定した予測を作成できます。

Adventure Works Cycles の管理チームは、今後 1 年間の自転車の月間売上を予測したいと考えています。 同社は、ある自転車モデルの販売を使用して別のモデルの販売を予測できるかどうかに特に関心を持っている。 過去 3 年間の履歴データに対して Microsoft Time Series アルゴリズムを使用することで、将来の自転車販売を予測するデータ マイニング モデルを作成できます。 さらに、クロス予測を実行して、個々の自転車モデルの販売傾向が関連しているかどうかを確認できます。

四半期ごとに、最新の売上データでモデルを更新し、予測を更新して最近の傾向をモデル化する予定です。 売上データを正確または一貫して更新しないストアを修正するには、一般的な予測モデルを作成し、それを使用してすべてのリージョンの予測を作成します。

アルゴリズムのしくみ

SQL Server 2005 では、Microsoft Time Series アルゴリズムで 1 つのアルゴリズム ARTXP が使用されていました。 ARTXP アルゴリズムは、短期的な予測用に最適化されているため、系列内の次の可能性の高い値を予測しました。 SQL Server 2008 以降、Microsoft Time Series アルゴリズムでは、ARTXP アルゴリズムと 2 つ目のアルゴリズム ARIMA の両方が使用されます。 ARIMA アルゴリズムは、長期的な予測用に最適化されています。 ARTXP アルゴリズムと ARIMA アルゴリズムの実装の詳細については、「 Microsoft Time Series Algorithm Technical Reference」を参照してください

既定では、Microsoft Time Series アルゴリズムは、パターンを分析して予測を行うときに、アルゴリズムの組み合わせを使用します。 このアルゴリズムは、同じデータに対して 2 つの異なるモデルをトレーニングします。1 つのモデルでは ARTXP アルゴリズムを使用し、1 つのモデルでは ARIMA アルゴリズムを使用します。 次に、アルゴリズムによって 2 つのモデルの結果がブレンドされ、可変数のタイム スライスに対して最適な予測が生成されます。 ARTXP は短期的な予測に最適であるため、一連の予測の開始時により重み付けされます。 ただし、予測しているタイム スライスが将来に向けてさらに進むにつれて、ARIMA の重みが大きくなっています。

また、アルゴリズムの組み合わせを制御して、時系列の短期または長期の予測を優先することもできます。 SQL Server 2008 Standard 以降では、Microsoft Time Series アルゴリズムで次のいずれかの設定を使用することを指定できます。

  • 短期的な予測には ARTXP のみを使用します。

  • 長期予測には ARIMA のみを使用します。

  • 2 つのアルゴリズムの既定のブレンドを使用します。

SQL Server 2008 Enterprise 以降では、Microsoft Time Series アルゴリズムで予測用のモデルをブレンドする方法をカスタマイズできます。 混合モデルを使用する場合、Microsoft Time Series アルゴリズムは次のように 2 つのアルゴリズムをブレンドします。

  • ARTXP のみが、最初の 2 つの予測を行う場合に常に使用されます。

  • 最初の 2 つの予測の後、ARIMA と ARTXP の組み合わせが使用されます。

  • 予測ステップの数が増えるにつれて、ARTXP が使用されなくなるまで、予測は ARIMA により大きく依存します。

  • PREDICTION_SMOOTHINGパラメータを設定して、混合ポイント、ARTXPの重みが減少する速度、ARIMAの重みを増加させる速度を制御します。

どちらのアルゴリズムも、複数のレベルでデータの季節性を検出できます。 たとえば、データには、年間のサイクルの中に月単位のサイクルが組み込まれていることがあります。 これらの季節的なサイクルを検出するには、周期性ヒントを指定するか、アルゴリズムが周期性を自動的に検出するように指定します。

周期性に加えて、周期性を検出したり、予測を行ったり、ケースを分析したりするときの Microsoft Time Series アルゴリズムの動作を制御するパラメーターがいくつかあります。 アルゴリズム パラメーターを設定する方法については、「 Microsoft Time Series Algorithm Technical Reference」を参照してください

時系列モデルに必要なデータ

データ マイニング モデルのトレーニングに使用するデータを準備するときは、特定のモデルの要件とデータの使用方法を理解していることを確認してください。

各予測モデルには、ケース系列が含まれている必要があります。これは、変更が発生するタイム スライスまたはその他の系列を指定する列です。 たとえば、前の図のデータは、数か月にわたる自転車の売上の履歴と予測の系列を示しています。 このモデルの場合、各リージョンは系列であり、日付列には時系列が含まれます。これはケース系列でもあります。 その他のモデルでは、ケースシリーズにはテキスト フィールドや、顧客 ID やトランザクション ID などの識別子を指定できます。 ただし、時系列モデルでは、常に日付、時刻、またはその他の一意の数値をケース 系列に使用する必要があります。

時系列モデルの要件は次のとおりです。

  • 1 つのキー時刻列 各モデルには、ケース系列として使用される 1 つの数値列または日付列が含まれている必要があります。これは、モデルが使用するタイム スライスを定義します。 キー時刻列のデータ型には、datetime データ型または数値データ型のいずれかを指定できます。 ただし、列には連続する値が含まれている必要があり、値は系列ごとに一意である必要があります。 時系列モデルのケース 系列は、Year 列や Month 列などの 2 つの列に格納できません。

  • 予測可能な列 各モデルには、アルゴリズムが時系列モデルを構築する予測可能な列が少なくとも 1 つ含まれている必要があります。 予測可能列のデータ型には、連続する値が必要です。 たとえば、収入、売上、気温などの数値属性が時間の経過に伴ってどのように変化するかを予測できます。 ただし、購入状況や教育レベルなどの不連続値を含む列を予測可能な列として使用することはできません。

  • オプションの系列キー列 各モデルには、系列を識別する一意の値を含む追加のキー列を含めることができます。 オプションの系列キー列には、一意の値が含まれている必要があります。 たとえば、タイム スライスごとに製品名ごとにレコードが 1 つしかない限り、1 つのモデルに多くの製品モデルの売上を含めることができます。

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

  • 製品 A の売上

  • 製品 B の売上

  • 製品 A のボリューム

  • 製品 B のボリューム

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

例 1: 系列が列値として表される時系列データ セット

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

TimeID プロダクト セールス ボリューム
1/2001 エー 1000 600
2/2001 エー 1100 500
1/2001 B 500 900
2/2001 B 300 890

テーブルの TimeID 列には時間識別子が含まれており、各日に 2 つのエントリがあります。 TimeID 列がケース系列になります。 そのため、この列を時系列モデルのキー時間列として指定します。

Product 列は、データベース内の製品を定義します。 この列には、製品シリーズが含まれています。 そのため、この列を時系列モデルの 2 番目のキーとして指定します。

Sales 列には、指定した製品の 1 日間の総利益が示され、[ボリューム] 列には、倉庫に残っている指定された製品の数量が記述されます。 これら 2 つの列には、モデルのトレーニングに使用されるデータが含まれています。 Sales と Volume の両方を、Product 列の各系列の予測可能な属性にすることができます。

例 2: 各系列を個別の列に含む時系列データ セット

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

TimeID A_セールス A_ボリューム B_Sales B_Volume
1/2001 1000 600 500 900
2/2001 1100 500 300 890

この表では、TimeID 列には、キー時刻列として指定する時系列モデルのケース 系列が引き続き含まれています。 ただし、前の Sales 列と Volume 列が 2 つの列に分割され、それらの各列の前に製品名が付けられます。 その結果、TimeID 列には各日に 1 つのエントリのみが存在します。 これにより、A_Sales、A_Volume、B_Sales、B_Volumeの 4 つの予測可能な列を含む時系列モデルが作成されます。

さらに、製品を異なる列に分割しているため、追加の系列キー列を指定する必要はありません。 モデル内のすべての列は、ケース系列列または予測可能列のいずれかです。

時系列モデルの表示

モデルのトレーニングが完了すると、結果は一連のパターンとして格納され、これを探索したり、予測に使用したりできます。

モデルを探索するには、 タイム シリーズ ビューアーを使用できます。 ビューアーには、将来の予測を表示するグラフと、データ内の定期的な構造のツリー ビューが含まれています。

予測の計算方法の詳細については、 Microsoft 汎用コンテンツ ツリー ビューアーでモデルを参照できます。 モデルに格納されるコンテンツには、ARIMA アルゴリズムと ARTXP アルゴリズムによって検出された定期的な構造、アルゴリズムをブレンドするために使用される数式、その他の統計情報などの詳細が含まれます。

時系列予測の作成

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

Microsoft Time Series アルゴリズムを使用して予測を行う場合は、次の追加の制限事項と要件を考慮する必要があります。

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

  • 時系列モデルでは、サーバーが使用する 64 ビット オペレーティング システムに応じて、大きく異なる場合がある予測を行うことができます。 これらの違いは、Itanium ベースのシステムが浮動小数点演算の数値を表して処理する方法が原因で発生します。これは、x64 ベースのシステムがこれらの計算を行う方法とは異なります。 予測結果はオペレーティング システムに固有の可能性があるため、運用環境で使用するのと同じオペレーティング システムでモデルを評価することをお勧めします。

注釈

  • 予測モデル マークアップ言語 (PMML) を使用したマイニング モデルの作成はサポートされていません。

  • OLAP マイニング モデルの使用をサポートします。

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

  • ドリルスルーをサポートします。

こちらもご覧ください

データ マイニング アルゴリズム (Analysis Services - データ マイニング)
Microsoft タイム シリーズ ビューアーを使用してモデルを参照する
Microsoft タイム シリーズ アルゴリズム技術リファレンス
タイム シリーズ モデル クエリの例
時系列モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)