Microsoft タイム シリーズ アルゴリズム テクニカル リファレンス
Microsoft タイム シリーズ アルゴリズムには 2 つの異なるアルゴリズムが含まれています。
ARTXP アルゴリズム。SQL Server 2005 で導入されたアルゴリズムで、シリーズ内で最も近い値の予測に適しています。
ARIMA アルゴリズム。長期的な予測の精度を向上させるために SQL Server 2008 で追加されたアルゴリズムです。
既定では、Analysis Services は各アルゴリズムを別々に使用してモデルのトレーニングを行い、その結果を統合して、さまざまな数の予測に対して最適な予測を出力します。使用するデータや予測の要件に基づいて、一方のアルゴリズムのみを使用するように選択することもできます。SQL Server 2008 Enterprise では、予測時のアルゴリズムの組み合わせを制御するカットオフ ポイントをカスタマイズすることもできます。
このトピックでは、各アルゴリズムがどのように実装されているのかについての追加情報を紹介し、パラメータを設定してアルゴリズムをカスタマイズすることによって分析や予測の結果を微調整する方法を説明します。
タイム シリーズ アルゴリズムの実装
Microsoft Research が開発した ARTXP アルゴリズムは、周期的な時系列データを表すための自動回帰ツリー モデルである Microsoft デシジョン ツリー アルゴリズムに基づいています。ARTXP アルゴリズムでは、さまざまな数の過去のアイテムが、予測する現在の各アイテムに関連付けられます。ARTXP という名前は、ART アルゴリズム (自動回帰ツリー法) が複数の不明な先行する状態に適用されることに由来しています。ARTXP アルゴリズムの詳細については、「時系列分析の自動回帰ツリー モデル」を参照してください。
ARIMA アルゴリズムは、長期的な予測に使用されます。これは、Box と Jenkins によって開発された ARIMA アルゴリズムの実装です。ARIMA (自己回帰和分移動平均) は、時間的に連続して行われる観測の依存関係を特定するための方法としてよく知られています。増殖性の周期もサポートされています。ARIMA アルゴリズムでは、自己回帰と移動平均の両方の期間が使用されます。
ARTXP アルゴリズムではクロス予測がサポートされていますが、ARIMA アルゴリズムではサポートされていません。したがって、クロス予測は、両方のアルゴリズムを組み合わせて使用する場合や、ARTXP のみを使用するようにモデルを構成する場合にのみ使用できます。
Microsoft タイム シリーズ アルゴリズムのカスタマイズ
Microsoft タイム シリーズ アルゴリズムでは、結果として得られるマイニング モデルの動作、パフォーマンス、および精度に影響を与えるいくつかのパラメータがサポートされています。
周期性の検出
周期性の検出は、両方のアルゴリズムでサポートされています。Analysis Services は、高速フーリエ変換を使用してトレーニングの前に周期性を検出します。
最高の結果が得られるように、アルゴリズム パラメータを設定して周期性の検出を制御することができます。AUTODETECT_SEASONALITY の値を変更すると、生成される可能な時間単位の数に影響を与えることができます。PERIODICITY_HINT に 1 つまたは複数の値を設定して、既知の繰り返し周期に関する情報をアルゴリズムに提供すると、検出の精度を高めることができます。
注意 |
---|
周期性のヒントは、ARTXP アルゴリズムと ARIMA アルゴリズムの両方に影響します。したがって、不適切なヒントを指定すると、結果に悪影響を与える可能性があります。 |
アルゴリズムの組み合わせ
既定では、Analysis Services は両方のアルゴリズムを均等に組み合わせて使用します。しかし、SQL Server 2008 Enterprise では、結果の統合方法をカスタマイズすることもできます。そのためには、MIXED オプションを選択して、短期または長期のいずれかの予測が結果で重視されるようにパラメータを設定します。
クロス予測を使用する場合は、ARTXP または MIXED オプションのいずれかを使用する必要があります。ARIMA はクロス予測をサポートしていません。
アルゴリズムの選択を制御するには、FORECAST_METHOD パラメータを設定します。FORECAST_METHOD パラメータは、既定では MIXED に設定されています。この場合、Analysis Services は両方のアルゴリズムを使用して、各アルゴリズムの強みを最大限に活かすようにそれぞれの値に重みを付けます。ただし、ARTXP アルゴリズムのみを使用する場合は FORECAST_METHOD を ARTXP に、ARIMA アルゴリズムのみを使用する場合は ARIMA に設定することもできます。
SQL Server 2008 Enterprise では、Analysis Services で ARIMA アルゴリズムと ARTXP アルゴリズムをどのように組み合わせるかをカスタマイズすることもできます。PREDICTION_SMOOTHING パラメータを設定することにより、組み合わせの開始点と変化率の両方を制御できます。
PREDICTION_SMOOTHING を 0 に設定すると、純粋な ARTXP モデルになります。
PREDICTION_SMOOTHING を 1 に設定すると、純粋な ARIMA モデルになります。
PREDICTION_SMOOTHING を 0 と 1 の間の値に設定すると、ARTXP アルゴリズムが予測期間の "指数的に減少する関数" として重み付けされ、ARIMA アルゴリズムが ARTXP の重みの 1 の補数として重み付けされます。モデルでは、曲線を滑らかにするために正規化および安定化定数が使用されます。
一般に、予測するタイム スライスが 5 以下であれば、ほとんどの場合、ARTXP の方が適しています。予測するタイム スライスが増えるにつれて、ARIMA を使用した方がより良い結果が得られるようになります。
次の図は、PREDICTION_SMOOTHING を既定値の 0.5 に設定した場合にモデルで 2 つのアルゴリズムがどのように組み合わされるのかを示しています。最初は ARIMA と ARTXP の重みが均等ですが、予測期間の値が増えるにつれて ARIMA の重みが増加しています。
一方、次の図は、PREDICTION_SMOOTHING を 0.2 に設定した場合のアルゴリズムの組み合わせを示しています。期間 0 では、ARIMA の重みが 0.2、ARTXP の重みが 0.8 です。その後、ARIMA の重みが指数関数的に増加し、ARTXP の重みも同じように減少します。
アルゴリズム パラメータの設定
次の表は、Microsoft タイム シリーズ アルゴリズムで使用できるパラメータを示しています。
パラメータ |
説明 |
---|---|
AUTO_DETECT_PERIODICITY |
周期性を検出する 0 から 1 までの数値を指定します。既定値は 0.6 です。 より 0 に近い値を設定すると、非常に周期的なデータのみを対象にして周期性が検出されます。 1 に近い値を設定すると、多くのほぼ周期的なパターンの検出と、周期性のヒントの自動生成が行われます。
注意
周期性のヒントを多数処理すると、モデルのトレーニングに非常に長い時間がかかりますが、精度の高いモデルになる可能性があります。
|
COMPLEXITY_PENALTY |
デシジョン ツリーの拡大を制御します。既定値は 0.1 です。 値を小さくすると、分割の可能性が増加します。値を大きくすると、分割の可能性が減少します。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
FORECAST_METHOD |
分析および予測に使用するアルゴリズムを指定します。指定できる値は、ARTXP、ARIMA、および MIXED です。既定値は MIXED です。 |
HISTORIC_MODEL_COUNT |
作成する履歴モデルの数を指定します。既定値は 1 です。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
HISTORICAL_MODEL_GAP |
2 つの連続した履歴モデル間のタイム ラグを指定します。既定値は 10 です。この値は、モデルによって定義される時間単位の数を表します。 たとえば、この値を g に設定すると、g、2*g、3*g などの間隔でタイム スライスによって切り捨てられるデータに対して履歴モデルが作成されます。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
INSTABILITY_SENSITIVITY |
予測の分散が特定のしきい値を超えて ARTXP アルゴリズムの予測が中止されるポイントを制御します。既定値は 1 です。
注意
このパラメータは ARTXP に対してのみ適用されます。したがって、ARIMA アルゴリズムのみを使用して作成されたモデルには適用されません。MIXED モデルに適用した場合、パラメータはモデルの ARTXP 部分に対してのみ適用されます。
既定値の 1 では、ARTXP モデルの動作が SQL Server 2005 と同じ動作になります。Analysis Services は、各予測の正規化された標準偏差を監視します。いずれかの予測の標準偏差がしきい値を超えると、タイム シリーズ アルゴリズムが NULL を返して予測処理が中止されます。 値を 0 にすると、不安定性の検出が中止されます。この場合は、偏差に関係なく予測を無制限に作成できます。
注意
このパラメータは SQL Server Enterprise でのみ変更できます。SQL Server Standard では、Analysis Services には既定値の 1 のみが使用されます。
|
MAXIMUM_SERIES_VALUE |
予測で使用する最大値を指定します。このパラメータは、MINIMUM_SERIES_VALUE と共に、予測を一定の範囲内に制限するために使用されます。たとえば、1 日の販売数量の予測が製品の在庫数を超えないように指定することができます。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
MINIMUM_SERIES_VALUE |
予測できる最小値を指定します。このパラメータは、MAXIMUM_SERIES_VALUE と共に、予測を一定の範囲内に制限するために使用されます。たとえば、販売数量の予測が負の値にならないように指定できます。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
MINIMUM_SUPPORT |
各タイム シリーズ ツリーで分割を生成するために必要なタイム スライスの最小数を指定します。既定値は 10 です。 |
MISSING_VALUE_SUBSTITUTION |
履歴データのギャップを埋める方法を指定します。既定では、データ内のギャップは許可されません。 このパラメータに指定できる値の一覧を次の表に示します。
値説明
Previous前のタイム スライスの値を繰り返します。
Meanトレーニングに使用されたタイム スライスの移動平均を使用します。
数値定数指定した数値を使用してすべての不足値を置き換えます。
Noneトレーニング済みモデルの曲線に沿ってプロットされた値で不足値を置き換えます。 これは既定値です。
データに複数のシリーズが含まれている場合は、シリーズの端を揃える必要もあります。つまり、すべてのシリーズの開始点と終了点が同じである必要があります。 このパラメータの値は、タイム シリーズ モデルで PREDICTION JOIN を実行する際に新しいデータのギャップを埋めるためにも使用されます。 |
PERIODICITY_HINT |
データの周期性に関して、アルゴリズムにヒントを提供します。たとえば、売上が年ごとに異なり、シリーズの単位が月である場合、周期性は 12 です。このパラメータの形式は {n [, n]} です。ここで、n には正の値を指定します。 角かっこ ([]) 内の n は省略可能で、必要なだけ繰り返すことができます。たとえば、毎月提供されるデータに対して複数の周期性のヒントを指定して、年、四半期、および月のパターンを検出するには、「{12, 3, 1}」と入力します。ただし、周期性はモデルの品質に大きな影響を与えるので注意してください。指定したヒントが実際の周期性と異なると、結果が悪影響を受けることがあります。 既定値は {1} です。
注意
値は中かっこで囲む必要があります。また、このパラメータは文字列データ型です。したがって、このパラメータをデータ マイニング拡張機能 (DMX) ステートメントの一部として入力する場合は、数字と中かっこを引用符で囲む必要があります。
|
PREDICTION_SMOOTHING |
予測を最適化するためにモデルを組み合わせる方法を指定します。0 ~ 1 の任意の値を入力するか、次のいずれかの値を使用します。
注意
トレーニングは、FORECAST_METHOD パラメータを使用して制御します。
値説明
0予測に ARTXP のみを使用するように指定します。少数の予測に最適化されます。
1予測に ARIMA のみを使用するように指定します。多数の予測に最適化されます。
0.5(既定値) 予測に両方のアルゴリズムを使用して、結果を統合するように指定します。
注意
このパラメータは SQL Server Enterprise でのみ使用できます。
|
モデリング フラグ
Microsoft タイム シリーズ アルゴリズムでは、次のモデリング フラグがサポートされています。モデリング フラグは、マイニング構造やマイニング モデルを作成するときに定義し、分析時に各列の値をどのように処理するかを指定します。詳細については、「モデリング フラグ (データ マイニング)」を参照してください。
モデリング フラグ |
説明 |
---|---|
NOT NULL |
列に NULL を含めることはできないことを示します。モデルのトレーニング中に NULL が検出された場合はエラーが発生します。 マイニング構造列に適用されます。 |
MODEL_EXISTENCE_ONLY |
列が、Missing および Existing の 2 つの可能な状態を持つ列として扱われることを示します。NULL は Missing 値になります。 マイニング モデル列に適用されます。 |
必要条件
タイム シリーズ モデルには、一意の値を含む Key Time 列、入力列、および少なくとも 1 つの予測可能列が必要です。
入力列と予測可能列
次の表のように、Microsoft タイム シリーズ アルゴリズムでは、特定の入力列のコンテンツの種類、予測可能列のコンテンツの種類、およびモデリング フラグがサポートされています。
列 |
コンテンツの種類 |
---|---|
入力属性 |
Continuous、Key、Key Time、Table |
予測可能な属性 |
Continuous、Table |
注意 |
---|
コンテンツの種類 Cyclical および Ordered はサポートされますが、アルゴリズムはこれらを不連続の値として扱い、特別な処理は行いません。 |