Upload
kosei-abe
View
6.250
Download
6
Embed Size (px)
DESCRIPTION
Likelihood is sometimes difficult to compute because of the complexity of the model. Approximate Bayesian computation (ABC) makes it easy to sample parameters generating approximation of observed data.
Citation preview
近似ベイズ計算によるカジュアルなベイズ推定
kos59125
[2011-09-24] Tokyo.R#17
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
• Twitter ID: kos59125• Rとの出会い: 7年半くらい前
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
.ベイズ確率...その事象が起こるだろうという観察者の信念の度合い
観察データを得ることで,事象が起こるであろうという信念は変化する.ベイズの定理..
.
f (θ|D) =P(D|θ) π(θ)P(D)
∝ P(D|θ) π(θ)
• 事前分布 π(θ): 観測者がデータ Dを観測する前に考えているパラメーター θの確率分布
• 尤度 P(D|θ): 観測データ Dがパラメーター θに起因する確率
• 事後分布 f (θ|D): データ Dを観測したことにより変化したパラメーター θの確率分布
「∝」は比例関係を表す記号。すべての xで f (x) = cg(x)を満たす定数 cが存在するとき f (x) ∝ g(x)と書ける。
.例題..
.
正規分布 N(µ, 52)にしたがう 3つの乱数
4.7, 11.9, 13.4
を得た。事前分布 π(µ)を正規分布 N(0, 102),すなわち
π(µ) =1√
2π · 10exp
(−µ2
2 · 102
)として µの事後分布を求めよう。
尤度を計算する
P(D|µ) =1√
2π · 5exp
(−
(4.7 − µ)2
2 · 52
)× 1√
2π · 5exp
(−
(11.9 − µ)2
2 · 52
)× 1√
2π · 5exp
(−
(13.4 − µ)2
2 · 52
)∝ exp
(−
(4.7 − µ)2 + (11.9 − µ)2 + (13.4 − µ)2
2 · 52
)= exp
(−
3µ2 − 60µ + (4.72 + 11.92 + 13.42)2 · 52
)∝ exp
(−
3µ2 − 60µ2 · 52
)
ベイズの定理から事後分布を求める
f (µ|D) ∝ P(D|µ) π(µ)
∝ exp(−
3µ2 − 60µ2 · 52
)exp
(−µ2
2 · 102
)= exp
−(µ − 120/13
)2 − (120/13)2
2 · 100/13
∝ 1√
2π ·√
100/13exp
−(µ − 120/13
)2
2 · 100/13
.例題..
.
正規分布 N(µ, 52)にしたがう 3つの乱数
4.7, 11.9, 13.4
を得た。事前分布 π(µ)を正規分布 N(0, 102),すなわち
π(µ) =1√
2π · 10exp
(−µ2
2 · 102
)として µの事後分布を求めよう。
.答え..
.正規分布 N
(12013,
10013
)
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
ベイズ推定
µ
確率密度
事前分布事後分布
尤度計算が面倒くさい!• モデルが複雑になってくると尤度の計算はキツい• 別に理論式を求める必要なんてない (大体の分布がわかれば事足りる)
• 頭を使わずにカジュアルにベイズ推定がしたい
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
.近似ベイズ計算 (Approximate Bayesian Computation,ABC)..
.
• 尤度を直接計算せずに,近似することで複雑な計算を回避
• 近似事後分布からのサンプリングを行う
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
.カーネル密度推定 (Rectangular Kernel)..
.
n個の標本 x1, . . . , xn はそれぞれ独立に確率密度関数が f (x)であるような確率分布にしたがうものとする。このとき f (x)は,バンド幅 hを与えると
f (x) =1
2nh
n∑j=1
I(|x − x j| ≤ h)
で推定される。ただし I(X)は Xが真であるときに 1,それ以外の場合に 0である。
fh(x) ≡ F(x + h) − F(x − h)2h
=1
2hP(x − h < X ≤ x + h)
.尤度関数の推定 (1)..
.
パタメーター θ による n 個のシミュレーションデータD′1, . . . ,D′n を用いて尤度 P(D|θ) は,距離 ρ および正の定数 ϵを与えると
P(D|θ) ∝θ
1n
n∑j=1
I(ρ(D,D′j) ≤ ϵ)
で推定される。ただし I(X)は Xが真であるときに 1,それ以外の場合に 0である。
ϵ→∞のとき事後分布と事前分布は等しくなる
.尤度関数の推定 (2)..
.
パタメーター θ による n 個のシミュレーションデータD′1, . . . ,D′n を用いて尤度 P(D|θ) は,統計量 Sa と距離 ρおよび正の定数 ϵを与えると
P(D|θ) ∝θ
1n
n∑j=1
I(ρ(S(D),S(D′j)) ≤ ϵ)
で推定される。ただし I(X)は Xが真であるときに 1,それ以外の場合に 0である。
a統計量 Sはデータ Dを十分説明するようなものを選ぶ。
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
.棄却サンプリング法 (without ABC)..
.
..1 θを事前分布 π(·)から生成
..2 θを確率 P(D|θ)で受容a
..3 1に戻るamaxθP(D|θ) ≤ cであるような任意の定数 cを用いて確率
P(D|θ)/cで受容しても良い。
1cP(D|θ) =
f (θ|D)cP(D)
π(θ)≤ 1
likelihood <- (function(data) { L <- function(m) prod(dnorm(data, m, 5)) function(mu) sapply(mu, L)})(observed)ML <- likelihood(mean(observed))
posterior <- numeric()while ((n <- N - length(posterior)) > 0) { theta <- rprior(n) posterior <- c(posterior, theta[runif(n) <= likelihood(theta)/ML])}
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
棄却サンプリング (without ABC)
µ
確率密度
事前分布事後分布モンテカルロ
.棄却サンプリング法 (with ABC)..
.
..1 θを事前分布 π(·)から生成
..2 θから D′ をシミュレーション
..3 ρ(S(D),S(D′)) ≤ ϵならば θを受容,そうでなければ棄却
..4 1に戻る
distance <- (function(data) function(mu) { S <- function(m) mean(rnorm(length(data), m, 5)) abs((mean(data) - sapply(mu, S)) / mean(data)) })(observed)
posterior <- numeric("numeric")while ((n <- N - length(posterior)) > 0) { theta <- rprior(n) posterior <- c(posterior, theta[distance(theta) <= TOLERANCE])}
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
棄却サンプリング (with ABC)
µ
確率密度
事前分布事後分布モンテカルロ
.MCMC (M-H algorithm without ABC)..
.
..1 θ′ を提案分布 q(θ→ θ′)にしたがって生成
..2 確率 min{
1,P(D|θ′) π(θ′) q(θ′ → θ)P(D|θ) π(θ) q(θ→ θ′)
}で θ′ に移動
..3 1に戻る
f (θ′|D)f (θ|D)
=
P(D|θ′) π(θ′)P(D)
P(D|θ) π(θ)P(D)
=P(D|θ′) π(θ′)P(D|θ) π(θ)
likelihood <- (function(data) { L <- function(m) prod(dnorm(data, m, 5)) function(mu) sapply(mu, L)})(observed)ratio <- function(mu1, mu2) (likelihood(mu2) /likelihood(mu1)) * (dprior(mu2) / dprior(mu1)) * (dtransition(mu2, mu1) / dtransition(mu1, mu2))
chain <- numeric(N)chain[1] <- rprior(1)t <- 1; while (t < length(chain)) { proposal <- rtransition(chain[t]) probability <- min(1, ratio(chain[t], proposal)) if (runif(1) <= probability) { chain[t + 1] <- proposal t <- t + 1 }}
※遷移確率の計算 (コード中の ratio)は,計算の桁落ちを防ぐためにlogをとって計算することが多い
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
MCMC (without ABC)
µ
確率密度
事前分布事後分布モンテカルロ
.MCMC (M-H algorithm with ABC)..
.
..1 θ′ を提案分布 q(θ→ θ′)にしたがって生成
..2 θ′ から D′ をシミュレーション
..3 ρ(S(D),S(D′)) > ϵならば 1に戻る
..4 確率 α(θ→ θ′) = min{
1,π(θ′) q(θ′ → θ)π(θ) q(θ→ θ′)
}で θ′ に
移動..5 1に戻る
α(θ→ θ′) = π(θ′) q(θ′→θ)π(θ) q(θ→θ′) (≤ 1)の時
f (θ|ρ ≤ ϵ) q(θ→ θ′) P(ρ ≤ ϵ|θ′) α(θ→ θ′)
=P(ρ ≤ ϵ|θ)π(θ)P(ρ ≤ ϵ) q(θ→ θ′) P(ρ ≤ ϵ|θ′) π(θ′) q(θ′ → θ)
π(θ) q(θ→ θ′)= f (θ′|ρ ≤ ϵ) q(θ′ → θ) P(ρ ≤ ϵ|θ) α(θ′ → θ) (∵ α(θ′ → θ) = 1)
α(θ→ θ′) = 1 の時も同様で,上記のマルコフ連鎖は詳細釣り合い条件を満たす。
distance <- (function(data) function(mu) { S <- function(m) mean(rnorm(length(data), m, 5)) abs((mean(data) - sapply(mu, S)) / mean(data)) })(observed)ratio <- function(mu1, mu2) (dprior(mu2) / dprior(mu1)) * (dtransition(mu2, mu1) / dtransition(mu1, mu2))
chain <- numeric(N)while (distance(chain[1] <- rprior(1)) > TOLERANCE) {}t <- 1; while (t < length(chain)) { proposal <- rtransition(chain[t]) if (distance(proposal) <= TOLERANCE) { probability <- min(1, ratio(chain[t], proposal)) if (runif(1) <= probability) { chain[t + 1] <- proposal t <- t + 1 } } }
※遷移確率の計算 (コード中の ratio)は,計算の桁落ちを防ぐためにlogをとって計算することが多い
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
MCMC (with ABC)
µ
確率密度
事前分布事後分布モンテカルロ
許容限界 ϵを厳しく設定することで効率は悪くなる• 後から決定• 単調減少させて事後分布を校正
.棄却サンプリング法 (with ABC)改..
.
..1 θ1, . . . , θkN(k > 1)を独立に事前分布 π(·)から生成
..2 θi から D′i をシミュレーション
..3 ρ(S(D),S(D′i))を小さい順に並び替える
..4 並び替えた添字が (1), . . . , (kN)として {θ(1), . . . , θ(N)}を受容
前述の棄却サンプリング法において ϵ = ρ(S(D), S(D′(N)))とした場合と同等
distance <- (function(data) function(mu) { S <- function(m) mean(rnorm(length(data), m, 5)) abs((mean(data) - sapply(mu, S)) / mean(data)) })(observed)
prior <- rprior(k * N)sortedDistance <- sort(distance(prior), index.return=TRUE)posterior <- prior[sortedDistance$ix[1:N]]
-10 -5 0 5 10 15 20
0.00
0.05
0.10
0.15
棄却サンプリング (with ABC 改)
µ
確率密度
事前分布事後分布モンテカルロ
近似ベイズ計算は幅広く利用可能• 回帰モデル• 分類モデル• 時系列解析• モデル選択
CRANに abcというパッケージがある→棄却サンプリング,局所線形回帰,ニューラルネットワークが使えるらしい
目次
..1 自己紹介
..2 ベイズ推定
..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング
..4 集団遺伝学での事例
.生物集団...単一種の生物個体の集まり
.集団遺伝学..
.集団における遺伝的組成 (対立遺伝子頻度など) の変化を研究する学問領域
.コアレセント理論...すべての対立遺伝子は,単一の祖先対立遺伝子に由来
: 突然変異
現在 過去
.コアレセント時間..
.
サイズa N の集団内において,中立な k個の対立遺伝子がはじめてコアレセントイベントを経験するまでの世代数は,
指数分布 EXP(
k(k − 1)2N
)にしたがう。
a集団内に含まれる対立遺伝子の数 (個体数ではない)。
.突然変異..
.
コアレセント系図の枝中に起こる突然変異の数は
ポアソン分布 POIS(Lµ)
にしたがう。ただし, L は枝の長さ (世代時間単位), µ は世代あたり突然変異率。
現在 過去分化
• 現実世界は複雑⇒必然的にモデルも複雑に⇒尤度とか考えたくない
• モデルが決まっていればシミュレーションは容易
.例題..
.
2 倍体生物の Hana mogeraa は 2 つの集団に分化が認められている。集団間の移住はないものとして,集団サイズb (現在の 2つの集団および分化前の祖先集団)と分化時間を推定しよう。ただし以下のことを既知とする。• 集団 1のサイズ N は 400,000未満• 集団 2のサイズ rN は集団 1の 2倍未満• 祖先集団のサイズ aN は現在の集団 1のサイズの 5倍未満
• 分化時間 (T; 4N 世代時間)は 2未満a架空の生物。b個体数。
T
2N
2rN
2aN
0
集団 1
集団 2
N ∼ U(0, 400000)r ∼ U(0, 2)a ∼ U(0, 5)T ∼ U(0, 2)
• 遺伝実験により自然選択に対して中立な 30遺伝子座の塩基配列を取得1
• 遺伝子座あたりの突然変異率は 10−5 で既知• 遺伝子座につき各集団 20配列ずつ
• 集団ごとに,遺伝子座ごとに算出した多型サイト数 Sおよび平均塩基相違数 kの平均値を近似ベイズ計算に使用
(S1, k1,S2, k2) = (15.4, 2.9, 8.9, 0.3)
1架空の生物を扱っているため実際のデータは存在しない。そこで(N, r, a,T) = (80000, 0.1, 3.0, 0.1)としてシミュレーションによりデータを生成した。
20000 40000 60000 80000 100000 120000
0.0e+001.0e-052.0e-053.0e-05
集団 1
集団サイズ
確率密度
0 5000 10000 15000
0.00000
0.00010
0.00020
集団 2
集団サイズ
確率密度
0e+00 1e+05 2e+05 3e+05 4e+05
0e+00
2e-06
4e-06
6e-06
祖先集団
集団サイズ
確率密度
0e+00 2e+05 4e+05 6e+05 8e+05
0.0e+00
1.0e-06
2.0e-06
3.0e-06
分化時間
世代
確率密度
集団サイズ比
集団 2
祖先集団
0.00 0.05 0.10 0.15 0.20 0.25
01
23
45
まとめ
• モデルが複雑になると尤度計算は複雑になる• モデルがあればデータのシミュレーションは可能• 近似ベイズ計算を用いることで,複雑な尤度計算を回避できる
参考文献
[1] Marjoram P, Molitor J, Plagnol V, and Tavare S (2003)Markov chain Monte Carlo without likelihoods. PNAS,100: 15324–15328.
[2] 大森裕浩 (2001)マルコフ連鎖モンテカルロ法の最近の展開.日本統計学会誌, 31: 305–344.
[3] 大森裕浩 (2005)マルコフ連鎖モンテカルロ法の基礎と統計科学への応用.統計科学のフロンティア, 12: 甘利俊一・竹内啓・竹村彰通・伊庭幸人編『計算統計 IIマルコフ連鎖モンテカルロ法とその周辺』 (岩波書店)pp.153–211.
[4] Robert CP (2010) MCMC and Likelihood-freeMethods. SlideShare.