「Rによるモンテカルロ法入門」

本書は,モンテカルロ法の実践的な解説書であり,統計解析ソフトのRを用いた豊富な実例と練習問題が組まれている.モンテカルロ法とは乱数を用いて数値計算を行う手法の総称であり,本書で扱う内容は乱数の発生からモンテカルロ積分,そしてマルコフ連鎖モンテカルロ法(MCMC)の各種アルゴリズムに至るまで非常に幅広い.たいていの解説には理論に実践演習が付随した形となっており,数学的な理論を軸にして実際にRを用いたコード例が示される.

練習問題を解きつつ読書ノートをまとめてみる

そんなこんなで,久保本と並行する形で「Rによるモンテカルロ法入門」を読んでいる.一応MCMCの部分だけひと通り目を通したのだが,最終的にMCMCの実装までひと通りやるにしても一連の流れを簡単にでも追っておかなければと思って,最初の乱数の部分からじっくり読み進めている.これがなかなか難しくて,手も足も出ないところをなんとかRのコードを動かして理解を補っているわけなのだが……取り敢えず練習問題を解ける範囲で解きつつRのコードを書いていこうというこでとはセクションごとに小分けてして,じっくり読書ノートを付けて勉強することにしてみた.

以下に,読書ノートのリンクを書き加えていく

読書ノートまとめ

私的正誤表

  • 全体的な修正点

    • Rのoptimize()関数で最大値を求める際には「max=T」→「maximum=T」を使う.
  • P.143 例題5.1内のコード8行目

    • 「maximum=max=T」→「maximum=T」
  • P.155 例5.7内のコード4行目

    • 「diff > 10-5 」→「dif > 10-5
    • ただしこれは原書でも同様の表記をしている
    • mcsmパッケージのデモスクリプトでは直っている
  • P.171 式(5.12)右辺

    • \max_{\theta}Q(\theta|\hat{\theta}_{(j-1)}\bf{x}) 」→「\max_{\theta}Q(\theta|\hat{\theta}_{(j-1)},\bf{x})
  • P.199 下から10行目のplot()の中

    • 「nsim」→「Nsim」
  • P.200 下から4行目

    • \varepsilon_{ij} \sim N(0,\sigma^2) 」→「\varepsilon_{ij} \sim \mathcal{N}(0,\sigma^2)
    • これは原書でも同様の表記をしている
    • ここでの\mathcal{N} は正規分布,N はサンプルの総数

実行環境

R version 2.15.1 (2012-06-22)

お決まりごと

この読書ノート(上記リンク先を含む)は個人的なメモであって,解答およびコードの正確さや厳密さを保証するものではありません.間違いが多分に含まれている可能性があるので,参考にされる際には十分ご注意下さい.

参考:サンプルコード

CRANのmcsmパッケージに,本書の一部コードのスクリプトがデモとして入っている.

1
2
3
> install.packages("mcsm")
> library(mcsm)
> demo(Chapter.1) # Chapter.8まである

参考:基本的な確率分布の略称

  • 一様分布: \mathcal{U}
  • 指数分布: \mathcal{Exp}
  • カイ二乗分布: \mathcal{\chi^2}
  • ガンマ分布: \mathcal{G}
  • ベータ分布: \mathcal{Be}
  • 正規分布: \mathcal{N}
  • 二項分布: \mathcal{Bin}
  • 負の二項分布: \mathcal{Neg}
  • ポアソン分布(※): \mathcal{P}
  • コーシー分布: \mathcal{C}
  • スチューデントのT分布: \mathcal{T}
  • 二重指数分布(ラプラス分布): \mathcal{L}
  • 逆ガンマ分布 : \mathcal{IG}

(※ \mathcal{P}は場合によって変わる)

参考

公式ページには,番号が奇数の練習問題だけ解答がある.

UseR!の発表スライドっぽい資料.

1章から3章途中までの解説とRのコードがある.