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

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

トレンド・季節調整付き時系列データの回帰モデルを交差検証してみる

これは実は既に元ネタのあるテーマです。

個人的にはトレンド・季節調整付き時系列データの回帰モデルをやる場合はほぼ例外なくベイジアンモデリングで回すんですが、一般にベイズ系のモデルは例えばWAICやWBICのような情報量基準でモデルの汎化性能を推定することでモデル選択することができます。ところが、トレンド・季節調整付き時系列データのように回帰部分の尤度だけでは表せない、強い自己相関のある部分が大きいデータの場合は、モデル全体のWAICやWBICを算出する方法が(まだ?)ありません。


ということで交差検証(CV: cross validation)大好き人間の僕としては、普段は適当に「学習データ:古い方から80% / 検証データ:新しい側の残り20%」みたいなholdout CVしかやっていないんですが、当然ながらこれだけではholdoutの取り方によって差がつくため、どうしても恣意性が残ってしまいます。


そんな疑問を持っている時に、人から紹介されたのが上記のリンク先記事。こちらでは"sliding window"を用いたCV方法を提案しているということなので、これを実際に自分でクソコード書きながらやってみようかと思います。

続きを読む

統計的因果推論(1): 差分の差分法(Difference-in-Differences)をRで回してみる

世の中様々な介入効果・施策効果を検証するためのexperimentが行なわれていると思うんですが、意外とその効果検証というのは難しいものです。特にいわゆる統計的因果推論の立場から見れば、web上で接触する一般ユーザーに対する介入や施策といったものの検証を完全にランダム化比較試験(Randomized Controlled Trial: RCT)として実施するのは困難です。


この問題について統計的因果推論の観点からは様々なソリューションを与えることが可能なようです。例えば傾向スコア(Propensity Score)は最近色々なところで取り上げられていますし、バックドア基準といったものも挙げられます。で、今回はその中でも差分の差分法(Difference-in-Differences: DID)を取り上げることにします。理由は単純で「どうしてもexperimentによって何かしらの介入・施策の効果の有無を明らかにしたい」というケースで特に有用だと個人的には思われるからです。


おおまかな概要については、『差分の差分法』Wikipedia記事が分かりやすいかと思います。また「差の差法」という呼称になっていますが、不肖僕も刊行委員として参画している岩波DS第3巻の山口慎太郎先生の解説で取り上げられています。

岩波データサイエンス Vol.3

岩波データサイエンス Vol.3


具体的なやり方についてはweb上の記事に良いものがいくつかあって、例えばこちらの記事は非常に分かりやすいです。

ということで、色々勉強しながらRで回すところまでやってみようかと思います。

Disclaimer

上記のreferencesしか読んでいないので、間違っているところが沢山ある可能性があります。もし間違っているところを見つけた方は、ぜひぜひツッコミを入れてくだされば幸いですm(_ _)m

続きを読む

p値を計算したくなる検定の数々を試しにStanによるベイジアンモデリングで代替してみた

この記事は、やたらはてブを稼いでしまった前回の記事の続きです。

ASAのプレスリリース及び声明の中には、確かに「p値に依拠しない新たなアプローチの例」として予測値を重視するアプローチ*5、ベイジアンモデリング、決定理論的アプローチ*6およびfalse discovery rate*7といったものを用いるべき、という趣旨のコメントが入っています。とは言え、重回帰分析とか機械学習のような多変量モデリング(なおかつサンプルサイズも大きい)を伴うテーマならともかく、統計学的仮説検定のようなサンプルサイズも小さい(データも少ない)シチュエーションでどうやるんだよ的な疑問を持つ人も多いのではないかと。


そんなわけで、実際にそれっぽい各種検定の数々をStanによるベイジアンモデリングで代替してみたので、この記事ではその結果をつらつら紹介してみようと思います。テーマは前々回のこちらの記事の1節で取り上げた2種。

とりあえず今回はt検定とカイ二乗検定だけ取り上げてみます。ANOVAはそもそも線形回帰モデルで代替可能なので、ここでは割愛しますよということで。

続きを読む