渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

ニューラルGranger因果という論文が出たらしい(追記あり)

3年前に因果フェスというイベントでGranger因果について専門家でもないのに講演させられるという稀有な経験をしたわけですが。

その時のイベント報告記事で、会場でのディスカッションの内容を踏まえて僕はこんなことを書いたのでした。

非線形Granger因果性検定の手順(ここでは2変量2次ラグモデルを想定する)


 y_{1t} = L(\mathbf{w_1}, \mathbf{w_2}, y_{1,t-1}, y_{2,t-1}, y_{1,t-2}, y_{2,t-2}, \epsilon_{1t})


なる2変量2次ラグモデルを機械学習的なものを含めた何かしらの方法で推定し、その誤差関数をE_1とする。次に、 y_{2t}がない(非線形Granger因果を与え得る時系列を伴わない)単変量2次ラグモデル


 y_{1t} = L(\mathbf{w_1}, y_{1,t-1}, y_{1,t-2}, \epsilon_{1t})


を同様に推定し、その誤差関数をE_2とする。この2つの誤差関数とy_{2t}を表現する学習パラメータ\mathbf{w_2}を統合する何かしらの情報量規準


GIC \equiv f(E_1, E_2, \mathbf{w_2})


を定義し、これの有意性をブートストラップ法などを用いて検定する。


と書き換えて、モデル推定のための何かしら好都合な非線形データに対応可能な機械学習手法(脚注:ここでRNNしか思い付かない自分は発想が貧困っぽい)を適用できれば、意外といけるんじゃないかという気がしてきたのでした。

ということを書いていたら、ズバリそれっぽいものが先日arXivに出てました。その名もズバリ"[1802.05842] Neural Granger Causality for Nonlinear Time Series"という代物。本当にLSTM-RNNでそれやってるじゃないですか、こんなんだったら一足先に研究して論文書いときゃ良かったorz


この論文がやっていることを極めて大雑把にまとめるとこんな感じです。要はDeep Learning (MLP / LSTM)の予測性能というよりはむしろ解釈性(interpretability)の方に重視したアプローチで、

  • VARモデルに該当する複数時系列同士の自己回帰モデルMLP / LSTMで組む(componentwise MLP / LSTMということでそれぞれcMLP, cLSTMと称する)
  • Hierarchical Group Lasso*1を用いることで「因果関係がない場合に特定の時系列に当たるNNのネットワーク重み付けが異なるラグ次数をまたいでゼロになる」ようにする
  • ある時系列Aから別の時系列Bに対するネットワーク重み付けがゼロでなければ、AのBへの因果関係があると推定される(帰無仮説?的なものとしてその逆で「ゼロなら因果関係がない」と推定する)
  • cMLP / cLSTMにはそれぞれ長所短所があるので、データに合わせて使い分けるべき
  • VAR(3)モデルによるシミュレーションデータ、DREAM3 challenge、Human Motion Capture Dataを用いてcMLP / cLSTMの有用性を実証

というもので、上記の僕が3年前に考えたアイデアよりもNNの仕組みを生かしたコンセプトである模様です。個人的にはHierarchical Group Lassoを使って個々の時系列に対応するネットワーク重み付けを削っていくというところが面白いなと思いました。

f:id:TJO:20180228124536p:plain
その概略ですが、Fig.1が比較的分かりやすいかと思います。個々のi番目の時系列に対して自身も含むその他のj番目の時系列も含めてMLP / LSTMでモデリングし、j番目の時系列の過去データ(ラグ次数分)からのネットワーク重み付けがゼロになるようなら、因果関係がないと判定する(つまりゼロでなければ因果関係があると判定する)というものです。MLPならベタッとネットワークを組み、LSTMなら隠れ層への重み付けを見る、という。そこのネットワーク重み付けが残るか否かをGroup Lassoで判定するというところが、NNの解釈性を生かした発想で面白いなと思いました。


f:id:TJO:20180318145055p:plain
実験結果として最も分かりやすいのはおそらくシミュレーションデータに対する結果で、簡潔に表したのがFig.3です。5次のラグまで遡ってモデリングした結果で、右端がVAR(3)モデルを用いて表現した真の因果関係。残りがcMLPによる結果です。VAR(3)モデルなので因果関係が現れるのは3次のラグまでのはずなのですが、cMLPがきちんと4-5次のラグからの因果関係をHierachical Group Lassoで削っているので適切に因果関係を推定しているという結果になっています。


なのですが。個人的にはオリジナルのGranger因果の定義を鑑みるに、いまいち何かが納得がいかない感じがありまして。。。というのも、オリジナルの方の定義だと

Granger因果性検定の手順(ここでは2変量2次ラグのVARモデルを想定する)


 y_{1t} = c_1 + \phi^{(1)}_{11} y_{1,t-1} + \phi^{(1)}_{12} y_{2,t-1} + \phi^{(2)}_{11} y_{1,t-2} + \phi^{(2)}_{12} y_{2,t-2} + \epsilon_{1t}


なる2変量VAR(2)モデルをOLSで推定し、その残差平方和をSSR_1とする。次に、 y_{2t}がない(Granger因果を与え得る時系列を伴わない)ARモデル


 y_{1t} = c_1 + \phi^{(1)}_{11} y_{1,t-1} + \phi^{(2)}_{11} y_{1,t-2} + \epsilon_{1t}


をOLSで推定し、その残差平方和をSSR_0とする。この時F統計量は


F \equiv \frac{(SSR_0 - SSR_1) / 2}{SSR_1/(T-5)}


で定義され、2Fは漸近的に\chi^2(2)に従うことが知られている。従って2Fの値を\chi^2(2)の95%点を比較して2Fの方が大きければ、y_{2t}からy_{1t}へのGranger因果性が存在しないという帰無仮説を棄却し、y_{2t}y_{1t}の将来を予測するのに有用であると結論することになる。(※Tはサンプルサイズ)

となっていて残差平方和(SSR)を重視したロジックになっているわけですが、今回のニューラルGranger因果のロジックだとその辺どうなのかなと。損失関数の設定さえ適切なら良いという話ならシンプルなんですが、一方でGranger因果というのは(Hierachical Group) Lassoで本質的に表せてしまう問題と捉えて良いものなのだろうか?という疑問もあり。。。もうちょっと参考文献と合わせて読み込んでみた方が良いかもですね、ということでお後がよろしいようで。


追記


某くんなどと議論してたどり着いた結論が、

  • そもそもGranger因果は多変量時系列モデルにおいてある時系列に対応する回帰係数が全て「ゼロになるか否かの有意性」を検証するもの
  • これに対してニューラルGranger因果は初めからGroup Lassoで「ゼロにしてしまう」ところを大前提の出発点にしていて、本来の「ばらつきを指標として有意性を評価する」Granger因果の概念が失われているように見える

ということで「これ以上特に深入りしなくていいんじゃないですかねー」だそうです。お粗末様でした。。。

*1:例えばPFNの海野さんの記事が分かりやすいかと