Successfully reported this slideshow.                                                                         Upcoming SlideShare
×

# モンテカルロサンプリング

12,624 views

Published on

First part shows several methods to sample points from arbitrary distributions. Second part shows application to population genetics to infer population size and divergence time using obtained sequence data.

Published in: Education
• Full Name
Comment goes here.

Are you sure you want to Yes No • Dating direct: ♥♥♥ http://bit.ly/2u6xbL5 ♥♥♥

Are you sure you want to  Yes  No
• Sex in your area is here: ❶❶❶ http://bit.ly/2u6xbL5 ❶❶❶

Are you sure you want to  Yes  No

Are you sure you want to  Yes  No

Are you sure you want to  Yes  No

### モンテカルロサンプリング

1. 1. モンテカルロサンプリング kos59125 [2011-08-27] Nagoya.R#6 © RecycleBin
2. 2. レジュメ• 自己紹介• モンテカルロサンプリングの概要説明• 具体的な方法の紹介 – 直接的方法 – 間接的方法• 集団遺伝学での応用例 © RecycleBin
3. 3. 自己紹介• 専門: 集団遺伝学• 趣味プログラマ• R の位置づけ – DIS ■■□□□□□□□□ LOVE © RecycleBin
4. 4. R コミュニティ活動• Nagoya.R: 発表 4 回 – 今回で 5 回目• Tokyo.R: 発表 1 回• R.NET: コーディネーター – 開発協力者募集中 © RecycleBin
6. 6. モンテカルロ法• 乱数を用いる数値計算法の総称• カジノの街モンテカルロ (Monte Carlo) に由来 – 英語では Monte Carlo method と MC が大文字 Wikimedia Commons より引用 © RecycleBin
7. 7. モンテカルロ法• 計算時間が多項式時間• 得られた結果は必ずしも正しい答えではない – 試行回数を増やすことで精度が上がる © RecycleBin
8. 8. モンテカルロサンプリング• モンテカルロ法を用いて目的とする確率分布から のサンプリングを行う• 使いどころ – 確率分布の理論式が扱いづらい – 確率分布の理論式を知らない © RecycleBin
10. 10. 注意• 本スライドではいくつかのサンプリングアルゴリズム を例示しますが，必ずしも最善の手法を示してい るわけではありません• R には様々な関数やパッケージが用意されている ので，利用できるならそちらを利用しましょう © RecycleBin
12. 12. 戦略• ある分布にしたがう乱数は容易に得られる – 例えば一様分布 U(0, 1)• 得られる乱数を用いて，目的分布からサンプリン グを行う © RecycleBin
13. 13. 変換法• 乱数: z• 変換式: f• f(z) は目的分布にしたがう• サンプリング手順 1. 乱数 z を生成する 2. f(z) を得る © RecycleBin
14. 14. 例題• 指数分布 Exp(1) – 密度関数: exp(–x) © RecycleBin
15. 15. 例題• 指数分布 Exp(1) – 密度関数: exp(–x)• 逆関数法 – 一様乱数 u ~ U(0, 1) – 変換式 f(u) = –ln(1–u) • Exp(1) の累積分布関数: 1 – exp(–x) • u = 1–exp(–x) を x について解くと x = f(u) © RecycleBin
17. 17. Ru <- runif(1000)x <- -log(1 - u) © RecycleBin
19. 19. 利点・欠点利点 欠点• 計算が軽い • 一般に累積分布関数の逆 – 無駄な計算がない 関数を求めることは困難 © RecycleBin
20. 20. 棄却サンプリング法• 目的分布の密度関数: π(x)• 提案分布の密度関数: g(x)• 定数 c が存在してすべての x で π(x) ≦ cg(x) が成り立つ• サンプリング手順 1. x* ~ g(x) および u ~ U(0, 1) を生成 2. u ≦ π(x*)/cg(x*) なら x* を受容，そうでなけ れば棄却して 1 に戻る © RecycleBin
21. 21. 例題• レイリー分布 Rayleigh(1) – 密度関数: π(x) = x exp(–x2/2) © RecycleBin
22. 22. 例題• レイリー分布 Rayleigh(1) – 密度関数: π(x) = x exp(–x2/2)• 提案分布: 指数分布 Exp(1) – 密度関数: g(x) = exp(–x)• 定数: c = max π(x)/g(x) ≒ 2.2 – x = (1+√5)/2 で最大 © RecycleBin
25. 25. Rdrayleigh <- function(x) x * exp(-x*x/2)argmax <- (1+sqrt(5)) / 2k <- drayleigh(argmax) / dexp(argmax)ratio <- function(x) drayleigh(x) / (k * dexp(x))proposal <- rexp(5000)u <- runif(5000)acceptance <- proposal[u <= ratio(proposal)] © RecycleBin
27. 27. 利点・欠点利点 欠点• 実装が容易 • π(x)/cg(x) が小さいと受 容率が低くなり，効率が悪く なる – 分布の端 – 高次元 © RecycleBin
28. 28. マルコフ連鎖モンテカルロ法• マルコフ連鎖 – 直前の状態からのみ，次の状態が定まる• 特定の条件を満たすマルコフ連鎖は，均衡分布 に収束する – 均衡分布が目的分布となるようにマルコフ連鎖を設 計 © RecycleBin
29. 29. マルコフ連鎖モンテカルロ法• 連鎖の設計 – ギブスサンプラー – メトロポリス・ヘイスティング法• サンプリング手順 1. 初期値および連鎖を定める 2. 連鎖からサンプリング • 初期値に依存する最初の何ステップかは棄てる © RecycleBin
30. 30. 例題• 2 変量正規分布 – 平均: (0, 0)，分散: (12, 12)，共分散: 0.7 © RecycleBin
31. 31. 例題• 2 変量正規分布 – 平均: (0, 0)，分散: (12, 12)，共分散: 0.7• ギブスサンプラー – 初期値: (x1, y1) = (–10, –10) – xt ~ N(0.7 yt–1, 12 – 0.72/12) – yt ~ N(0.7 xt, 12 – 0.72/12) – 最初の 500 ステップを棄てて 500 ステップ © RecycleBin
34. 34. Rx <- vector("numeric", 1000)y <- vector("numeric", 1000)x <- -10; y <- -10dev <- sqrt(1^2 - 0.7^2/1^2)for (index in 2:1000) { x[index] <- rnorm(1, 0.7*y[index-1], dev) y[index] <- rnorm(1, 0.7*x[index], dev)}x <- x[-(1:500)]; y <- y[-(1:500)] © RecycleBin
36. 36. 利点・欠点利点 欠点• 高次元に対応可能 • 収束判定が必要 • 並列化が困難 © RecycleBin
37. 37. その他の方法• 重点サンプリング法• 逐次モンテカルロ法 © RecycleBin
39. 39. 戦略• 真の分布からサンプリングを行いたいが，分布に 関する知見が不足している• 真の分布を近似するような分布を見つけ，その分 布からサンプリングを行う © RecycleBin
40. 40. シミュレーション• 目的分布にしたがうサンプルが得られるようなシ ミュレーションを行う• サンプリング手順 1. シミュレーションを行い，結果をサンプリング © RecycleBin
41. 41. 例題• 正規分布 N(0, 12) © RecycleBin
42. 42. 例題• 正規分布 N(0, 12)• 中心極限定理の利用 1. 12 個の一様乱数 u1,..., u12 ~ i.i.d. U(0, 1) • 平均 1/2，分散 1/12 • ū は近似的に N(6, 1/122) にしたがう 2. 合計から 6 を引いた値をサンプリング • 12ū – 6 は近似的に N(0, 12) にしたがう © RecycleBin
43. 43. Rsimulation <- function(...) sum(runif(12)) - 6x <- sapply(vector(length=1000), simulation) © RecycleBin
45. 45. 利点・欠点利点 欠点• 目的分布についての知見が • 計算が重い ほとんどいらない © RecycleBin
46. 46. 近似ベイズ計算• 事後分布 f(θ|D) ∝ P(D|θ)π(θ) において 尤度 P(D|θ) を求めることが困難 – 解析的に求められない – 計算コストが大きすぎる• θ を与えればシミュレーションデータ D’ が容易 に生成できる © RecycleBin
47. 47. 近似ベイズ計算• 尤度をシミュレーションで求める – #(D = D’) / #(試行) – 現実的でない試行回数が必要• データ間距離 ρ(D, D’) が小さければ良い – f(θ|D = D’) を f(θ|ρ(D, D’) ≦ ε) で近似 – 普通は ρ(D, D’) が定義しづらいので D の代わり に適当な統計量 S(D) を用いる © RecycleBin
48. 48. 近似ベイズ計算• サンプリング法 – 棄却サンプリング法 – マルコフ連鎖モンテカルロ法• サンプリング手順 (棄却サンプリング) 1. 事前分布からサンプリング 2. データをシミュレーション (統計値を計算) 3. ρ≦ε なら受容，そうでなければ棄却して 1 に戻る © RecycleBin
49. 49. 例題• 混合正規分布 – 密度関数: 0.5 * φ(–2, 12) + 0.5 * φ(2, 12) © RecycleBin
50. 50. 例題• 混合正規分布 – 密度関数: 0.5 * φ(–2, 12) + 0.5 * φ(2, 12)• 事前分布: N(0, 52)• 距離: |x – μ| – x ~ N(θ, 12) | θ ~ 事前分布 – μ: –2 または 2 を等確率で採択• 許容誤差: 0.01 © RecycleBin
51. 51. Rx <- vector("numeric")while(length(x) < 1000) { n <- 1000 - length(x) prior <- rnorm(n, 0, 5) distance <- abs( rnorm(n, prior) - ifelse(runif(n) <= 0.5, -2, 2) ) x <- c(x, prior[distance <= 0.01])} © RecycleBin
52. 52. R (高速版)x <- vector("numeric")while(length(x) < 1000) { n <- 1000 - length(x) prior <- rnorm(n, 0, 5) distance <- abs( rnorm(n, prior) + 2 + (-2 - 2) * (runif(n) <= 0.5) ) x <- c(x, prior[distance <= 0.01])} © RecycleBin
54. 54. 利点・欠点利点 欠点• 目的分布についての知見が • 上手に設計できないと，受容 ほとんどいらない 率は極端に低い – 特に尤度が不要 • 選んだ距離が解析結果に影 響 © RecycleBin
56. 56. サンプリングの正しさ• コーディングに人為的ミスはつきもの• 統計的検定 – コルモゴロフ・スミルノフ検定 – シミュレーションによる方法 © RecycleBin
57. 57. まとめ• モンテカルロ法を用いて複雑な分布からのサンプ リングが容易にできる• さまざまな方法があるので，自分の目的にあった 手法を選択する © RecycleBin
59. 59. 集団遺伝学• 生物集団 – 単一種の生物個体の集まり• 集団遺伝学 – 集団における遺伝的組成 (対立遺伝子頻度など) の変化を研究する学問領域 © RecycleBin
60. 60. コアレセント理論• すべての対立遺伝子は，単一の祖先対立遺伝 子に由来 : 突然変異現在 過去 © RecycleBin
61. 61. 遺伝的分化• 2 つの集団を比較すると，集団間には遺伝的組 成に違いが観察される © RecycleBin
62. 62. コアレセントシミュレーション• デモグラフィーの歴史を仮定することで，遺伝 データをシミュレーションできる現在 分化 過去 © RecycleBin
63. 63. デモグラフィーの推定• 近似ベイズ計算による推定 – シミュレーションして生成した遺伝データの統計量を 計算して観察データと比較 – パラメーター • 集団内の個体数 (集団サイズ) • 分化時間 • 分集団間の遺伝的交流の程度 (移住) • その他 © RecycleBin