问题标签 [mcmc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10455 浏览

r - R:生成混合分布的函数

我需要从混合分布中生成样本

  • 40% 样本来自 Gaussian(mean=2,sd=8)

  • 20% 样本来自 Cauchy(location=25,scale=2)

  • 40% 样本来自 Gaussian (mean = 10, sd=6)

为此,我编写了以下函数:

然后测试:

我得到这样的直方图(我知道这是错误的) - 假定分布的直方图

我究竟做错了什么?任何人都可以指点一下吗?

0 投票
1 回答
1098 浏览

statistics - 使用 PyMC 设置具有对数似然和对数正态先验的 MCMC

我是 pyMC 的新手,我仍然无法使用 pyMC 构建我的 MCMC 的结构。我想建立一个链,我很困惑如何一起定义我的参数和对数似然函数。我的卡方函数由下式给出:

在此处输入图像描述

其中在此处输入图像描述在此处输入图像描述分别是观测数据和对应误差,在此处输入图像描述是具有四个自由参数的模型,参数是非线性的。

X和的先验Y是统一的,例如:

但对于MC给出如下:

在此处输入图像描述

其中的平均值C是通过计算的

在此处输入图像描述

在此处输入图像描述

对于MC,先验应该如下所示:

该参数z也是C先验常数。我想知道如何定义我的可能性在此处输入图像描述,并且应该将其称为@Deterministic variable?我是否以正确的方式将M和定义C为先验信息?

如果有人给我一些提示,告诉我如何将这些参数与给定的先验结合起来,我将不胜感激。

0 投票
1 回答
1317 浏览

python - 从 pymc 中保存的跟踪中绘制图形

我需要使用不同的参数运行不同时间的 MCMC 来检查收敛性。所以我决定保存这些痕迹,以便当我需要知道(出于比较目的)

pymc.MCMC (iter = 10000, burn = 1000, thin = 10)

我不需要重新运行它。(这需要很多时间(我必须为许多不同的参数值做同样的事情))。

我找到了解决方案

因此,跟踪现在保存在名为10000iter1000burn.pickle的数据库中

现在,要加载跟踪,我执行以下操作

当我执行时,print db.trace('tau')[:]我得到相同的输出,但是当我想要绘制图形或获取其他信息时,它失败了

plot() 至少需要 2 个参数(给定 1 个) ,但是当我执行 plot(m) 时(我再次运行采样器的初始情况),它工作正常。

同样db.tau.summary()给出错误“跟踪”对象没有属性“摘要” 当我这样做时它工作正常m.tau.summary()

同样适用于db.logp

我是这个领域的新手。如果语法中某处有任何错误,请纠正我。如果有其他方法可以重新绘制图形并获得模型的对数概率而无需再次运行 mcmc,我将很高兴知道。

0 投票
1 回答
733 浏览

python - logp in stochastic variables of pymc

I have a very intrinsic confusion regarding logp. I will like to explain through anexample on na webpage so that I don't fall short of explaining it well.

I wrote disaster_model.py as illlustrated in this tutorial: http://pymc-devs.github.io/pymc/tutorial.html

I launched a python shell and after importing all required modules, I did the following

#xA;

I will reemphasize the line (written in disaster_model.py)

disasters = Poisson('disasters', mu=rate, value=disasters_array, observed=True

Hence value of disasters is never going to change.

Now my question is

1) Why did log probabilities change of every variable except switchpoint?

(Kindly explain why the log probabilties should change, and if they should, then why swithpoint's didn't)

2) What do old and new log probabilities represent ?

(It was ipython shell and not python, but it hardly matters)

0 投票
1 回答
215 浏览

python - pymc 中的随机变量

我遇到过这样的术语

在很多地方。

我在任何地方都找不到关于它们的信息。我只能看到它们的用法。

uniform, binomial它们分别表示什么以及它们有何不同

0 投票
1 回答
670 浏览

pymc - 在 Pymc 中具有自定义日志可能性的 Metropolis Hastings

