如何生成马尔可夫链蒙特卡罗模拟所需的马尔可夫链转移矩阵?

机器算法验证 马尔可夫链蒙特卡罗 蒙特卡洛 马尔科夫过程
2022-03-24 10:40:41

我正在使用 MCMC 方法对模型进行敏感性分析。通过阅读灵敏度测试程序的代码,我发现马尔可夫链中的步骤与随机游走非常相似。

此外,根据我对马尔可夫链的理解,通常为此类模拟规定了一个转移矩阵。

所以我很困惑 MCMC 是否需要一个转换矩阵:

  1. 如果是,如何生成 MCMC 仿真所需的马尔可夫链的转移矩阵?
  2. 如果没有,为什么不能为马尔可夫链生成这样的转移矩阵?
3个回答

当定义链的空间(状态空间)是有限或可数时,转移矩阵确定马尔可夫链的移动。如果马尔可夫链处于状态,则转移矩阵中的元素是移动到的概率。例如,考虑一个只有两种可能状态的马尔可夫链,则转移矩阵为x(x,y)y{0,1}P(x,y)

P(x,y)=[1/21/21/32/3],

确定马尔可夫链如何移动。例如,P(x=1,y=1)=Pr(y=1|x=1)=2/3

  1. 我对使用转移矩阵有点不熟悉,但我知道你可以使用Rmarkovchain来处理这样的马尔可夫链。在此处阅读小插图以寻求帮助。
  2. 我下面的解释应该回答你的第二个问题。

考虑马尔可夫链可以移动到无限状态的情况。例如,当状态空间为甚至时。然后不可能写下转换矩阵,因为可能的状态数是无穷无尽的。此外,由于状态空间的无限大小,从一种状态到任何其他状态的可能性正好为 0。R=(,)(0,1)

这样的马尔可夫链空间称为一般状态空间马尔可夫链在这种状态空间上的转换是用马尔可夫转换核定义的,其中是一个元素,是状态空间中的一个可测量集。P(x,A)xA

您可以在此处找到一般状态空间马尔可夫链的一些理论参考:

http://projecteuclid.org/euclid.ps/1099928648 http://www.stat.umn.edu/geyer/8112/notes/markov.pdf https://perso.univ-rennes1.fr/dimitri.petritis/ ps/马尔科夫.pdf

对于 MCMC,如果您处于一般状态空间中,您不必了解究竟是什么样子,只要您有一个算法可以准确地告诉您马尔可夫链是如何从一步移动到另一个。最常见的 MCMC 技术之一是Metropolis-Hastings算法。P(x,A)

您的问题暴露了几个层次的混淆:

通过阅读灵敏度测试程序的代码,我发现马尔可夫链中的步骤与随机游走非常相似。

进一步阅读有关马尔可夫链蒙特卡罗方法的“代码”将是最有利可图的。例如,关于Metropolis-Hastings 算法的 Wikipedia 条目非常有用。Charlie Geyer 对 MCMC 有很好的在线介绍。随机游走是马尔可夫链的一种特殊情况,具有 (a) 移动中的对称约束和 (b) 在大多数情况下没有平稳分布。MCMC 产生的马尔可夫链必须有一个平稳分布,也就是感兴趣的分布。

此外,根据我对马尔可夫链的理解,通常为此类模拟规定了一个转移矩阵。

马尔可夫链蒙特卡洛方法正在产生马尔可夫链,并由马尔可夫链理论证明。在离散(有限可数)状态空间中,马尔可夫链由转移矩阵,而在一般空间中,马尔可夫链链由转换内核定义。(K(x,y))(x,y)X2

所以我很困惑 MCMC 是否需要一个转换矩阵:

为了实现,MCMC 需要一个从转换内核生成的实用解决方案,即,能够在给定例如,Metropolis-Hastings 算法依赖于辅助转换核并分两步进行:Xt+1XtQ

  1. 时生成YtQ(xt,y)Xt=xt
  2. 其中
    Xt+1={Ytwith probability α(xt,yt)Xtwith probability 1α(xt,yt)
    α(x,y)=π(y)Q(y,x)π(x)Q(x,y)1

这是一个可实现的算法,即使相关的转换核通常不能以封闭形式获得,因为拒绝概率 通常无法推导出来。 K(x,y)

β(x)=X{1α(x,y)}Q(x,dy)

如果是,如何生成 MCMC 仿真所需的马尔可夫链的转移矩阵?如果没有,为什么不能为马尔可夫链生成这样的转移矩阵?

显然,既可以 MCMC 转换内核生成(否则算法无法运行),又不能以封闭形式生成转换内核。

每个马尔可夫链都可以看作是一次随机游走。

如果您正在实现 MCMC,则不需要显式指定或知道转换函数(矩阵),正如 Greenparker 建议的那样,MH 算法是一种常用技术,它可以让您实现平稳分布。

如果您事先知道并规定了转换矩阵,那么您可以继续乘法直到收敛,我认为在这种情况下不需要 MCMC。