馬爾科夫鏈與吉布斯抽樣

2021-06-21 00:18:26 字數 1937 閱讀 5733

gibbs抽樣方法是 markov chain monte carlo(mcmc)方法的一種,也是應用最為廣泛的一種。wikipedia稱gibbs抽樣為

in statistics

and in 

statistical physics

,gibbs samplingor agibbs sampleris a 

markov chain monte carlo

(mcmc) 

algorithm

multivariate

probability distribution

(i.e. from the 

joint probability distribution

of two or more 

random variables

), when direct sampling is difficult.

意思是,在統計學和統計物理學中,gibbs抽樣是馬爾可夫鏈蒙特卡爾理論(mcmc)中用來獲取一系列近似等於指定多維概率分布(比如2個或者多個隨即變數的聯合概率分布)觀察樣本的演算法。

mcmc是用於構建

markov chain隨機概率分布的抽樣的一類演算法。mcmc有很多演算法,其中比較流行的是metropolis-hastings algorithm,gibbs sampling是metropolis-hastings algorithm的一種特殊情況。

markov chain 是一組事件的集合,在這個集合中,事件是乙個接乙個發生的,並且下乙個事件的發生,只由當前發生的事件決定。用數學符號表示就是:

a=p(ai+1| a1,a2,…ai) = p(ai+1| ai)

這裡的ai不一定是乙個數字,它有可能是乙個向量,或者乙個矩陣,例如我們比較感興趣的問題裡ai=(g, u, b)這裡g表示基因的效應,u表示環境效應,b表示固定效應,假設我們研究的乙個群體,g,u,b的聯合分布用π(a)表示。事實上,我們研究qtl,就是要找到π(a),但是有時候π(a)並不是那麼好找的,特別是我們要估計的a的引數的個數多於研究的個體數的時候。用一般的least square往往效果不是那麼好。

解決方案:

用一種叫markov chain monte carlo (mcmc)的方法產生markov chain,產生的markov chain具有如下性質:當t 很大時,比如10000,那麼at ~ π(a),這樣的話如果我們產生乙個markov chain:,那麼我們取後面9000個樣本的平均

a_hat = (g_hat,u_hat,b_hat) = ∑ai / 9000 (i=1001,1002, … 10000)

這裡g_hat, u_hat, b_hat 就是基因效應,環境效應,以及固定效應的估計值

mcmc演算法的關鍵是兩個函式:

1)    q(ai, ai+1),這個函式決定怎麼基於ai得到ai+1

2)    α(ai, ai+1),這個函式決定得到的ai+1是否保留

目的是使得at的分布收斂於π(a)

gibbs sampling的演算法:

一般來說我們通常不知道π(a),但我們可以得到p(g | u , b),p(u | g , b), p ( b | g, u )即三個變數的posterior distribution

step1: 給g, u, b 賦初始值:(g0,u0,b0)

step2: 利用p (g | u0, b0) 產生g1

step3: 利用p (u | g1, b0) 產生u1

step4: 利用p (b | g1, u1) 產生b1

step5: 重複step2~step5 這樣我們就可以得到乙個markov chain

這裡的q(ai, ai+1)= p(g | u , b)* p(u | g , b)* p ( b | g, u )

分類: 

其他, 

lda

從馬爾科夫鏈到吉布斯取樣與PageRank

馬爾科夫鏈表示state的鏈式關係,下乙個state只跟上乙個state有關。吉布斯取樣通過取樣條件概率分布得到的樣本點,近似估計概率分布p z pagerank通過節點間的連線,估計節點的重要程度 r 吉布斯取樣中,state代表不同的樣本點,state的分布就是p z pagerank中,sta...

馬爾科夫鏈

馬爾科夫鏈,是數學中具有馬爾科夫性質的離散事件隨機過程。該過程中,在給定當前知識和資訊的情況下,過去 即當前以前的歷史狀態 對於 將來 即當前以後的未來狀態 是無關的 一 馬爾科夫性質 原理簡潔 x1,x2,x3 馬爾科夫鏈 描述了乙個狀態序列,其每個狀態值取決於前面有限個狀態。馬爾科夫鏈是具有馬爾...

馬爾科夫鏈

x 0,x 1,x n n 表示時間,如果 x 0,x n 都是獨立的,那麼這個假設限制性太大,不能對現實世界建模。而如果 x 0,x n 彼此可以任意互動影響,那麼模型太難計算。馬爾科夫鏈是單步影響 one step dependence 的序列,乙個折中的假設。馬爾科夫鏈存在時間和空間中,x n...