51
近似ベイズ計算による カジュアルなベイズ推定 kos59125 [2011-09-24] Tokyo.R#17

近似ベイズ計算によるベイズ推定

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

Page 1: 近似ベイズ計算によるベイズ推定

近似ベイズ計算によるカジュアルなベイズ推定

kos59125

[2011-09-24] Tokyo.R#17

Page 2: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 3: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 4: 近似ベイズ計算によるベイズ推定

• Twitter ID: kos59125• Rとの出会い: 7年半くらい前

Page 5: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 6: 近似ベイズ計算によるベイズ推定

.ベイズ確率...その事象が起こるだろうという観察者の信念の度合い

Page 7: 近似ベイズ計算によるベイズ推定

観察データを得ることで,事象が起こるであろうという信念は変化する.ベイズの定理..

.

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)と書ける。

Page 8: 近似ベイズ計算によるベイズ推定

.例題..

.

正規分布 N(µ, 52)にしたがう 3つの乱数

4.7, 11.9, 13.4

を得た。事前分布 π(µ)を正規分布 N(0, 102),すなわち

π(µ) =1√

2π · 10exp

(−µ2

2 · 102

)として µの事後分布を求めよう。

Page 9: 近似ベイズ計算によるベイズ推定

尤度を計算する

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

)

Page 10: 近似ベイズ計算によるベイズ推定

ベイズの定理から事後分布を求める

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

Page 11: 近似ベイズ計算によるベイズ推定

.例題..

.

正規分布 N(µ, 52)にしたがう 3つの乱数

4.7, 11.9, 13.4

を得た。事前分布 π(µ)を正規分布 N(0, 102),すなわち

π(µ) =1√

2π · 10exp

(−µ2

2 · 102

)として µの事後分布を求めよう。

.答え..

.正規分布 N

(12013,

10013

)

Page 12: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

ベイズ推定

µ

確率密度

事前分布事後分布

Page 13: 近似ベイズ計算によるベイズ推定

尤度計算が面倒くさい!• モデルが複雑になってくると尤度の計算はキツい• 別に理論式を求める必要なんてない (大体の分布がわかれば事足りる)

• 頭を使わずにカジュアルにベイズ推定がしたい

Page 14: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 15: 近似ベイズ計算によるベイズ推定

.近似ベイズ計算 (Approximate Bayesian Computation,ABC)..

.

• 尤度を直接計算せずに,近似することで複雑な計算を回避

• 近似事後分布からのサンプリングを行う

Page 16: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 17: 近似ベイズ計算によるベイズ推定

.カーネル密度推定 (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)

Page 18: 近似ベイズ計算によるベイズ推定

.尤度関数の推定 (1)..

.

パタメーター θ による n 個のシミュレーションデータD′1, . . . ,D′n を用いて尤度 P(D|θ) は,距離 ρ および正の定数 ϵを与えると

P(D|θ) ∝θ

1n

n∑j=1

I(ρ(D,D′j) ≤ ϵ)

で推定される。ただし I(X)は Xが真であるときに 1,それ以外の場合に 0である。

ϵ→∞のとき事後分布と事前分布は等しくなる

Page 19: 近似ベイズ計算によるベイズ推定

.尤度関数の推定 (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を十分説明するようなものを選ぶ。

Page 20: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 21: 近似ベイズ計算によるベイズ推定

.棄却サンプリング法 (without ABC)..

.

..1 θを事前分布 π(·)から生成

..2 θを確率 P(D|θ)で受容a

..3 1に戻るamaxθP(D|θ) ≤ cであるような任意の定数 cを用いて確率

P(D|θ)/cで受容しても良い。

1cP(D|θ) =

f (θ|D)cP(D)

π(θ)≤ 1

Page 22: 近似ベイズ計算によるベイズ推定

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])}

Page 23: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

棄却サンプリング (without ABC)

µ

確率密度

事前分布事後分布モンテカルロ

Page 24: 近似ベイズ計算によるベイズ推定

.棄却サンプリング法 (with ABC)..

.

..1 θを事前分布 π(·)から生成

..2 θから D′ をシミュレーション

..3 ρ(S(D),S(D′)) ≤ ϵならば θを受容,そうでなければ棄却

..4 1に戻る

Page 25: 近似ベイズ計算によるベイズ推定

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])}

Page 26: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

棄却サンプリング (with ABC)

µ

確率密度

事前分布事後分布モンテカルロ

Page 27: 近似ベイズ計算によるベイズ推定

.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|θ) π(θ)

Page 28: 近似ベイズ計算によるベイズ推定

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をとって計算することが多い

