Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gibbs抽样中的忽略样本_Python_Sampling_Mcmc - Fatal编程技术网

Python Gibbs抽样中的忽略样本

Python Gibbs抽样中的忽略样本,python,sampling,mcmc,Python,Sampling,Mcmc,上面的python代码是Gibbs采样,下面的一行让我感到困惑 import random,math def gibbs(N=50000,thin=1000): x=0 y=0 print "Iter x y" for i in range(N): for j in range(thin): x=random.gammavariate(3,1.0/(y*y+4)) y=random.gauss(

上面的python代码是Gibbs采样,下面的一行让我感到困惑

import random,math

def gibbs(N=50000,thin=1000):
    x=0
    y=0
    print "Iter  x  y"
    for i in range(N):
        for j in range(thin):
            x=random.gammavariate(3,1.0/(y*y+4))
            y=random.gauss(1.0/(x+1),1.0/math.sqrt(2*x+2))
        print i,x,y

gibbs()

额外的内部循环有什么意义

原因似乎是在吉布斯取样中引入了稀释。细化用于减少连续样本之间相关性的影响。Gibbs采样生成样本的马尔可夫链,附近的样本相互关联,而通常的目的是提取独立的样本


要实现这一点,您只能使用每个
M-th
值,而忽略所有中间值。在这种情况下,
M
存储在变量
thinging
中,您只获取每个
thinging
值,然后将其打印在for循环下方。

是否重复
循环
thin
次?(注意,
x
y
都是在正文中读取和分配的)我知道。但动机是什么?
for j in range(thin):