11.3 予測の和解

警告: 本章の残りはより高度で、基本的な線形代数のいくつかの知識を前提とします。

行列表記

(11.1)式と(11.2)式は、データを図11.1の階層化構造に沿って集計する方法を表しています。同様に、(11.3)式と(11.4)式は、データを図11.6のグループ化構造に沿って集計する方法を表しています。これらの方程式は集計制約、あるいは、足し上げ方程式と考えることができ、行列表記を使うとより効率的に表わせます。

どんな集計構造でも、ボトムレベル系列を集計する方法を決める、\(n\times m\)の行列\(\bm{S}\)(「足し上げ行列」と言います)が構築できます。

11.1の階層化構造では、以下のように書けます。 \[ \begin{bmatrix} y_{t} \\ \y{A}{t} \\ \y{B}{t} \\ \y{AA}{t} \\ \y{AB}{t} \\ \y{AC}{t} \\ \y{BA}{t} \\ \y{BB}{t} \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \y{AA}{t} \\ \y{AB}{t} \\ \y{AC}{t} \\ \y{BA}{t} \\ \y{BB}{t} \end{bmatrix} \] もしくは、よりコンパクトな表記として、以下のように書けます。 \[\begin{equation} \bm{y}_t=\bm{S}\bm{b}_{t} \tag{11.5} \end{equation}\] ただし、\(\bm{y}_t\)\(t\)時点での階層内の全ての観測値の\(n\)次元ベクトル、\(\bm{S}\)は足し上げ行列、\(\bm{b}_{t}\)\(t\)時点での階層のボトムレベル全ての観測値の\(m\)次元ベクトルです。足し上げ行列\(\bm{S}\)の1行目は(11.1)式を、2行目と3行目は(11.2)式を表していますね。それより下の行は\(m\)次元の単位行列\(\bm{I}_m\)になっていて、式の右辺のボトムレベルの観測値のそれぞれが左辺の自分自身に等しくなるようにしています。

同様に、図11.6のグループ化構造では、以下のように書けます。 \[ \begin{bmatrix} y_{t} \\ \y{A}{t} \\ \y{B}{t} \\ \y{X}{t} \\ \y{Y}{t} \\ \y{AX}{t} \\ \y{AY}{t} \\ \y{BX}{t} \\ \y{BY}{t} \end{bmatrix} = \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \y{AX}{t} \\ \y{AY}{t} \\ \y{BX}{t} \\ \y{BY}{t} \end{bmatrix} \] もしくは、以下のように書けます。 \[\begin{equation} \bm{y}_t=\bm{S}\bm{b}_{t} \tag{11.6} \end{equation}\] ここでは、\(\bm{S}\)の2行目と3行目は(11.3)式を、4行目と5行目は(11.4)式を表しています。

割り当て行列

こうした行列表記を使うことで、階層化時系列でもグループ化時系列でも全ての予測手法を共通の表記で表すことができます。

集計制約を無視して全ての系列を予測したとします。これらを基礎予測(base forecast)と言い、\(\hat{\bm{y}}_h\)と表記します。\(h\)は予測期間です。データの\(\bm{y}_t\)と同じ順に積み上げます。

すると、階層化とグループ化いずれの構造であっても、全ての一貫性のある予測アプローチは、以下のように表せます。20 \[\begin{equation} \tilde{\bm{y}}_h=\bm{S}\bm{G}\hat{\bm{y}}_h \tag{11.7} \end{equation}\] ただし、\(\bm{G}\)は基礎予測をボトムレベルに割り当てる行列で、足し上げ行列\(\bm{S}\)が集計構造を使ってそれらを足し上げ、一貫性のある予測一式\(\tilde{\bm{y}}_h\)を生成します。

\(\bm{G}\)行列は実行するアプローチに従って定義します。例えば、ボトムアップ・アプローチを使って図11.1の階層を予測するなら、次のようにします。 \[\bm{G}= \begin{bmatrix} 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\ \end{bmatrix} \] \(\bm{G}\)には2つの区画がありますね。最初の3列はボトムレベルより上の系列の基礎予測をゼロにし、\(m\)次の単位行列はボトムレベルの基礎予測だけを拾い上げています。これらを次に\(\bm{S}\)行列が足し上げます。

トップダウン・アプローチのどれかを使うなら、以下のようにします。 \[ \bm{G}= \begin{bmatrix} p_1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ p_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ p_3 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ p_4 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ p_5 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ \end{bmatrix} \] 1列目はトップレベルの基礎予測をボトムレベルに分配する比率一式になっています。これらを次に\(\bm{S}\)行列で足し上げます。残りの列はトップレベルの集計より下の基礎予測をゼロにしています。