Page 29: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

MCMC (without ABC)

µ

確率密度

事前分布事後分布モンテカルロ

Page 30: 近似ベイズ計算によるベイズ推定

.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 の時も同様で,上記のマルコフ連鎖は詳細釣り合い条件を満たす。

Page 31: 近似ベイズ計算によるベイズ推定

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をとって計算することが多い

Page 32: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

MCMC (with ABC)

µ

確率密度

事前分布事後分布モンテカルロ

Page 33: 近似ベイズ計算によるベイズ推定

許容限界 ϵを厳しく設定することで効率は悪くなる• 後から決定• 単調減少させて事後分布を校正

Page 34: 近似ベイズ計算によるベイズ推定

.棄却サンプリング法 (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)))とした場合と同等

Page 35: 近似ベイズ計算によるベイズ推定

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]]

Page 36: 近似ベイズ計算によるベイズ推定

-10 -5 0 5 10 15 20

0.00

0.05

0.10

0.15

棄却サンプリング (with ABC 改)

µ

確率密度

事前分布事後分布モンテカルロ

Page 37: 近似ベイズ計算によるベイズ推定

近似ベイズ計算は幅広く利用可能• 回帰モデル• 分類モデル• 時系列解析• モデル選択

Page 38: 近似ベイズ計算によるベイズ推定

CRANに abcというパッケージがある→棄却サンプリング,局所線形回帰,ニューラルネットワークが使えるらしい

Page 39: 近似ベイズ計算によるベイズ推定

目次

..1 自己紹介

..2 ベイズ推定

..3 近似ベイズ計算尤度の近似解モンテカルロサンプリング

..4 集団遺伝学での事例

Page 40: 近似ベイズ計算によるベイズ推定

.生物集団...単一種の生物個体の集まり

.集団遺伝学..

.集団における遺伝的組成 (対立遺伝子頻度など) の変化を研究する学問領域

Page 41: 近似ベイズ計算によるベイズ推定

.コアレセント理論...すべての対立遺伝子は,単一の祖先対立遺伝子に由来

: 突然変異

現在 過去

Page 42: 近似ベイズ計算によるベイズ推定

.コアレセント時間..

.

サイズa N の集団内において,中立な k個の対立遺伝子がはじめてコアレセントイベントを経験するまでの世代数は,

指数分布 EXP(

k(k − 1)2N

)にしたがう。

a集団内に含まれる対立遺伝子の数 (個体数ではない)。

Page 43: 近似ベイズ計算によるベイズ推定

.突然変異..

.

コアレセント系図の枝中に起こる突然変異の数は

ポアソン分布 POIS(Lµ)

にしたがう。ただし, L は枝の長さ (世代時間単位), µ は世代あたり突然変異率。

Page 44: 近似ベイズ計算によるベイズ推定

現在 過去分化

• 現実世界は複雑⇒必然的にモデルも複雑に⇒尤度とか考えたくない

• モデルが決まっていればシミュレーションは容易

Page 45: 近似ベイズ計算によるベイズ推定

.例題..

.

2 倍体生物の Hana mogeraa は 2 つの集団に分化が認められている。集団間の移住はないものとして,集団サイズb (現在の 2つの集団および分化前の祖先集団)と分化時間を推定しよう。ただし以下のことを既知とする。• 集団 1のサイズ N は 400,000未満• 集団 2のサイズ rN は集団 1の 2倍未満• 祖先集団のサイズ aN は現在の集団 1のサイズの 5倍未満

• 分化時間 (T; 4N 世代時間)は 2未満a架空の生物。b個体数。

Page 46: 近似ベイズ計算によるベイズ推定

T

2N

2rN

2aN

0

集団 1

集団 2

N ∼ U(0, 400000)r ∼ U(0, 2)a ∼ U(0, 5)T ∼ U(0, 2)

Page 47: 近似ベイズ計算によるベイズ推定

• 遺伝実験により自然選択に対して中立な 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)としてシミュレーションによりデータを生成した。

Page 48: 近似ベイズ計算によるベイズ推定

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

分化時間

世代

確率密度

Page 49: 近似ベイズ計算によるベイズ推定

集団サイズ比

集団 2

祖先集団

0.00 0.05 0.10 0.15 0.20 0.25

01

23

45

Page 50: 近似ベイズ計算によるベイズ推定

まとめ

• モデルが複雑になると尤度計算は複雑になる• モデルがあればデータのシミュレーションは可能• 近似ベイズ計算を用いることで,複雑な尤度計算を回避できる

Page 51: 近似ベイズ計算によるベイズ推定

参考文献

[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.