我想使用 pymc 使用 MH 链从自定义日志可能性中进行采样。但我似乎无法让它工作,也无法在网上找到一个像样的例子。

它是一个 3 维变量,具有统一的先验和在 logp() 中计算的对数似然。我想运行一个具有自适应提案分布的 MH 链。但是每次我运行采样器时它只返回一个均匀分布(事实上,它只是从上面的随机函数返回样本 - 当我将它修改为 0.5*np.random.rand(numDims) 它返回一个 Unif( (0, 1)^3) 分布。)

但是,我知道正在调用 logp 函数。

我还有几个问题: - 上面随机函数的目的是什么?我最初认为这是一个先验,但看起来不像。

0 投票
1 回答
50 浏览

python - PyMC中变量声明的含义

在本教程http://pymc-devs.github.io/pymc/tutorial.html#an-example-statistical-model中,

disasters = Poisson('disasters', mu=rate, value=disasters_array, observed=True)

这条线表示它disasters是一个泊松随机变量或者disasters是一个泊松随机变量的集合,第 i 个随机变量的参数 = rate[i](即每个 rv 是从不同的随机过程中得出的,psrsmeter 由 rate[i] 给出)

我应该如何解释这条线?

0 投票
1 回答
348 浏览

python - PyMC 中的装饰器

我有三个关于装饰器的问题,我无法找到答案:

Q1)PyMC(@Deterministic,@Stochastic)中装饰器的参数表示什么?

Q2)

1)按预期打印 switchpoint.logp #prints log-probability

2)print switchpoint.random #不生成随机数

3)print switchpoint.random() #生成一个随机数

4) 打印 switchpoint.logp() #error

如果 2 不起作用而 3 起作用,那么 1 不应该起作用并且 instaed 4 应该起作用(这与我观察到的相反)。有人可以解释发生了什么吗?

Q3)

这里没有说明,logp还是如果我键入switchpoint.logp,这段代码就执行了?

0 投票
1 回答
197 浏览

octave - e 的八度近似值

我想在 Octave 中使用 MCMC 算法以最大精度计算以下表达式:“1/e”。在阅读了一些教程后,我找到了计算 π 的公式,但我不明白它是如何工作的。

有人可以解释并帮助我提示,如何使用这样的东西来计算'e'的值?

提前致谢。

0 投票
1 回答
144 浏览

python - PyMC 中的 MAP 出现意外错误

我不明白为什么 MAP 在相同场景下 MCMC 工作正常时会出错?我写在代码的相关部分下面。

tau = Uniform('tau', lower=0.01, upper=5, doc='tau') rv = [ Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed =True) for i in xrange(0, len(count)) ] M = MAP([rv, tau]) M.fit() tau_hat = M.tau.value()

错误:AttributeError:“MAP”对象没有属性“tau”(对于最后一行 M.tau.value())

另一方面,如果我使用 MCMC 代替 MAP,它可以正常工作:

m = MCMC([tau, rv]) m.sample(iter = 500) print m.trace('tau')

我想要后验概率最大的 tau 点估计,并将其与贝叶斯预测(我使用 MCMC)进行比较

关于变量的一些信息:

prob_distribution 是一个确定性函数,在给定 tau 和其他一些信息的情况下,它会返回每个游戏的预测概率分布列表。我有大约 200 个游戏,所以 prob_distribution 是一个包含 200 个列表的列表(每个列表都包含该游戏的动作概率分布,例如[0.4, 0.4, 0.2])。 同样,count 是一个包含 200 个数字的列表,count[i] 表示我th玩游戏的次数。data[i] 是 ith游戏的观察信息,例如如果 data[i] = [10 10 6],count[i] 将为 26

附加说明

如果我包括以下行:

model = Model([rv, tau])

然后不知道我是否使用

M = MAP(model)或者m = MCMC(model)

这会产生如下错误:

TypeError: hasattr(): 属性名必须是字符串

有人可以解释发生了什么吗?