Microsoft Time Series アルゴリズム
適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium
重要
データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。
Microsoft Time Series アルゴリズムは、製品の売上などの継続的な値を経時的に予測するために最適化された複数のアルゴリズムを提供します。 デシジョン ツリーなどの他の Microsoft アルゴリズムでは、傾向を予測するための入力として新しい情報の追加列が必要ですが、時系列モデルでは必要ありません。 タイム シリーズ モデルでは、モデルの作成に使用された元のデータセットのみを使用して傾向を予測できます。 予測を実行するときに新しいデータをモデルに追加することで、新しいデータを自動的に傾向分析に組み込むこともできます。
次の図は、4 つの販売地域における一定期間の製品売上を予測するための一般的なモデルを示しています。 図に示したモデルでは、各地域の売上が赤、黄、紫、青の線で表されています。 各地域を表す線は、次の 2 つの部分で構成されます。
縦線の左側は、履歴情報です。アルゴリズムによるモデルの作成に使用されたデータを表します。
縦線の右側は、予測情報です。モデルによる予測を表します。
ソース データと予測データの組み合わせを シリーズと呼びます。
Microsoft Time Series アルゴリズムの重要な機能は、クロス予測を実行できることです。 2 つの別個の関連するシリーズを持つアルゴリズムをトレーニングする場合、結果として得られるモデルを使用して、一方のシリーズの結果をもう一方のシリーズの動作に基づいて予測できます。 たとえば、ある製品の実際の売上が、別の製品の売上の予測に影響を与える場合があります。 複数のシリーズに適用できる汎用モデルの作成には、クロス予測も有効です。 たとえば、シリーズのデータ品質がよくないため、特定地域の予測が安定しないとします。 4 つすべての地域の平均値を使用して汎用モデルをトレーニングし、そのモデルを個々のシリーズに適用することで、各地域でより安定した予測を実行できます。
例
Adventure Works Cycles の管理チームは、今後 1 年間の自転車の月間売上を予測したいと考えています。 特に、ある自転車モデルの売上から別のモデルの売上を予測できるかどうかということに関心があります。 過去 3 年間の履歴データに対して Microsoft Time Series アルゴリズムを使用することで、将来の自転車販売を予測するデータ マイニング モデルを作成できます。 また、クロス予測を実行して、個々の自転車モデルの売上傾向が関連しているかどうかを確認することもできます。
この会社では、四半期ごとに最新の売上データを使ってモデルを更新し、予測を更新して、最新の傾向をモデル化することを計画しています。 売上データを正確に更新していない、または一貫して更新していない販売店のデータを修正するために、汎用予測モデルを作成し、それを使用して全地域の予測を作成します。
アルゴリズムの動作
SQL Server 2005 (9.x) では、Microsoft Time Series アルゴリズムは ARTXP という名前の 1 つの自動回帰時系列メソッドを使用しました。 ARTXP アルゴリズムは短期的な予測に適しているため、シリーズ内で最も近い値を予測するのに優れていました。 2008 年SQL Server以降、Microsoft Time Series アルゴリズムでは、長期予測用に最適化された 2 つ目のアルゴリズム ARIMA が追加されました。 ARTXP アルゴリズムと ARIMA アルゴリズムの実装の詳細については、「 Microsoft Time Series アルゴリズム テクニカル リファレンス」を参照してください。
既定では、Microsoft Time Series アルゴリズムは、パターンを分析して予測を行うときに、アルゴリズムの組み合わせを使用します。 このアルゴリズムでは、同じデータに基づいて 2 つの異なるモデルをトレーニングします。一方のモデルでは ARTXP アルゴリズムを使用し、もう一方のモデルでは ARIMA アルゴリズムを使用します。 この 2 つのモデルの結果を統合して、さまざまな数のタイム スライスに対して最適な予測を出力します。 ARTXP アルゴリズムは短期的な予測に適しているため、予測シリーズの初めのうちに高い割合で使用されます。 一方、さらに将来のタイム スライスを予測対象とするにつれて、ARIMA が使用される割合が高くなります。
また、アルゴリズムの組み合わせを調整して、時系列内で短期と長期のどちらの予測を重視するかを指定できます。 SQL Server 2008 Standard 以降では、使用するアルゴリズムを指定できます。
ARTXP のみを使用し、短期的な予測を行う。
ARIMA のみを使用し、長期的な予測を行う。
2 つのアルゴリズムを組み合わせて使用する (既定)。
SQL Server 2008 Enterprise 以降では、Microsoft Time Series アルゴリズムによって予測用のモデルがどのようにブレンドされるかをカスタマイズすることもできます。 混合モデルを使用する場合、Microsoft Time Series アルゴリズムは次のように 2 つのアルゴリズムをブレンドします。
最初のいくつかの予測は、常に ARTXP のみを使用して作成されます。
その後で、ARIMA と ARTXP を組み合わせて使用します。
予測期間の値が増えるにつれ、予測に使用される ARIMA の割合が増えていき、最終的には ARTXP が使用されなくなります。
PREDICTION_SMOOTHING パラメーターを設定することで、アルゴリズムの混用を開始するポイント、ARTXP の割合を減らす速度、ARIMA の割合を増やす速度を指定します。
2 つのアルゴリズムを使用することで、データの周期性を複数レベルで検出できます。 たとえば、データに年周期性があり、さらに月周期性もある場合があります。 このような周期性を検出するために、周期性のヒントを指定することや、アルゴリズムでの周期性の自動検出を指定することができます。
周期性に加えて、Microsoft Time Series アルゴリズムが周期性を検出したり、予測を行ったり、ケースを分析したりする場合に、Microsoft Time Series アルゴリズムの動作を制御する他のいくつかのパラメーターがあります。 アルゴリズムのパラメーターを設定する方法については、「 Microsoft Time Series アルゴリズム テクニカル リファレンス」を参照してください。
タイム シリーズ モデルに必要なデータ
データ マイニング モデルのトレーニングに使用するデータを用意する際には、特定のモデルにおける要件と、データの使用方法を把握しておいてください。
各予測モデルには、ケース シリーズが含まれている必要があります。これは、変更が発生するタイム スライスや他のシリーズを指定する列です。 たとえば、前に示した図のデータは数か月間の自転車の売上履歴および売上予測のシリーズを示しています。 このモデルの場合、各地域がシリーズであり、日付の列にタイム シリーズが含まれます。このタイム シリーズはケース シリーズでもあります。 他のモデルでは、ケース シリーズはテキスト フィールドである場合や、顧客 ID や取引 ID などの識別子である場合があります。 しかし、タイム シリーズ モデルでは常に日付や時刻など、ケース シリーズに対応する固有の数値が使用されます。
タイム シリーズ モデルの要件は次のとおりです。
1 つの Key Time 列 各モデルには、ケース シリーズとして使用される数値列または日付列が 1 つ含まれている必要があります。これにより、モデルで使用されるタイム スライスを定義します。 Key Time 列のデータ型は、datetime データ型または numeric データ型になります。 ただし、この列には連続的な値が含まれる必要があります。また、値は各シリーズで一意である必要があります。 タイム シリーズ モデルに対応するケース シリーズは 2 つの列に格納することはできません。たとえば、年の列と月の列などです。
予測可能列 各モデルには、アルゴリズムでタイム シリーズ モデルの作成に使用される予測可能列が 1 つ以上必要です。 予測可能列のデータ型には、連続値が含まれている必要があります。 たとえば、収入、売上、気温などの数値属性が時間の経過と共にどう変化するかを予測することができます。 しかし、購入状況や教育水準など、孤立した値を含む列は予測可能列として使用できません。
シリーズ キー列 (省略可能) 各モデルには、シリーズを識別する一意の値を含むキー列を追加できます。 このオプションのシリーズ キー列には、一意の値が含まれている必要があります。 たとえば、すべてのタイム スライスで各製品名に対応するレコードが 1 つのみであれば、多数の製品モデルの売上を 1 つのモデルに含めることができます。
Microsoft Time Series モデルの入力データは、いくつかの異なる方法で定義できます。 ただし、入力ケースの形式はマイニング モデルの定義に影響するため、ビジネス ニーズを考慮し、それに応じてデータを準備しておく必要があります。 次の 2 つの例は、入力データがモデルにどのように影響するかを示しています。 どちらの例でも、完成したマイニング モデルには 4 つの独自のシリーズに対応するパターンが含まれます。
製品 A の売上
製品 B の売上
製品 A の数量
製品 B の数量
どちらの例でも、各製品の今後の売上と数量を新しく予測できます。 製品または時間について新しい値を予測することはできません。
例 1: 列値として表されるシリーズを含むタイム シリーズ データ セット
この例では、次の入力ケースのテーブルを使用します。
TimeID | 製品 | Sales | ボリューム |
---|---|---|---|
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 アルゴリズムで検出された周期的構造や、アルゴリズムの配分に使用された数式、その他の統計情報などの詳細が含まれます。
時系列予測の作成
既定では、時系列モデルを表示すると、系列の 5 つの予測が表示SQL Server Analysis Services。 ただし、さまざまな数の予測を返すクエリを作成することや、予測に列を追加して説明的な統計情報を返すこともできます。 タイム シリーズ モデルに対するクエリの作成方法については、「 タイム シリーズ モデルのクエリ例」を参照してください。 データ マイニング拡張機能 (DMX) を使用して時系列予測を行う方法の例については、「 PredictTimeSeries (DMX)」を参照してください。
Microsoft Time Series アルゴリズムを使用して予測を行う場合は、次の追加の制限事項と要件を考慮する必要があります。
クロス予測は、アルゴリズムを混用するモデルを使用する場合や、ARTXP アルゴリズムのみに基づいたモデルを使用する場合にのみ使用できます。 ARIMA アルゴリズムのみに基づいたモデルを使用する場合、クロス予測は実行できません。
タイム シリーズ モデルでは、サーバーで 64 ビットのオペレーティング システムが使用されているかどうかに応じて、予測が大きく変わる場合があります。 これらの違いは、Itanium ベースのシステムが浮動小数点演算の数値を表して処理する方法が原因で発生します。これは、x64 ベースのシステムがこれらの計算を行う方法とは異なります。 予測結果がオペレーティング システムによって変わる可能性があるため、運用時に使用するものと同じオペレーティング システムでモデルを評価することをお勧めします。
注釈
Predictive Model Markup Language (PMML) を使用したマイニング モデルの作成はサポートされていません。
OLAP マイニング モデルの使用がサポートされています。
データ マイニング ディメンションの作成はサポートされていません。
ドリルスルーがサポートされています。
参照
データ マイニング アルゴリズム (Analysis Services - データ マイニング)
Microsoft タイム シリーズ ビューアーを使用したモデルの参照
Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス
Time Series Model Query Examples
タイム シリーズ モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)