教育装备采购网
第七届图书馆 体育培训

Stata软件贝叶斯统计应用

教育装备采购网 2017-09-21 13:02 围观1350次

  在这篇文章中,我从非技术层面来介绍一下Markov chain Monte Carlo,通常简称为MCMC。MCMC被广泛应用于贝叶斯统计模型拟合。MCMC有很多不同的方法,这里我将主要介绍Metropolis–Hastings 算法。为了简便起见,我将 忽略一些细节,强烈推荐大家在练习使用MCMC之前阅读[BAYES] 手册。

  我们继续前一篇文章贝叶斯统计介绍Part 1:基本概念中提到的硬币投掷例子。我们对参数θ的后验分布感兴趣,也就是投掷硬币时,“头”在上面的概率。我们的先验分布是扁平的,无信息Beta分布参数1和1。然后我们将使用二项式似然函数对我们的实验数据进行量化,10次投掷硬币4次“头”朝上的结果。我们可以使用MCMC的M-H算法来生成后验分布θ的样本。然后可以使用这个样本来估算如后验分布的均值等问题。

  这种技术有三个基本部分:

  1. Monte Carlo

  2. Markov chains

  3. M–H algorithm

  Monte Carlo methods

  蒙特卡罗是指依靠伪随机数的生成方法(简称伪随机数)。图1说明了蒙特卡罗实验的一些特点。

  Figure 1: Proposal distributions, trace plots, and density plots

  

  在这个例子中,我将从正态分布的均值0.5和任意方差σ中生成一系列随机数。正态分布称为建议分布。

  图中右上角部分称为轨迹图,它会根据绘图的顺序来显示θ值。它也显示建议分布顺时针旋转90度的情况,我每画一个θ值就会将它向右平移。绿点轨迹图显示了θ的当前值。

  左上角的密度图是逆时针旋转90度的直方图样本。我旋转了坐标轴,因此θ轴线是平行的。同样的,绿色的点密度图显示了θ的当前值。

  让我们绘制10,000个θ随机值来看看是如何工作的。

  Animation 1: A Monte Carlo experiment

  

  动画图1说明了几个重要的特点。首先建议分布不会从一个迭代中更改到另一个中。其次,随着样本容量的增加,密度图看起来越来越像建议分布。第三,轨迹图是平稳的--所有迭代的变量,变化形式看起来都是一样的。

  蒙特卡罗仿真生成的样本看起来像建议分布,很多时候也正是我们所需的。但是我们需要一个额外的工具从后验分布中生成一个样本。

  Markov chain Monte Carlo methods

  Markov chain是一个数字序列,每个数字都依赖于序列中的前一个数。例如,我们从一个正常的建议分布与平均等于θ的前一个值来绘制θ值。图2显示了 轨迹图和密度图,当前的θ值(θt=0.530)是从一个平均等于θ前值的建议分布(θt−1=0.712)来绘制的。

  Figure 2: A draw from a MCMC experiment

  

  下面图3显示序列中的下一次迭代的轨迹图和密度图。建议密度的均值现在是θt−1=0.530,并且我们从新的建议分布来绘制出了随机数值θt=0.411。

  Figure 3: The next iteration of the MCMC experiment

  

  让我们使用MCMC绘制10,000个θ随机值来看看是如何工作的。

  Animation 2: A MCMC experiment

  

  动画图2显示了Monte Carlo实验和MCMC实验直接的差异。首先,建议分布是随着每个迭代变化而变化的。这就生成一个随机游走模式的轨迹图:所有迭代的变化是不一样的。其次,产生的密度图看上去不像建议分布或其他任何有用的分布,肯定也不是一个后验分布。

  MCMC从后验分布获取样本失败的原因是我们还没在生成样本的过程中输入过任何后验分布的信息。我们可以通过保持θ值来提高样本,θ值更可能是在后验分布下的值而不太可能是丢弃值。

  但是基于后验分布,θ值接受和拒绝建议值最明显的困难是我们通常不知道后验分布的函数形式。如果我们知道它的函数形式,就可以直接计算概率,而不用生成一个随机样本。那么我们如何不用知道函数形式就可以接受或拒绝建议θ值呢? 答案就是M-H算法!

  MCMC和M–H 算法

  M-H算法可以用在我们不知道后验分布函数形式的情况下来判断是否接受θ建议值。让我们将M-H算法分成几步,然后经过几次迭代来看看它是怎么实现的。

  Figure 4: MCMC with the M–H algorithm: Iteration 1

  

  图4显示了等于(θt−1=0.0.517)的建议分布轨迹图和密度图。我们已经绘制了一个预估值θ(θnew=0.380),我将这个值定义为θnew是因为还没有确定是否要用这个值。

  我们从步骤1计算比率开始使用M-H算法

  

  我们不知道后验分布的函数形式,但是在这个例子中,我们可以替代先验分布和似然函数的乘积。比率的计算并不是都那么简单,但是我们可以把事情变得简单些。

  图4步骤1显示了(θnew=0.380) 和(θt−1=0.0.517) 的后验概率比等于1.307。步骤2我们计算接受概率α(θnew,θt−1),也就是最低比值r(θnew, θt -1)和1。步骤2是必须的,因为比率肯定在0和1之间。

  接受概率等于1,所以我们接受(θnew=0.380),建议分布的平均值在下个迭代中就变成了0.380.

  Figure 5: MCMC with the M–H algorithm: Iteration 2

  

  图5显示了下一个迭代(θnew=0.286)是根据平均值为(θt−1=0.380)后验分布绘制的。步骤1

  计算的比率r(θnew,θt−1)等于0.747,小于1。步骤2中计算的接受概率α(θnew,θt−1)等于0.747。

  我们不会自动拒绝θnew,因为接受概率小于1。相反,我们可以绘制来自步骤3中的均匀分布(0,1)的随机数U。如果U小于接受概率,我们就接受建议值θnew,反之,我们拒绝θnew并保留θt−1。

  在这里u=0.094小于了接受概率(0.747),所以我们就接受(θnew=0.286)。我在图5中将θnew和0.286以绿色来表示它们已经被接受。

  Figure 6: MCMC with the M–H algorithm: Iteration 3

  

  图6显示了下一个迭代(θnew=0.088)是根据平均值为(θt−1=0.286)后验分布绘制的。步骤1计算的比率r(θnew,θt−1)等于0.039,小于1. 步骤2中计算的接受概率α(θnew,θt−1)等于0.039.步骤3中计算的U 的值是0.247,大于接受概率。因此在步骤4中,我们拒绝θnew=0.088并保留θt−1=0.286。

  让我们使用M-H算法的MCMC绘制10,000个θ随机值来看看是如何工作的。

  Animation 3: MCMC with the M–H algorithm

  

  动画图3表明了几个问题。首先,建议分布会随着大部分迭代变化而变化。需要注意的是, 如果θnew值被接受,它们会以绿色表示,如果被拒绝会以红色表示。其次,我们只使用MCMC的时候,轨迹图不显示随机游走模式,所有迭代中的变化是相似的。最后,密度图看起来像一个有用的分布。

  旋转一下密度图结果,更仔细的看看。

  Figure 7: A sample from the posterior distribution generated with MCMC with the M–H algorithm

  

  图7显示了我们使用M-H算法MCMC生成的样本直方图。在这个例子中,我们知道后验分布的参数是Beta 5和7. 红色线条显示后验分布分析,蓝色线条是样本的核密度图。核密度图跟Beta(5,7)分布相似,这说明我们的样本是一个很好的近似的理论后验分布。

  我们可以使用样本来计算后验分布均值或中位数,95%的置信区间的概率,或θ落在任意区间的概率。

  Stata中的MCMC和M-H算法

  让我们回到使用bayesmh的投掷硬币实例中。随着二项式的可能性,我们指定一个beta分布参数1和1。

  Example 1: Using bayesmh with a Beta(1,1) prior

  

  输出结果告诉我们bayesmh跑完了12,500个MCMC迭代。“Burn-in”告诉我们为了减少链中随机起始值的影响,迭代中的2500个被丢弃。下面那行告诉我们,最终的MCMC样本大小为10,000, 再下面一行表明我们的数据集有10个观测值。接受概率θ建议值比例包含在最终的MCMC样本中。我建议您阅读Stata Bayesian Analysis Reference Manual 并了解效率的定义,但是高效率表明低自相关,而低效率表明高自相关。Monte Carlostandard error (MCSE)显示在系数表中,估算后验均值的近似误差。

  检查chain的收敛性

  “convergence”这个词在MCMC和极大似然中的表述有不同的含义。用于最大似然估计算法迭代直至收敛到最大。MCMC链不迭代直到确定最佳值。外链简单迭代直到达到要求的样本量大小,任何算法停止。事实上,外链停止运行并不表明后验分布中最佳样本的生成。我们必须检查样本以制止问题的出现。我们可以用bayesgraph diagnostics图形形式来检查样本。

  

  图8显示包含MCMC样本的轨迹图、直方图和密度图的诊断图和correlegram。轨迹图有一个平稳模式,这也正是我们希望看到的。动画图2中的随机游走模式显示了chain存在的问题。直方图没有任何特殊特征如多模式。完整样本的核密度图,chain的前半部分,chain的后半部分都看起来很相似并没有任何特殊的特征如chain的前半部分和后半部分密度不同。使用Markov chain来生成样本并产生一个自相关,但是自相关会随着较大的滞后值迅速减小。这些图形并不能说明我们的样本有任何问题。

  总结

  这篇文章介绍了使用M-H算法MCMC背后的想法。请注意我省略了一些细节,忽略了一些假定条件以便让事情变得简单,顺着我们的感觉往下发展。Stata的bayesmh命令实际上执行了一个更难的算法,我们称之为带M-H算法的自适应MCMC。但是基本概念是一样的,希望能给大家一些启发。

点击进入北京天演融智软件有限公司展台查看更多 来源:教育装备采购网 作者:中国科学软件网 责任编辑:李瑶瑶 我要投稿
校体购终极页

相关阅读

版权与免责声明:

① 凡本网注明"来源:教育装备采购网"的所有作品,版权均属于教育装备采购网,未经本网授权不得转载、摘编或利用其它方式使用。已获本网授权的作品,应在授权范围内使用,并注明"来源:教育装备采购网"。违者本网将追究相关法律责任。

② 本网凡注明"来源:XXX(非本网)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。

③ 如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。

校体购产品