首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

作者头像
拓端
发布2022-03-11 20:46:33
发布2022-03-11 20:46:33
9040
举报
文章被收录于专栏:拓端tecdat拓端tecdat

原文链接:http://tecdat.cn/?p=25428

介绍

本文,我们说明了贝叶斯学习和 计算统计一些结果。

代码语言:javascript
复制
from math import pi
from pylab import *

马尔可夫链的不变测度

考虑一个高斯 AR(1) 过程,

, 其中

是标准高斯随机变量的独立同分布序列,独立于

。假使

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

和方差

是马尔可夫链的平稳分布。我们用马尔可夫链的单个轨迹所取值的直方图来检查这个属性。

代码语言:javascript
复制
f=lambda x,m,sq: exp(-(x-m)\*\*2/(2\*sq))/sqrt(2\*pi\*sq)


plt.hist

第二个例子

我们在这里考虑一个马尔可夫链的例子,它的状态空间

是开单位区间。如果链在

,它等概率

选择两个区间之一

或者

,然后移动到一个点,

它均匀分布在选定的区间内。马尔可夫链的不变分布有 cdf,

。通过微分,我们可以得到相关的密度:

。对所有

, 我们现在用马尔可夫链取值的直方图检查这个属性。

代码语言:javascript
复制
x=arange(1,m)/m

for i in range(p-1):
    \[a,b\]=rand(2)
    
plt.hist

我们还可以说明直方图如何收敛到平稳分布的密度。这可以通过使用 matplotlib 中的“动画”模块的动态动画来完成。下面是python代码。

代码语言:javascript
复制
anm = animation.FuncAnimation

这个例子结束是一个动画。

代码语言:javascript
复制
data = \[\]
for i in range(p-1):
    \[a,b\]=rand(2
    
    if ((i+1)%100==0):
        data.append
    
anim = animation.Func

我们现在用一个例子来说明大数定律。如

。那么,我们期望

,

代码语言:javascript
复制
x=arange/(p)
for i in range(p-1):
    \[a,b\]=rand
m=cumsum(g(m))/arange(1,p+1)
plot

对称随机游走 Metropolis Hasting 算法

我们现在考虑一个目标分布,它是两个高斯分布的混合,一个集中在

,另一个集中在

是中心标准正态分布的密度。

为了针对此分布,我们根据对称随机游走 Metropolis Hasting 算法进行采样。当链处于状态时

,我们提出一个候选

, 根据

,其中

。然后我们接受

,有概率

, 其中

。否则,

代码语言:javascript
复制
from IPython.display import HTML

rc('animation', html='jshtml')
ani

独立Metropolis Hasting算法

我们再次考虑一个目标分布,它是两个高斯分布的混合,一个集中在

,另一个集中在

,其中

是中心标准正态分布的密度。

为了针对这种分布,我们根据具有独立提议的 Metropolis Hasting 算法进行采样。当链处于状态时

,我们提出一个候选

,根据

,其中

。然后我们接受

有概率

, 其中

是密度

。否则,

代码语言:javascript
复制
mc=randn*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=linspac

anim = animation.FuncAn

本文摘选《python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 原文链接:http://tecdat.cn/?p=25428
  • 介绍
  • 马尔可夫链的不变测度
  • 第二个例子
    • 对称随机游走 Metropolis Hasting 算法
    • 独立Metropolis Hasting算法
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档