gibbs抽樣方法學習筆記


  Gibbs抽樣方法是 Markov Chain Monte Carlo(MCMC)方法的一種,也是應用最為廣泛的一種。wikipedia稱gibbs抽樣為

  In statistics and in statistical physicsGibbs sampling or a Gibbs sampler is a Markov chain Monte Carlo (MCMC) algorithm for obtaining a sequence of observations which are approximately from a specified 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={ a1,a2 … ai, ai+1,… at }

    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{a1,a2 … ai, ai+1,… at }具有如下性質:當t 很大時,比如10000,那么at ~ π(a),這樣的話如果我們產生一個markov chain:{a1,a2 … ai, ai+1,… a10000},那么我們取后面9000個樣本的平均

  a_hat = (g_hat,u_hat,b_hat) = ∑a/ 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 {a1,a2 … ai, ai+1,… at}

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM