Questions tagged «mcmc»

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

1
如何在MCMC中解释自相关图
通过阅读John K. Kruschke 的《做贝叶斯数据分析》一书,我也熟悉贝叶斯统计数据,该书也被称为“小狗书”。在第9章中,通过以下简单示例介绍了层次模型: 和伯努利观察是3枚硬币,每次10个翻转。一个显示9个头,另一个显示5个头,另一个显示1个头。yjiθjμκ∼Bernoulli(θj)∼Beta(μκ,(1−μ)κ)∼Beta(Aμ,Bμ)∼Gamma(Sκ,Rκ)yji∼Bernoulli(θj)θj∼Beta(μκ,(1−μ)κ)μ∼Beta(Aμ,Bμ)κ∼Gamma(Sκ,Rκ)\begin{align} y_{ji} &\sim {\rm Bernoulli}(\theta_j) \\ \theta_j &\sim {\rm Beta}(\mu\kappa, (1-\mu)\kappa) \\ \mu &\sim {\rm Beta}(A_\mu, B_\mu) \\ \kappa &\sim {\rm Gamma}(S_\kappa, R_\kappa) \end{align} 我已经使用pymc来推断超参数。 with pm.Model() as model: # define the mu = pm.Beta('mu', 2, 2) kappa = pm.Gamma('kappa', 1, 0.1) # define the prior …

1
对lmer和p值的困惑:memisc包中的p值与MCMC的p值相比如何?
我的印象是,该功能下lmer()的lme4包没有产生p值(见lmer,p值和所有)。 我一直在按以下问题使用MCMC生成的p值:混合模型中的显着效果,lme4以及以下问题:在的包中的输出中找不到p值lmer()lm4R。 最近,我尝试了一个名为memisc的程序包,并将其getSummary.mer()模型的固定效果保存到一个csv文件中。就像是魔术一样,p出现了一个名为的列,该列与我的MCMC p值非常紧密地匹配(并且不会遭受使用带来的处理时间pvals.fnc())。 我试探了其中的代码,getSummary.mer并发现了生成p值的行: p <- (1 - pnorm(abs(smry@coefs[, 3]))) * 2 这是否意味着可以直接从lmer输出生成p值,而不是运行pvals.fnc?我意识到这无疑将引发“ p值拜物教”辩论,但我很想知道。我没有听说过memisc,当涉及到前面提到的lmer。 更加简洁:与使用MCMC p值生成的值相比,使用MCMC p值有什么好处(如果有)getSummary.mer()?

1
将复杂模型重复拟合到大数据集时,如何优化计算效率?
使用MCMCglmmR中的程序包运行混合效果模型时出现性能问题。代码如下: MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical" , prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0))) , slice=T, nitt=iter, ,burnin=burn, verbose=F) 数据中大约有20,000个观测值,它们聚集在大约200所学校中。在运行之前,我从数据框中删除了所有未使用的变量,并从内存中删除了所有其他对象。我的问题是,除非将迭代次数减少到无法接受的程度,否则运行时间将非常长。经过50,000次迭代,需要5个小时,而且我要运行许多不同的模型。所以我想知道是否有加速代码执行的方法,或者我可以使用其他软件包。我正在使用,MCMCglmm因为我想要随机效果的置信区间。 另一方面,我希望在今年晚些时候购买一台新PC,但运气好的话,我也许可以将其推广,所以我一直在想如何最好地在新硬件上花有限的钱-更多的RAM ,更快的CPU等。通过观察任务管理器,我不认为RAM是问题(它永远不会超过物理使用的50%),但是CPU使用率也不会超过50%,这让我感到奇怪。我当前的设置是Intel Core i5 2.66GHz,4GB RAM,7200rpm HDD。以尽可能多的RAM为代价,获取尽可能快的CPU是否合理?我还想知道3级CPU缓存大小对像这样的统计计算问题的影响吗? 更新:已经问的元SO我一直建议重新措辞上的超级用户的问题和岗位。为此,我需要提供有关MCMCglmm中“幕后工作”的详细信息。我是否认为大部分的计算时间都花在了优化上,这是对的吗?我的意思是找到一些复杂函数的最大值?矩阵求逆和/或其他线性代数运算是否也是可能引起瓶颈的常见运算?我将非常感激能够提供给超级用户社区的任何其他信息。

2
MCMC方法-燃烧样品?
在MCMC方法中,我一直在阅读有关burn-in时间或的样本数的信息"burn"。这到底是什么?为什么需要它? 更新: 一旦MCMC稳定下来,它会保持稳定吗?burn-in时间的概念与混合时间的概念有何关系?
12 sampling  mcmc 

