对于更复杂的概率分布,您可能需要比中描述的方法更高级的方法来生成样本 Metropolis-Hastings算法从一个已知常数的分布中抽取样本。随机数是由一个概率密度函数等于或正比于某个建议函数的分布生成的。 生成随机数: 假设初始值 画一个样本, 接受
增量 利用Metropolis-Hastings方法生成随机数 在很难找到一个有效的Metropolis-Hastings提议分布的情况下,切片采样算法不需要明确的规范。切片采样算法使用垂直和水平步长序列从密度函数下的区域提取样本。首先,它从0到密度函数中随机选择一个高度 如果一个函数 假设初始值 画一个真实的值 找到一个间隔 绘制新点 增量 切片抽样可以从密度函数的任意形式的分布中产生随机数,只要有一个有效的数值程序可以找到区间 使用切片抽样方法生成随机数 Metropolis-Hastings和切片采样可以产生混合缓慢且需要很长时间才能收敛到平稳分布的MCMC链,特别是在中维和高维问题中。在这种情况下,使用基于梯度的哈密顿蒙特卡罗(HMC)采样器加速采样。 要使用HMC抽样,必须指定log HMC采样算法引入了一个随机的“动量矢量” HMC算法用协方差矩阵赋值高斯密度
然后,它定义一个“能量函数”为
与 为了生成随机样本,HMC算法: 假定初始值 生成一个动量矢量的样本: 发展国家
如果运动方程可以精确求解,能量(以及密度)将保持不变: 接受 重复步骤2到步骤4,直到生成所需的样本数量。 要使用HMC采样,请使用使用Metropolis-Hastings算法
mhsample
slicesample
hmcSampler
使用切片采样
slicesample
用哈密顿蒙特卡罗法
hmcSampler
另请参阅
功能