« 読了:Clemen (1989) 予測結合研究レビュー | メイン | 読了:Morris (1974) 専門家の意見を用いたベイジアン決定モデル »
2016年3月29日 (火)
Duncan, G.T., Gorr, W.L., & Szczypula, J. (2001) Forecasting analogous time series. in Armstrong, J.S. (ed.) "Principles of Forecasting," Springer. pp 195-213.
こんなことをセキララに書くのは恥ずかしいのだが、原稿の都合で70-80年代の予測研究におけるベイジアン・コンセンサスの研究について調べていたら、ベイジアン・プーリングやらあれやらこれやら、聞きなれない概念が山ほど出てきて、なにがどうなっているのかわからなくなり、もう大混乱してしまったのだった。
ようやく見つけ出した、ベイジアン・プーリングに的を絞った解説。なんと、かつて大枚はたいて買ったきり本棚に鎮座していた分厚いハンドブックの中にみつかった。資料は買っておくべきだ。買った資料の目次くらいは目を通しておくべきだ。
著者いわく。
ベイジアン・プーリングとは、ベイジアン・シュリンケージ、経験ベイズ、スタイン推定の別名である[←えっ...? まったく同じ意味ってこたないでしょう?!]。ある時系列についての予測に、それと類比的な(analogous)他のたくさんの時系列を使う。ベイジアンVARだったら、予測したい時系列にとって他の時系列は独立変数(リード指標)だということになるが、ベイジアン・プーリングではそうじゃない。
手順は以下の通り。
その1、予測したい時系列(以下「ターゲット時系列」)と類比的な時系列(以下「類比時系列」)を選ぶ。手当たり次第に全部使うのはよろしくない。以下のアプローチがある。
- 相関が高い時系列を選ぶ。一本ずつターゲット時系列との相関をみて、なんらかの閾値を超えた奴を選びましょう、とか。過去の相関はたまたま生じただけかも、というのが欠点。
- 多変量の因果的因子をつかって時系列をクラスタリングする。たとえば、地域ごとに時系列があるとして、人口密度とか住民の年齢とか収入とかで地域をクラスタリングしましょう、とか。時系列以外のクロス・セクショナルデータが使えるし、時系列の相関の背後にある因果関係を利用できるというのがメリット。いっぽう、時系列の相関を生んでいる大事な変数が手元にないかも、という危険もある。
- 専門家の判断で選ぶ。観察されている相関と併用するがよろし。
その2、時系列をスケーリングして、プールするデータを等質的にする。たとえば、一本ずつ標準化する(平均を引いてSDで割る)とか。
その3、モデリング。同じspecificationの時系列モデルを2つ推定する。(1)ローカル・モデル。ターゲット時系列にあてはめる。(2)グループ・モデル。類比時系列のプールにあてはめる。
著者らのモデル(適応的ベイジアン・プーリング, ABP)を例に挙げると、こんな感じ。
- ローカル・モデルのほうは指数平滑化モデル。レベル項とトレンド傾き項を持ち、切片項はなし。指数平滑化、カルマン・フィルタ、多状態カルマン・フィルタなどで推定する。また、単純な指数平滑化を使って、パラメータの分散を再帰的に推定しておく[←うーん、このくだり、ちょっと理解できない... ローカル線形トレンドモデルをカルマン・フィルタで推定したのなら、レベルと傾きについての誤差分散系列も得られるのでは?]
- グループモデルのほうは短期記憶モデル。プールした時系列における前期の標本平均を当期のレベルの推定値とし、前々期と前期の差の標本平均を傾きの推定値とする。[←まじか。そんなええかげんな話でいいのか。本文中の別の場所では「グループモデルとしては階層ランダム効果モデルを最尤推定する」と言い切っているのに。ある論文の中のこの温度差はいったいなんなのか]
その4、パラメータ結合。2つのモデルのパラメータを結合する。重みをシュリンケージ・ウェイトという。ウェイトは各パラメータの分散に反比例させ、和を1とする。
たとえば、季節要素のない単変量予測についての経験ベイズ・シュリンケージは以下の通り。ターゲット時系列の推定されたレベルを$L_{it}$、傾きを$S_{it}$とする。グループ側の標本平均を$\bar{x}_t$、一期差の標本平均を$\bar{\delta}_t$とする。結合した推定値は
$L'_{it} = u_1 L_{it} + u_2 \bar{x}_t$
$S'_{it} = w_1 S_{it} + w_2 \bar{\delta}_t$
ベイジアン・シュリンケージは時間定常でボラタリティが大きいモデルで用いることが多いんだけど、別に時間定常でなくてもよいことに注意。
その5、予測。k期先の予測がほしければ、単純に$L'_{it} + k S'_{it}$を使うがよろし。[←えええ?当期のレベルと傾きを伸ばしちゃうの? ひょっとして傾きをstochasticな要素ではなく、時変のない確定的要素として捉えているのだろうか?]
その6、予測の再調整。その2でやったスケーリングをもとに戻す。
ベイジアン・プーリングの原則:
- 時系列のボラタリティが大きいときに使う。[研究がいろいろ紹介されているけど、パス]
- 時系列が外れ値を含んでいるときに使う。[これもパス]
- 時系列をクラスタリングすると時系列がクラスタ内で似ていてクラスタ間で違うというときに、適切なクラスタをプーリングすると効果大。[そりゃそうだろうな。詳細パス]
- プーリングとグルーピングは単純に。[グルーピングとして{全標本、相関ベース、モデルベース、専門家ベース}、クロス・セクショナルのプーリングとして{Holt法, 多状態カルマンフィルタ}を比べたら、専門家がグルーピングしてHolt法でプーリングするのが一番良かった、という事例を紹介している。そんなん事例によるんじゃないかと思うのだが]
- 時系列の本数が少ないときは、時系列を監視し、パターンが変わったなと思ったら手動でシュリンケージ・ウェイトを切り替えるべし。[これも実験が紹介されている。パス]
。。。そんなこんなで、「かゆいところに手が届く」というより「かゆいところがいっぱい出てくる」という感じの文献であったが、ま、勉強になりましたです。
論文:データ解析(2015-) - 読了:Duncan, Gorr, & Szczypula (2001) 時系列のベイジアン・プーリング