2
满足详细平衡的MCMC是否会产生固定分布?
我想我了解详细的平衡条件的方程,该方程表明对于转移概率和平稳分布π,如果q (x | y )π (y )= q (y | x )π (X ),qqqππ\piq(x | y)π(y)= q(y| x)π(x ),q(x|y)π(y)=q(y|x)π(x),q(x|y)\pi(y)=q(y|x)\pi(x), 如果我将其重述为: q(x | y)q(y| X)= π(x )π(y)。q(x|y)q(y|x)=π(x)π(y).\frac{q(x|y)}{q(y|x)}= \frac{\pi(x)}{\pi(y)}. 基本上,从状态转换到状态y的概率应与它们的概率密度之比成正比。Xxxÿyy

5
标准化自变量是否会降低共线性?
我在Bayes / MCMC上看到了一篇很好的文章。IT建议您对自变量进行标准化将使MCMC(Metropolis)算法更有效,但也可能会降低(多重)共线性。可以吗?这是我应该做的标准工作吗(抱歉)。 Kruschke,2011年,《进行贝叶斯数据分析》。(美联社) 编辑:例如 > data(longley) > cor.test(longley$Unemployed, longley$Armed.Forces) Pearson's product-moment correlation data: longley$Unemployed and longley$Armed.Forces t = -0.6745, df = 14, p-value = 0.5109 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.6187113 0.3489766 sample estimates: cor -0.1774206 > standardise <- function(x) {(x-mean(x))/sd(x)} …


2
PyMC初学者:如何从拟合模型中实际采样
我正在尝试一个非常简单的模型:在假设我知道精度的情况下拟合法线,我只想找到均值。下面的代码似乎正确适合普通。但是在拟合之后,我想从模型中采样,即生成类似于我的data变量的新数据。我知道我可以trace("mean")用来获取均值变量的样本。但是如何从模型本身获取新样本? 我看过文档,例如http://pymc-devs.github.io/pymc/database.html#accessing-sampled-data。我还查看了很多示例,例如采矿灾难,以及概率编程笔记本中的一些示例,而没有一个提及。我(或多或少是MCMC初学者)期望从拟合模型中取样才是重点!我想念什么? from pymc import * data = np.array([-1, 0, 4, 0, 2, -2, 1, 0, 0, 2, 1, -3, -1, 0, 0, 1, 0, 1]) mean = Uniform("mean", -4, 4) precision = 2.0**-2 obs = Normal("obs", mean, precision, value=data, observed=True) model = Model( {"mean": mean, "obs": obs}) mcmc = …
12 mcmc  pymc 

2
最大似然参数偏离后验分布
我有一个似然函数大号(d| θ)L(d|θ)\mathcal{L}(d | \theta)为我的数据的概率ddd给出一些模型参数θ∈RNθ∈RN\theta \in \mathbf{R}^N,我想估计。假设先验参数平坦,则似然度与后验概率成正比。我使用MCMC方法来采样这种可能性。 查看生成的收敛链,我发现最大似然参数与后验分布不一致。例如,对于一个参数的边缘化后验概率分布可能是θ0∼N(μ=0,σ2=1)θ0∼N(μ=0,σ2=1)\theta_0 \sim N(\mu=0, \sigma^2=1),而值θ0θ0\theta_0在最大似然点是θML0≈4θ0ML≈4\theta_0^{ML} \approx 4,基本上是几乎最大值θ0θ0\theta_0通过MCMC采样器遍历。 这是一个说明性的例子,不是我的实际结果。实际分布要复杂得多,但是某些ML参数在其各自的后验分布中具有类似的不太可能具有p值。注意,我的一些参数的有界(例如0≤θ1≤10≤θ1≤10 \leq \theta_1 \leq 1); 在范围内,先验总是一致的。 我的问题是: 这样的偏差本身就是问题吗?显然,我不希望ML参数与它们的每个边缘化后验分布的最大值完全一致,但是从直觉上来说,感觉它们也不应该在尾部深处发现。这种偏离会自动使我的结果无效吗? 这是否一定有问题,在数据分析的某个阶段是否可能是特定病理的症状?例如,是否有可能做出一般性的陈述,说明这种偏差是由不正确的收敛链,不正确的模型还是对参数的过度约束引起的?

