Questions tagged «mcmc»

马尔可夫链蒙特卡罗(MCMC)是指通过从固定分布为目标分布的马尔可夫链中生成随机数,从目标分布中生成样本的方法。当更直接的随机数生成方法(例如反演方法)不可行时,通常使用MCMC方法。第一种MCMC方法是Metropolis算法,后来又修改为Metropolis-Hastings算法。


1
Metropolis Hastings,Gibbs,重要性和拒绝采样之间有什么区别?
我一直在尝试学习MCMC方法,并遇到了Metropolis Hastings,Gibbs,Importance和Rejection采样。尽管其中一些差异是显而易见的,例如,当我们拥有全部条件时,吉布斯是Metropolis Hastings的特例,而其他差异则不那么明显,例如当我们想在Gibbs采样器中使用MH等时,是否有人查看每种方法之间的大部分差异的简单方法?谢谢!

1
变分推理与MCMC:何时选择一个?
我觉得我得到两个VI和MCMC的总体思路,包括MCMC像Gibbs抽样的各种口味,新都黑斯廷斯等这个文件提供了两种方法的精彩论述。 我有以下问题: 如果我想进行贝叶斯推理,为什么要选择一种方法而不是另一种方法? 每种方法的优缺点是什么? 我知道这是一个相当广泛的问题,但是任何见解都将受到高度赞赏。

3
手动计算逻辑回归95%置信区间与在R中使用confint()函数之间为什么会有区别?
亲爱的大家-我注意到我无法解释的怪事,可以吗?总之:在logistic回归模型中计算置信区间的手动方法和R函数confint()得出不同的结果。 我一直在研究Hosmer&Lemeshow的Applied Logistic回归(第二版)。在第3章中,有一个计算比值比和95%置信区间的示例。使用R,我可以轻松地重现模型: Call: glm(formula = dataset$CHD ~ as.factor(dataset$dich.age), family = "binomial") Deviance Residuals: Min 1Q Median 3Q Max -1.734 -0.847 -0.847 0.709 1.549 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -0.8408 0.2551 -3.296 0.00098 *** as.factor(dataset$dich.age)1 2.0935 0.5285 3.961 7.46e-05 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ …
34 r  regression  logistic  confidence-interval  profile-likelihood  correlation  mcmc  error  mixture  measurement  data-augmentation  r  logistic  goodness-of-fit  r  time-series  exponential  descriptive-statistics  average  expected-value  data-visualization  anova  teaching  hypothesis-testing  multivariate-analysis  r  r  mixed-model  clustering  categorical-data  unsupervised-learning  r  logistic  anova  binomial  estimation  variance  expected-value  r  r  anova  mixed-model  multiple-comparisons  repeated-measures  project-management  r  poisson-distribution  control-chart  project-management  regression  residuals  r  distributions  data-visualization  r  unbiased-estimator  kurtosis  expected-value  regression  spss  meta-analysis  r  censoring  regression  classification  data-mining  mixture 

3
MCMC算法中的错误示例
我正在研究一种自动检查Markov链蒙特卡洛方法的方法,并且我想举一些在构造或实现此类算法时可能发生的错误的示例。如果发表的论文使用了错误的方法,则加分。 我对错误表示链具有不正确的不变分布的情况特别感兴趣,尽管也会考虑其他类型的错误(例如链不是遍历)。 当Metropolis-Hastings拒绝提议的举动时,此类错误的示例将无法输出值。
28 mcmc 



1
从MCMC样本计算边际可能性
这是一个反复出现的问题(请参阅本文,本文和文章),但是我有不同的看法。 假设我有一堆来自通用MCMC采样器的采样。对于每个样本,我知道对数似然和对数在先。如果有帮助,我也知道每个数据点的对数似然值\ log f(x_i | \ theta)(此信息对某些方法(例如WAIC和PSIS-LOO)有所帮助)。θθ\thetalogf(x|θ)log⁡f(x|θ)\log f(\textbf{x} | \theta)logf(θ)log⁡f(θ)\log f(\theta)logf(xi|θ)log⁡f(xi|θ)\log f(x_i | \theta) 我想仅凭我拥有的样本以及可能的其他一些功能评估(但不重新运行即席 MCMC)来获得(粗略)边际可能性的估计。 首先,让我们清除表。众所周知,谐波估计器是有史以来最差的估计器。让我们继续前进。如果使用封闭形式的先验和后验进行Gibbs采样,则可以使用Chib方法。但是我不确定如何在这些情况之外进行概括。还有一些方法需要您修改采样过程(例如通过回火的后验者),但是我对此并不感兴趣。 我正在考虑的方法包括用参数(或非参数)形状g(\ theta)近似基础分布g(θ)g(θ)g(\theta),然后将归一化常数ZZZ视为一维优化问题(即,使某些误差最小的ZZZ之间Zg(θ)Zg(θ)Z g(\theta)和f(x|θ)f(θ)f(x|θ)f(θ)f(\textbf{x}|\theta) f(\theta)评价对样品)。在最简单的情况下,假设后验近似为多元法线,我可以将g(\ theta)拟合g(θ)g(θ)g(\theta)为多元法线,并得到类似于拉普拉斯近似的东西(我可能想使用一些其他函数求值来细化位置模式)。但是,我可以将其用作g(θ)g(θ)g(\theta)更灵活的族,例如多元ttt分布的变体混合。 我知道只有在Zg(θ)Zg(θ)Z g(\theta)是f(\ textbf {x} | \ theta)f(\ theta)的合理近似值的情况下,此方法才有效f(x|θ)f(θ)f(x|θ)f(θ)f(\textbf{x}|\theta) f(\theta),但是任何理由或谨慎的说法对于为什么这样做都是非常不明智的会吗 您会建议阅读吗? 完全非参数方法使用一些非参数族,例如高斯过程(GP),来近似logf(x|θ)+logf(θ)log⁡f(x|θ)+log⁡f(θ)\log f(\textbf{x}|\theta) + \log f(\theta)(或其一些其他非线性变换,例如(作为平方根)和贝叶斯正交,以隐式集成基础目标(请参见此处和此处)。这似乎是一种有趣的替代方法,但在精神上是类似的(另请注意,就我而言,全科医生会很笨拙)。

1
汉密尔顿蒙特卡洛vs.顺序蒙特卡洛
我试图了解这两种MCMC方案的相对优缺点以及不同的应用领域。 什么时候使用,为什么? 当一个可能失败而另一个不失败时(例如,HMC在哪里适用,但SMC不适用,反之亦然) 一个天真地被授予的方法,能否将一种方法的实用性与另一种方法相比(即,一种方法通常更好)? 我目前正在阅读Betancourt关于HMC的出色论文。

4
用于统计计算的C ++库
我有一个特定的MCMC算法,我想移植到C / C ++。许多昂贵的计算已经通过Cython用C语言编写,但是我希望整个采样器都以编译语言编写,这样我就可以为Python / R / Matlab /任何东西编写包装器。 闲逛之后,我倾向于使用C ++。我知道的几个相关库是Armadillo(http://arma.sourceforge.net/)和Scythe(http://scythe.wustl.edu/)。两者都试图模仿R / Matlab的某些方面以简化学习曲线,这是我非常喜欢的。镰刀使我想做的事情变得更好。特别是,其RNG包含很多分布,其中Armadillo仅具有统一/正态分布,这很不方便。镰刀(Scythe)于2007年发布其最新版本时,犰狳似乎处于相当活跃的开发状态。 因此,我想知道的是,是否有人有使用这些库的经验,或者我几乎肯定会错过的其他库,如果是这样,对于非常熟悉Python / R / Matlab的统计学家,是否有什么值得推荐的?但是对于编译语言却不是这样(不是完全无知,但不是完全精通...)。
23 mcmc  software  c++  computing 


1
人们用于贝叶斯推理的教科书MCMC算法有哪些众所周知的改进?
当我为某些问题编写蒙特卡洛模拟代码时,并且该模型非常简单,我使用了非常基础的教科书Gibbs采样。当无法使用Gibbs采样时,我编写了几年前学到的教科书Metropolis-Hastings。我对此的唯一想法是选择跳跃分布或其参数。 我知道有成百上千的专门方法可以改善这些教科书的选择,但我通常从不考虑使用/学习它们。通常感觉是要付出很多努力来改善已经很好地进行的工作。 但是最近我一直在思考,也许没有新的通用方法可以改善我一直在做的事情。自从发现这些方法以来已有数十年了。也许我真的过时了! 有没有众所周知的替代Metropolis-Hasting的方法: 相当容易实现, 像MH一样普遍适用 并始终在某种意义上提高MH的结果(计算性能,准确性等)? 我知道针对非常专业的模型进行了一些非常专业的改进,但是每个人都使用一些我不知道的常规知识吗?

1
基于MCMC的回归模型中的残留诊断
我最近开始使用MCMC算法(实际上是R中的MCMCglmm函数)在贝叶斯框架中拟合回归混合模型。 我相信我已经了解了如何诊断估计过程的收敛性(迹线,geweke图,自相关,后验分布...)。 在贝叶斯框架中给我留下深刻印象的一件事是,似乎花了很多精力来进行这些诊断,而在检查拟合模型的残差方面却似乎做得很少。例如,在MCMCglmm中,确实存在残留的.mcmc()函数,但实际上尚未实现(即返回:“尚未为MCMCglmm对象实现的残留物”; predict.mcmc()的情况相同)。在其他软件包中似乎也缺少它,而且在我发现的文献中,除讨论广泛的DIC之外,它几乎没有被讨论过。 谁能指出一些有用的参考,理想情况下,我可以使用或修改R代码? 非常感谢。

3
为什么我们要关心MCMC链中的快速混合?
在使用马尔可夫链蒙特卡洛法进行推理时,我们需要一个快速混合的链,即快速移动后验分布的支持。但我不明白为什么需要此属性,因为据我了解,可接受的候选抽取应该并且将集中在后验分布的高密度部分。如果我理解的是正确的,那么我们是否仍希望链条穿过支撑物(包括低密度部分)? 此外,如果我使用MCMC进行优化,是否还需要关心快速混合,为什么? 感谢您分享您的想法!
21 mcmc 

1
自适应MCMC可以信任吗?
我正在阅读有关自适应MCMC的信息(例如,参见《马尔可夫链蒙特卡洛手册》第4章,布鲁克斯等人,2011年;Andrieu和Thoms,2008年)。 nnnp(n)p(n)p(n)limn→∞p(n)=0limn→∞p(n)=0\lim_{n \rightarrow \infty} p(n) = 0 该结果是(后验的)直观的,渐近的。由于适应量趋于零,因此最终不会与遍历无关。我担心的是有限的时间会发生什么。 我们如何知道在给定的有限时间内适应性并不会破坏遍历性,并且采样器正在从正确的分布中采样?如果完全有道理,一个人应该做多少磨合以确保早期适应不会使链条产生偏差? 该领域的从业者是否信任自适应MCMC?我问的原因是因为我已经看到许多最近的方法,这些方法尝试以已知的其他各种更复杂的方式(包括再生或整体方法)以其他更复杂的方式建立适应性(例如,选择过渡是合法的)取决于其他平行链状态的运算符)。可替代地,仅在老化期间(例如在Stan中)执行调整,而不在运行时执行。所有这些努力向我暗示,罗伯茨和罗森塔尔的自适应MCMC(实施起来非常简单)并不可靠;但也许还有其他原因。 那么具体的实现又如何呢?比如自适应都市(Hario等,2001)? 参考文献 Rosenthal,JS(2011)。最佳提案分配和自适应MCMC。马尔可夫链手册蒙特卡罗,93-112。 Andrieu,C.和Thoms,J.(2008年)。关于自适应MCMC的教程。统计与计算,18(4),343-373。 Roberts,GO和Rosenthal,JS(2007)。自适应马尔可夫链蒙特卡罗算法的耦合和遍历性。应用概率杂志,458-475。 Haario H.,Saksman E.和Tamminen J.(2001)。自适应Metropolis算法。伯努利(Bernoulli),223-242。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.