読者です 読者をやめる 読者になる 読者になる

六本木で働くデータサイエンティストのブログ

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

因果フェスでGranger因果について話してきたら、色々いじれば非線形でもやれるんじゃないかという気がしてきた

f:id:TJO:20150806162325p:plain


本日8月6日に駒場で開かれた日本生態学会関東地区会公開シンポジウム「非ガウス性/非線形性/非対称性からの因果推論手法:その使いどころ・原理・実装を学ぶ」通称因果フェスにて、Granger因果について話してきました。


ちなみに事前に林岳彦(id:takehiko-i-hayashi)先生からご紹介下さった記事がこちら。林先生、この度はお招き下さいまして有難うございました&業務対応のため遅れて会場入り&直後に退出という慌ただしいスケジュールになってしまい大変失礼いたしました。。。また色々お話させていただければ幸いです。



ということで、既にslideshareに資料をupしてあります。まぁいつも通りというか2年前に何度か計量時系列分析について話した時のスライドを下敷きにしてますが、当時より学術的な集会での講演ということで幾つか理論的基礎についても触れてあります。



で、ここからが本論なのですが。会場での質疑で何度か出たコメントとして「VARモデル(ひいてはARモデル)の定常性の仮定があるせいでGranger因果が線形な場合にしか使えないのなら、そもそも非定常でも時系列を表現可能な何かしらの時系列モデルをVARモデルの代わりに用い、さらにMSEよりも使いやすい誤差関数を使えば良いのではないか」というのがありました。つまり、

Granger因果性検定の手順


 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はサンプルサイズ)


という沖本本p.81の2次VARモデルを用いた例を、例えば

非線形Granger因果性検定の手順


 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})


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


と書き換えて、モデル推定のための何かしら好都合な非線形データに対応可能な機械学習手法*1を適用できれば、意外といけるんじゃないかという気がしてきたのでした。


実はこの辺のアイデア今は亡き*2「教授」氏が2年前のZansaの会でコメントしてたんですが、あまり噂など聞かないところを見るに誰もやってないんですかね? なら自分でやろうかなーと思ったら、そんな暇あるわけないだろ!と各方面から怒鳴り込まれそうな気がしてきて、お後がよろしいようで(笑)。

*1:ここでRNNしか思い付かない自分は発想が貧困っぽい

*2:死んでない死んでない