Bayesian

了解 MCMC:替代方案是什麼?

  • November 6, 2017

第一次學習貝葉斯統計;作為理解 MCMC 的一個角度,我想知道:它是在做一些根本無法以其他方式完成的事情,還是只是做一些比其他方法更有效的事情?

舉例來說,假設我們正在嘗試計算給定數據的參數的概率給定一個計算相反的模型,. 為了直接用貝葉斯定理計算,我們需要分母正如這裡指出的那樣。但是我們可以通過積分來計算嗎,比如:

p_d = 0.
for x in range(xmin,xmax,dx):
   for y in range(ymin,ymax,dy):
       for z in range(zmin,zmax,dz):
           p_d_given_x_y_z = cdf(model(x,y,z),d)
           p_d += p_d_given_x_y_z * dx * dy * dz

這會起作用(儘管變量數量較多時效率很低)還是有其他原因會導致這種方法失敗?

您正在描述後驗的網格近似,這是一種有效的方法,儘管不是最流行的。在很多情況下,可以分析計算後驗分佈。蒙特卡洛馬爾可夫鍊或其他近似方法是獲取後驗分佈樣本的方法,有時在無法找到解析解時有效。

可以找到的分析解決方案通常是“共軛”系列的情況,您可以通過谷歌搜索找到更多相關信息,例如https://en.wikipedia.org/wiki/Conjugate_prior

作為第一個示例,如果您的先驗在 上p是一致的[0, 1],其中p是簡單二項式實驗中的成功參數,則後驗等於 Beta 分佈。在這種情況下,可以顯式地進行積分或求和。

如果您有有限多個參數選擇,或者您在示例中使用網格近似,則可能只需要一個簡單的求和。但是,如果您有幾個變量並且想要使用密集網格,那麼計算的數量可能會迅速爆炸。

有幾種從後驗採樣的算法。Hamiltonian Monte Carlo,特別是 NUTS 採樣器,現在很流行並在stan和中使用PyMC3,Metropolis Hastings 是經典之作。變分推理是一個相對較新的方法,實際上不是一種抽樣方法,而是一種獲得近似值的不同方法。目前,包括分析解決方案在內的任何方法都不是最好的,它們在特定情況下都可以很好地工作。

引用自:https://stats.stackexchange.com/questions/312217

comments powered by Disqus