中間からのアプローチでは、\(\bm{G}\)行列は上記2つの組み合わせになります。比率一式を使って予め選んだあるレベルの基礎予測をボトムレベルに分解し、その他全ての基礎予測はゼロにして、それから、ボトムレベルの予測を足し上げ行列を使って階層に沿って足し上げます。

予測の和解

(11.7)式は、どんな基礎予測一式でも\(\bm{S}\bm{G}\)を前から掛ければ、一貫性のある予測一式になることを示しています。

ここまで検討した伝統的手法は、ある単一レベルからの基礎予測だけを使い、そこから集計か分解してその他全てのレベルの予測を得ていました。ですから、限られた情報しか使っていません。しかし、他の\(\bm{G}\)行列にして、\(\bm{S}\bm{G}\)が全ての基礎予測を組み合わせて和解させ、一貫性のある予測を生成する形に一般化することもできるはずです。

実際、最も正確な和解予測が得られる、最適な行列\(\bm{G}\)を見つけることができます。

MinT最適和解のアプローチ

Wickramasuriya et al. (2019) が一貫性のある予測一式の予測分散の合計を最小化する行列\(\bm{G}\)を見つけ、それがMinT(Minimum Trace トレース最小化)最適和解のアプローチにつながりました。

(11.7)式を使って一貫性のある予測を生成したいとします。まず確認したいのは、基礎予測にバイアスがないことです。基礎予測\(\hat{\bm{y}}_h\)にバイアスがなければ、\(\bm{S}\bm{G}\bm{S}=\bm{S}\)である限り21、一貫性のある予測\(\tilde{\bm{y}}_h\)にもバイアスはありません。これが行列\(\bm{G}\)への制約となります。興味深いことに、トップダウン手法にこの制約を満たすものはないので、全てのトップダウン・アプローチによる一貫性のある予測にはバイアスがあることになります。

次に、予測誤差を見つける必要があります。 Wickramasuriya et al. (2019) は、一貫性のある\(h\)期先予測誤差の分散共分散行列は以下のようになると示します。 \[\begin{equation*} \bm{V}_h = \text{Var}[\bm{y}_{T+h}-\tilde{\bm{y}}_h]=\bm{S}\bm{G}\bm{W}_h\bm{G}'\bm{S}' \end{equation*}\] ただし、\(\bm{W}_h=\text{Var}[(\bm{y}_{T+h}-\hat{\bm{y}}_h)]\)は対応する基礎予測誤差の分散共分散行列です。

目的は、一貫性のある予測の誤差分散を最小化する行列\(\bm{G}\)を見つけることです。これらの誤差分散は行列\(\bm{V}_h\)の対角上にあるので、誤差分散全ての合計は行列\(\bm{V}_h\)のトレース(対角成分の和)になります。 Wickramasuriya et al. (2019) は、\(\bm{S}\bm{G}\bm{S}=\bm{S}\)であって、\(\bm{V}_h\)のトレースを最小化する行列\(\bm{G}\)は以下のようになると示します。 \[ \bm{G}=(\bm{S}'\bm{W}_h^{-1}\bm{S})^{-1}\bm{S}'\bm{W}_h^{-1} \] すると、最適な和解予測は以下のようになります。 \[\begin{equation} \tag{11.8} \tilde{\bm{y}}_h=\bm{S}(\bm{S}'\bm{W}_h^{-1}\bm{S})^{-1}\bm{S}'\bm{W}_h^{-1}\hat{\bm{y}}_h \end{equation}\]

これを、MinT(あるいは、Minimum Trace)最適和解のアプローチと言います。MinTは、reconcile()関数の中でmin_trace()を使えば実行できます。

実際にこれを使うには、\(h\)期先基礎予測の予測誤差分散である\(\bm{W}_h\)を推計する必要があります。それは難しいでしょうから、シミュレーションと実務の両方で上手く機能すると示されてきた以下の4つの単純化近似を提供しています。

  1. 全ての\(h\)\(\bm{W}_h=k_h\bm{I}\)と設定、ただし\(k_{h} > 0\)です。22 これは最も単純化して、\(\bm{G}\)はデータから独立と想定するので、計算量を大幅に節約できます。しかし、弱点は、この仕様では構造のレベル間の尺度の違いも系列間の関係も考慮しないことです。

    (11.8)式で\(\bm{W}_h=k_h\bm{I}\)と設定し、\(\bm{X}=\bm{S}\)\(\bm{y}=\hat{\bm{y}}\)とすれば、7.9節で紹介したOLS(ordinary least squares 最小2乗法)による推計になります。ですから、このアプローチはOLS和解と呼ぶのが普通です。min_trace()の中でmethod = "ols"と設定すると実行されます。

  2. 全ての\(h\)\(\bm{W}_{h} = k_{h}\text{diag}(\hat{\bm{W}}_{1})\)と設定、ただし\(k_{h} > 0\)\[ \hat{\bm{W}}_{1} = \frac{1}{T}\sum_{t=1}^{T}\bm{e}_{t}\bm{e}_{t}' \] で、\(\bm{e}_{t}\)は基礎予測を生成したモデルの残差をデータと同じ順に積み上げた\(n\)次元ベクトルです。

    この仕様は、基礎予測を残差の分散に従って尺度を変えます。そのため、分散スケーリングによるWLS(weighted least squares 加重最小2乗法)と言います。min_trace()の中でmethod = "wls_var"と設定すると実行されます。

  3. 全ての\(h\)\(\bm{W}_{h}=k_{h}\bm{\Lambda}\)と設定、ただし\(k_{h} > 0\)\(\bm{\Lambda}=\text{diag}(\bm{S}\bm{1})\)で、\(\bm{1}\)\(m\)(ボトムレベル系列数)次元の単位ベクトルです。この仕様は、ボトムレベルの基礎予測誤差は分散が全て\(k_{h}\)でノード間は無相関と想定します。ですから、対角行列\(\bm{\Lambda}\)の各要素は各ノードに貢献する予測誤差分散の数になります。この推計法は集計構造のみに依存し、実際のデータには依存しません。そのため、構造スケーリングと言います。構造スケーリング仕様の適用は、残差が入手可能でないため分散スケーリングが適用できない場合に特に役に立ちます。例えば、判断による予測(6章)で基礎予測を生成した場合です。このアプローチは、min_trace()の中でmethod = "wls_struct"と設定すると実行されます。

  4. 全ての\(h\)\(\bm{W}_h = k_h \bm{W}_1\)と設定、ただし\(k_h>0\)です。ここでは、誤差共分散行列がお互いに比例しているとだけ想定して、1期先共分散行列\(\bm{W}_1\)全体は直接推計します。最も明白で単純な方法は標本分散を使うことでしょう。これは、min_trace()の中でmethod = "mint_cov"と設定すると実行されます。

    しかし、ボトムレベル系列数\(m\)が系列の長さ\(T\)と比べて大きい場合は、これは良い推計法ではありません。替わりに、標本分散を縮小して対角行列にする縮小推計法が使えます。これは、min_trace()の中でmethod = "mint_shrink"と設定すると実行されます。

要約すると、伝統的アプローチと違って、最適和解予測は階層化やグループ化の構造内の入手可能な情報全てを使って生成されます。このことは重要です。特定の集計レベルやグループに明らかな特徴があり、それがユーザにとって興味があるものだったり、モデル化で大切なものだったりするかもしれないのですから。こうした特徴は他のレベルでは完全に隠されたり、容易には特定できなくなっているかもしれません。

例えば、11.1節のオーストラリア旅行データを考えてみましょう。そこでは、階層構造が全国を州と地域に地理的に分割する格好になっていました。主に夏に行くところもあれば、冬に行くところもあります。図11.4で北部と南部の州間の対照的な季節パターンを見ました。全国レベルでは集計の結果、これらの違いは平滑化されてしまいます。

参考文献

Hyndman, R. J., Ahmed, R. A., Athanasopoulos, G., & Shang, H. L. (2011). Optimal combination forecasts for hierarchical time series. Computational Statistics and Data Analysis, 55(9), 2579–2589. [DOI]
Panagiotelis, A., Athanasopoulos, G., Gamakumara, P., & Hyndman, R. J. (2021). Forecast reconciliation: A geometric view with new insights on bias correction. International Journal of Forecasting, 37(1), 343–359. [DOI]
Wickramasuriya, S. L., Athanasopoulos, G., & Hyndman, R. J. (2019). Optimal forecast reconciliation for hierarchical and grouped time series through trace minimization. Journal of the American Statistical Association, 114(526), 804–819. [DOI]

  1. 実際には、最近の非線形和解手法にはもう少し複雑な方程式が必要なものもあります。この方程式は一般的な線形和解手法向けです。↩︎

  2. この「無バイアス維持」制約は最初に Hyndman et al. (2011) が紹介しました。\(\bm{S}\bm{G}\)が集計制約の成立する\(m\)次元の一貫性のある部分空間への射影行列であること、と同値と示したのは、 Panagiotelis et al. (2021) です。↩︎

  3. \(k_{h}\)は比率を表す定数です。(11.8)式で相殺されるので、ここでは推計も指定も必要ありません。↩︎