拓端tecdat|python貝葉斯隨機(jī)過程:馬爾可夫鏈Markov-Chain,MC和Metropolis-Hasting
原文鏈接:http://tecdat.cn/?p=25428
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
介紹
本文,我們說明了貝葉斯學(xué)習(xí)和?計(jì)算統(tǒng)計(jì)一些結(jié)果。
from math import pi
from pylab import *
馬爾可夫鏈的不變測度
考慮一個(gè)高斯 AR(1) 過程,?

, 其中?

?是標(biāo)準(zhǔn)高斯隨機(jī)變量的獨(dú)立同分布序列,獨(dú)立于?

。假使?

.。然后,具有均值的高斯分布?

?和方差?

?是馬爾可夫鏈的平穩(wěn)分布。我們用馬爾可夫鏈的單個(gè)軌跡所取值的直方圖來檢查這個(gè)屬性。
f=lambda x,m,sq: np.exp(-(x-m)**2/(2*sq))/np.sqrt(2*pi*sq)
plt.hist

第二個(gè)例子
我們?cè)谶@里考慮一個(gè)馬爾可夫鏈的例子,它的狀態(tài)空間?

?是開單位區(qū)間。如果鏈條在?

,它等概率?

?選擇兩個(gè)區(qū)間之一?

?或者?

?,然后移動(dòng)到一個(gè)點(diǎn),?

?它均勻分布在選定的區(qū)間內(nèi)。馬爾可夫鏈的不變分布有 cdf,?

。 通過微分,我們可以得到相關(guān)的密度:?

?。對(duì)所有?

, 我們現(xiàn)在用馬爾可夫鏈取值的直方圖檢查這個(gè)屬性。
x=arange(1,m)/m
for i in range(p-1):
[a,b]=rand(2)
plt.hist

我們還可以說明直方圖如何收斂到平穩(wěn)分布的密度。這可以通過使用 matplotlib 中的“動(dòng)畫”模塊的動(dòng)態(tài)動(dòng)畫來完成。下面是python代碼。
anm = animation.FuncAnimation
以這個(gè)例子結(jié)束,這是一個(gè)動(dòng)畫。
data = []
for i in range(p-1):
[a,b]=npr.rand(2
if ((i+1)%100==0):
data.append
anim = animation.Func
我們現(xiàn)在用一個(gè)例子來說明大數(shù)定律。如?

。 那么,我們期望?

,

x=np.arange/(p)
for i in range(p-1):
[a,b]=npr.rand
m=np.cumsum(g(m))/np.arange(1,p+1)
plot
對(duì)稱隨機(jī)游走 Metropolis Hasting 算法
我們現(xiàn)在考慮一個(gè)目標(biāo)分布,它是兩個(gè)高斯分布的混合,一個(gè)集中在?
?,另一個(gè)集中在?
。
?
?是中心標(biāo)準(zhǔn)正態(tài)分布的密度。
為了針對(duì)此分布,我們根據(jù)對(duì)稱隨機(jī)游走 Metropolis Hasting 算法進(jìn)行采樣。當(dāng)鏈條處于狀態(tài)時(shí)?
,我們提出一個(gè)候選?
, 根據(jù)?
?,其中?
?。然后我們接受?
?,有概率?
, 其中?
. 否則,?
.
from IPython.display import HTML
rc('animation', html='jshtml')
ani
獨(dú)立Metropolis Hasting 算法
我們?cè)俅慰紤]一個(gè)目標(biāo)分布,它是兩個(gè)高斯分布的混合,一個(gè)集中在?

?,另一個(gè)集中在?

,

,其中?

?是中心標(biāo)準(zhǔn)正態(tài)分布的密度。
為了針對(duì)這種分布,我們根據(jù)具有獨(dú)立提議的 Metropolis Hasting 算法進(jìn)行采樣。當(dāng)鏈條處于狀態(tài)時(shí)?

,我們提出一個(gè)候選?

?,根據(jù)?

?,其中?

?。然后我們接受?

?有概率?

, 其中?

?和?

?是密度?

.。否則,?

.。
mc=npr.randn*np.one
data=[]
for i in range:
v=sig*npr+sft
alpha
if (npr.rand()<alpha):
mc[i+1] = v
if ((i+1)%r==0):
data.append
x=np.linspac
anim = animation.FuncAn

最受歡迎的見解
1.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)
2.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)
3.R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真
4.R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
5.R語言中的Stan概率編程MCMC采樣的貝葉斯模型
6.Python用PyMC3實(shí)現(xiàn)貝葉斯線性回歸模型
7.R語言使用貝葉斯 層次模型進(jìn)行空間數(shù)據(jù)分析
8.R語言隨機(jī)搜索變量選擇SSVS估計(jì)貝葉斯向量自回歸(BVAR)模型
9.matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)