2
Gibbs采样了MCMC方法吗?
据我了解,它是(至少是Wikipedia定义的)。但是我发现Efron *的这句话(加了强调): 马尔可夫链蒙特卡洛(MCMC)是现代贝叶斯统计的成功典范。MCMC及其姊妹方法“ Gibbs采样”允许在过于复杂而无法通过解析表达式表达的情况下,对后验分布进行数值计算。 现在我很困惑。这只是术语上的微小差异,还是Gibbs采样了MCMC之外的其他内容? [*]:Efron 2011,“ The Bootstrap and Markov-Chain Monte Carlo”
11 mcmc  gibbs 

6
贝叶斯统计MCMC的基本参考
我正在寻找一些有关贝叶斯统计基本 MCMC(带有R)的实用和理论示例的论文或书籍。我从来没有研究过模拟,这就是为什么我要寻找“基本”信息。你能给我一些建议吗?


1
如何得出吉布斯采样?
我实际上是在犹豫地提出这个问题,因为恐怕我会被其他问题或维基百科上有关Gibbs抽样的问题提及,但是我不觉得它们描述了即将发生的事情。 给定条件概率: p(x|y)p(x|y)p(x|y)p(x|y)x=x0x=x1y=y01434y=y12646p(x|y)y=y0y=y1x=x01426x=x13446 \begin{array}{c|c|c} p(x|y) & y = y_0 & y = y_1 \\ \hline x = x_0 & \tfrac{1}{4} & \tfrac{2}{6} \\ \hline x = x_1 & \tfrac{3}{4} & \tfrac{4}{6} \\ \end{array} 还有一个条件概率: p(y|x)p(y|x)p(y|x)p(y|x)x=x0x=x1y=y01337y=y12347p(y|x)y=y0y=y1x=x01323x=x13747 \begin{array}{c|c|c} p(y|x) & y = y_0 & y = y_1 \\ \hline x = x_0 …
11 sampling  mcmc  gibbs 

1
伊辛模型的吉布斯抽样
作业问题: 考虑一维伊辛模型。 令。x_i为-1或+1x=(x1,...xd)x=(x1,...xd)x = (x_1,...x_d)xixix_i π(x)∝e∑39i=1xixi+1π(x)∝e∑i=139xixi+1\pi(x) \propto e^{\sum_{i=1}^{39}x_ix_{i+1}} 设计一个gibbs采样算法,以大致根据目标分布\ pi(x)生成样本π(x)π(x)\pi(x)。 我的尝试: 随机选择值(-1或1)以填充向量x=(x1,...x40)x=(x1,...x40)x = (x_1,...x_{40})。所以x=(−1,−1,1,1,1,−1,1,1,...,1)x=(−1,−1,1,1,1,−1,1,1,...,1)x = (-1, -1, 1, 1, 1, -1, 1, 1,...,1)。所以这是x0x0x^0。 因此,现在我们需要继续进行第一次迭代。我们必须分别为x ^ 1绘制40个不同的x x1x1x^1。所以... 从\ pi(x_1 | x_2 ^ 0,...,x_ {40} ^ 0)中绘制x11x11x_1^1π(x1|x02,...,x040)π(x1|x20,...,x400)\pi(x_1 | x_2^0,...,x_{40}^0) 从\ pi(x_2 | x_1 ^ 1,x_3 ^ 0,...,x_ {40} ^ 0)中绘制x12x21x_2^1π(x2|x11,x03,...,x040)π(x2|x11,x30,...,x400)\pi(x_2 | …

2
决策树空间与随机森林的MCMC采样
一个随机森林是一家集决策树通过随机选择只是某些功能建立与(有时装袋训练数据),每棵树形成。显然,他们学习并概括得很好。是否有人对决策树空间进行了MCMC采样或将它们与随机森林进行了比较?我知道运行MCMC并保存所有采样树可能在计算上更加昂贵,但是我对这个模型的理论特性感兴趣,而不是计算成本。我的意思是这样的: 构造一个随机决策树(它可能会表现得很差) 用类似计算树的可能性,或者添加一个项。P(T[R Ë Ë | D a t a )∝ P(D a t a | T[R Ë Ë )P(Ť[RËË|d一种Ť一种)∝P(d一种Ť一种|Ť[RËË)P(Tree|Data) \propto P(Data|Tree)Pp - [R 我ö ř(T[R Ë Ë )Pp[R一世Ø[R(Ť[RËË)P_{prior}(Tree) 选择一个随机步骤来更改树,然后根据似然度。P(T[R Ë Ë | d一吨一)P(Ť[RËË|d一种Ť一种)P(Tree|Data) 每N步,保存当前树的副本 返回3进行大的N * M次 使用M个保存的树的集合进行预测 这会给随机森林一个类似的表现吗?请注意,与随机森林不同,我们在任何步骤都不会丢弃好数据或功能。

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.