码迷,mamicode.com
首页 > 其他好文 > 详细

MCMC采样和M-H采样

时间:2020-02-24 18:30:59      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:src   code   html   scale   img   cal   image   orm   atp   

技术图片

 

技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

 

其中 %matplotlib inline 的解释见  https://www.cnblogs.com/emanlee/p/12358088.html

import random
import math
from scipy.stats import norm
import matplotlib.pyplot as plt
%matplotlib inline

def norm_dist_prob(theta):
    y = norm.pdf(theta, loc=3, scale=2)
    return y

T = 5000
pi = [0 for i in range(T)]
sigma = 1
t = 0
while t < T-1:
    t = t + 1
    pi_star = norm.rvs(loc=pi[t - 1], scale=sigma, size=1, random_state=None)
    alpha = min(1, (norm_dist_prob(pi_star[0]) / norm_dist_prob(pi[t - 1])))

    u = random.uniform(0, 1)
    if u < alpha:
        pi[t] = pi_star[0]
    else:
        pi[t] = pi[t - 1]


plt.scatter(pi, norm.pdf(pi, loc=3, scale=2))
num_bins = 50
plt.hist(pi, num_bins, normed=1, facecolor=red, alpha=0.7)
plt.show()

技术图片

 

 技术图片

 

 

from

https://www.cnblogs.com/pinard/p/6638955.html

 

MCMC采样和M-H采样

标签:src   code   html   scale   img   cal   image   orm   atp   

原文地址:https://www.cnblogs.com/emanlee/p/12358022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!