Gibbs sampling [Gibbs采样]
關于Gibbs sampling, 首先看一下Wiki上的解釋:Gibbs sampling or Gibbs sampler is an algorithm to generate a sequence of samples from the joint probability distribution of two or more random variables. The purpose of such a sequence is to approximate the joint distribution, or to compute an integral (such as an expected value).
說到Gibbs Sampling 就不得不說markov chain了。
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) = ∑ai / 9000 (i=1001,1002, … 10000)
這里g_hat, u_hat, b_hat 就是基因效應,環境效應,以及固定效應的估計值
MCMC有很多算法,其中比較流行的是Metropolis-Hastings Algorithm,Gibbs Sampling是Metropolis-Hastings Algorithm的一種特殊情況。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 )
From:link
=============================================
互動百科這么說的:
概率推理的通用方法,是Metropolis-Hastings算法的一個特例,因此也是Markov chain Monte Carlo算法的一種。
雖然它的通用性比較好,但導致了計算代價較高,所以在許多應用里,包括具有不完備信息的應用,都采用其它更為高效的方法。然而,理解這一方法有助于增進對統計推理問題的理解。
中心思想
由一個具有2個或更多變量的聯合概率分布P(x1,x2,…,xn),生成一個樣本序列{y1,y2,…,ym},用于逼近這一個聯合分布,或計算一個積分(例如期望)。
適用于處理不完備信息,當聯合分布不明確,而各個變量的條件分布已知的情況。
根據其他變量的當前值,依次對分布的每個變量生成一個實例。
隨機過程
對一個隨機過程,例如馬爾可夫鏈過程,一般包括一個有限的狀態集合 和 一個概率轉移矩陣。假設這個過程各個各個狀態都是可遍歷的(ergodic),即轉移矩陣中的元素值都大于0。為此,我們可以選擇任意狀態為初始態 Q0,計算轉化N次后可能到達的狀態 Qn 的概率。當N取值足夠大時,可以計算得到這一過程最有可能的終態。
假設有一個變量集合X={X1,X2,……,Xn},P(X)為集合X的聯合分布,0<1。
我們將這些變量看做一個馬爾科夫過程中的狀態集,這一過程定義為:S=∏i=1~n
from:http://www.shamoxia.com/html/y2010/1516.html
總結
以上是生活随笔為你收集整理的Gibbs sampling [Gibbs采样]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么读博士以及有什么意义
- 下一篇: 一个Email保护的小工具