马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法

有三种解释MCMC的方法:

初级:MCMC允许我们利用计算机进行贝叶斯统计。中级:MCMC是一种可以找到我们感兴趣的参数的后验分布的方法。具体来说,这种类型的算法以依赖Markov属性的方式生成蒙特卡罗模拟,然后以一定的速率接受这些模拟以获得后验分布。高级:完整的统计思想。本文,让你达到中级水平。

让我们从初级水平开始。

什么是MCMC?要回答这个问题,我们首先需要重新审视贝叶斯统计。贝叶斯统计建立在这样一种观点的基础上,即事物发生的概率受先验概率假设和事件发生的可能性的影响,如数据所示。对于贝叶斯统计,概率由分布表示。

如果先验和似然概率分布是正态分布的,我们能够用函数描述后验分布。这称为封闭形式的解决方案。这种类型的贝叶斯如下所示。正如您所看到的,后验分布由先验分布和可能分布两者组成,最终在中间某处。

马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法_第1张图片

但是当概率不是那么漂亮时呢?当概率看起来更像这样时会发生什么?

马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法_第2张图片

在这种情况下,可能性没有正态分布,因此我们最终得到了右倾的后验分布。由于我们无法用公式表达,我们必须使用马尔可夫链蒙特卡罗。

马尔可夫链蒙特卡罗的三个部分

第一:蒙特卡洛

蒙特卡罗模拟通过生成随机数来模拟复杂系统。

在下面动图中,蒙特卡罗生成一个参数为(0-1,0-1)的随机点,通过识别最终在曲线 下面的点数我们能够近似于该区域,形成一个整圆并获得π。

马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法_第3张图片

第二:马尔可夫链

马尔可夫链本质上是变量如何围绕图形"走动",或随机变量随时间从一种状态变为另一种状态的表示。

马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法_第4张图片

上图是马尔可夫情绪状态链的表示。在这个链条中,如果你是开朗的,你有20%的几率将情绪状态改变到马马虎虎,20%的几率你会变得悲伤,60%的几率你会保持开朗。

马尔可夫的不追溯当前之前

F(Xt + 1 | Xt)= f(Xt + 1 | Xt,Xt-1,Xt-2,...,X1)

用英语:如果我现在知道发生了什么,知道发生什么事情让我们走到这一步或之前的步骤等等,并不能为我提供更多的信息。

举一个类似这样的例子:

孟德尔遗传学。在下面的示例中,子bean的颜色完全受父bean的bean颜色的影响。第一代豆的颜色受到之前一代颜色的影响,但在确定第二代颜色时不需要考虑。

马尔可夫链-蒙特卡洛法java_简洁清晰解释马尔可夫链蒙特卡洛方法_第5张图片

棋盘游戏:当玩Monopoly并试图确定玩家进入某个空间的概率时,您需要的唯一信息是当前玩家的位置。之前转牌圈的位置并不会影响下一个位置,除非它确定了本回合的位置。第三:验收 - 拒绝抽样

MCMC的第三部分是验收拒绝抽样。当我们对新的观察结果进行抽样时,我们会确定它是否在正确的方向,然后决定是保留它还是丢弃它。

两种常见的接受拒绝算法是Metropolis-Hasting算法和No-U-Turn采样器。

对Metropolis-Hasting的更加高级的解释:

假设我们在x点。我们猜测下一步。我们称之为x *然后我们计算x * / x概率的比率。这是使用似然和先验分布的乘积计算。如果p(x *)/ p(x)的比率(也称为接受概率)大于1,则我们接受x *作为新位置。即使接受概率小于1,我们也不会自动拒绝x *。我们通过从Uniform(0,1)分布中选择一个随机数来翻转硬币。如果数字小于接受概率,我们接受x *如果它更高,我们拒绝x *并重新开始该过程。总结

我们随机生成数字:这是蒙特卡罗部分我们允许我们生成的数字影响下一个生成的数字:这是马尔可夫链然后我们决定生成的新数字是否"向正确的方向移动":接受拒绝算法然后我们检查收敛:我们确定我们的数据何时收敛到合理的分布。收敛点后随机生成的值成为我们的后验分布

你可能感兴趣的:(马尔可夫链-蒙特卡洛法java)