90
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MCMCをフルスクラッチで実装するトレーニング方法

Last updated at Posted at 2021-05-07

はじめに

東京大学・株式会社Nospareの菅澤です.

今回はベイズ統計を用いたデータ分析を実施する上で欠かせないマルコフ連鎖モンテカルロ法(いわゆるMCMC)をフルスクラッチで実装するためのトレーニング方法と,そのための参考書について紹介いたします.
最近ではstanのように,モデルと事前分布を記述するだけで汎用的にMCMCが実行できてしまう環境が整っていますが,

  • そもそもMCMCがどういう流れで動いているのか理解する
  • stanなどの汎用ツールがうまく使えない(orうまく動かない)場面に遭遇したときに自分の手で実装できるようにする

ためには,標準的なモデルでMCMCをフルスクラッチで実際に組んだ経験が重要になってくると思います.

参考書について

トレーニングのために私がオススメするのは以下の本です.

J. Chan, G. Koop, D. J. Poirier, J. L. Tobias 『Bayesian Econometric Methods』

学部レベルの統計学を理解していれば十分に読める内容になっていると思います.(英語の書籍というのが若干ハードルを上げておりますが...)
タイトルに「Econometric」とありますが,必ずしも計量経済的な内容だけ触れられているわけではなく,ベイズ統計学における標準的な内容は全般的にカバーされています.「Econometric」っぽさはパネルモデルやプロビットモデル,トービットモデルといった計量経済学で頻繁に用いられるモデルについて他書と比べて丁寧にカバーされている点でしょうか.

私は院生時代にこの本を輪読する講義を受講し,その資料準備の一環でRによるフルスクラッチの実装をやってみたことでMCMCを実装するノウハウをそれなりに習得することができました.また,実装に限らない理論的な内容(事後分布の解析計算など)も充実しておりますので,実装に主眼を置かない一般的なベイズ統計学の勉強にも適した参考書だと思います.

本書では主に以下の内容について扱われています.

  • 基礎的なベイズ推測
  • 事後推定と事後予測
  • サンプリング手法 (乱数生成法)
  • MCMC (一般論)
  • 線形回帰モデル
  • 階層モデル
  • 潜在変数モデル
  • 混合モデル
  • 時系列モデル (単変量&多変量)
  • 状態空間モデル

また,本書の最大の特徴としては本文の説明が「問題→解説」形式で進められていくことです.
例えば「正規分布モデルの平均・分散パラメータに対する事前分布として正規分布・逆ガンマ分布を用いたベイズ推定」について扱う場合,本書では

「正規分布モデルの平均・分散パラメータに対する事前分布として正規分布・逆ガンマ分布を用いた場合の事後分布を導出せよ」

といった演習問題が出題され,直後にその解説(事後分布の導出)が記述されています.このように,「問題→解答」の形で様々な話題が小分けにされて登場するため「何を目的に何を考えればいいのか」が明確でわかりやすいという印象を受けました.

このような形式が様々な統計モデルにおいても同様に展開されます.例えば後半では「プロビットモデルにおけるギブスサンプリング(MCMCの一種)を導出せよ」といったような問題が登場します.文中では潜在変数を用いた条件付き事後分布が導出されますが,まずはこの導出を自分で考えてみることで,事後分布の形からMCMCアルゴリズムを自力で設計するトレーニングを行うことができます.

本題である「MCMCをフルスクラッチで実装するトレーニングの話」に戻ります.
前述のように,様々なモデルに対してMCMCアルゴリズムを「設計」する問題が本書では多数扱われますので,その際に導出したアルゴリズムをRなどで実装し,シミュレーションデータや本に収録されているデータなどを使って実際に動かしてみることで,座学としての内容だけでなくMCMCを自力で実装する経験も積むことができると思います.このような作業を様々なモデルで繰り返し行うことで,MCMCを実装するノウハウが自然と身につき,新しい統計モデルにおけるMCMCを実装する場面においても何らかの形で対処することができるようになるのではないかと思います.

ちなみにmatlabコードが本のポータルサイトで公開されていますので,matlabユーザーまたはmatlabが読める人は答え合わせをすることができます.

おわりに

今回はMCMCをフルスクラッチで実装するトレーニング方法について紹介しました.

今回紹介した本では,全体的に潜在変数を導入してMCMCを効率化するテクニック(data augmentationとも言いますが)について丁寧に触れられておりまして,個人的にはその部分がとても勉強になった記憶があります.

一方で,本書では医学統計などで頻繁に用いられるロジスティック回帰モデルに関してはほとんど扱われておりません.(計量経済学では二値データに対する回帰モデルとしてはプロビットモデルの方が標準的であることと,ロジスティック回帰はプロビット回帰と異なり潜在変数を用いた簡単なMCMCアルゴリズムが導出できない点が主な理由かもしれません.)

しかし,近年Polya-gamma data augmentationと呼ばれるロジスティック回帰に対する効果的な潜在変数表現が提案され,ベイズ統計学におけるロジスティック回帰への印象が変化しました.このような比較的最近の話題については今回紹介した本ではカバーできていないですが,こちらの記事で紹介しています.

株式会社Nospareでは統計学の様々な分野を専門とする研究者が所属しております.統計アドバイザリーやビジネスデータの分析につきましては株式会社Nospareまでお問い合わせください.

株式会社Nospare

90
114
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?