问题标签 [emcee]

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 投票
1 回答
5309 浏览

python - pymc3中的多元线性回归

我最近pymc3在专门使用emcee多年后开始学习,但遇到了一些概念问题。

我正在练习Hogg's Fitting a model to data 的第 7 章。这涉及到具有任意二维不确定性的直线的 mcmc 拟合。我在 中很容易做到这一点emcee,但pymc给我带来了一些问题。

它本质上归结为使用多元高斯似然。

这是我到目前为止所拥有的。

这会引发错误:LinAlgError: Last 2 dimensions of the array must be square

所以我试图传递MvNormalx 和 y ( mus) 的测量值及其相关的测量不确定性 (y_errx_err)。但它似乎不喜欢 2dtau参数。

有任何想法吗?这必须是可能的

谢谢

0 投票
2 回答
510 浏览

python - Emcee 不会在 Windows 中运行多线程

我在 Windows 桌面上以多线程模式运行 python Emcee MCMC 代码时遇到问题。它在一个线程上运行良好,并在我的 Mac OSX 笔记本电脑上以单线程或多线程模式运行。这是简单的示例代码(取自 Emcee 网站示例)。

如果我设置threads=1,它在两台机器上都运行良好,运行大约需要5秒。如果我设置线程= 2,它在 Mac 上运行良好,但在 Windows 机器上挂起。笔记本中没有记录任何错误,但在命令提示符窗口中,我看到错误消息杂乱无章,好像两个进程正在尝试同时写入错误消息。我似乎无法从窗口复制和粘贴它们,但它们最终得到:

在两台机器上,我都在 Jupyter 笔记本中运行它。我检查了我是否有更新版本的 emcee、conda 和 anaconda。关于我为什么遇到麻烦的任何想法?

0 投票
2 回答
702 浏览

python - 重试直到没有 RuntimeWarning

我正在尝试使用 MCMC 将曲线拟合到一些数据。

由于我的特定问题的性质,偶尔(运行代码的 1/5 次)会遇到一些奇点,代码会引发 RuntimeWarning 并继续给出错误的答案。

这基本上会发生,因为我正在记录高斯,并且建议的平均值之一等于数据点之一。

我想重试运行代码,可能使用 try 和 except,直到这些运行时警告不发生。谢谢!

编辑:在@sgDysregulation 发表评论后,我尝试过:

我尝试使用“pass”和“continue”语句,将“break”放在while循环和“try”中。还尝试了“RuntimeWarning”而不是“Exception”。

上面代码段的输出未显示检测到任何警告。

0 投票
1 回答
396 浏览

python - 使用 emcee 对概率分布函数进行抽样?

我有两个数组(pdf_#),每个数组都包含一个参数的概率(val_#)。我如何从这些分布中采样以创建联合后验分布(即像这里的角图)?对于司仪,看起来我只能传递要从中采样的函数,而不是数组。

这是我所拥有的:

(实际上,pdf 的采样更精细,总和为 1)

我想在pdf之后生成N个样本(x,y来自val_1,val_2)。

0 投票
0 回答
613 浏览

python - 使用 Python 的 emcee 对玻尔兹曼分布进行采样

我是 python 的初学者,正在学习使用 MCMC 采样方法,使用 python 的 emcee 包。作为初学者练习,我想对 Maxwell-Boltzmann 分布进行采样。我有一个示例代码,它对高斯进行采样,通过下面的函数定义;

我将如何以相同的方式表达 Boltzmann 分布?

0 投票
1 回答
816 浏览

python - MCMC 使用 Python 的 emcee 对麦克斯韦曲线进行采样

我正在尝试向自己介绍 MCMC 与 emcee 的采样。我想使用 github 上的一组示例代码,https://github.com/dfm/emcee/blob/master/examples/quickstart.py从 Maxwell Boltzmann 分布中简单地获取一个样本。

示例代码非常出色,但是当我将分布从高斯分布更改为麦克斯韦分布时,我收到错误,TypeError: lnprob() 恰好需要 2 个参数(给定 3 个)

但是,在没有给出适当参数的任何地方都不会调用它?需要一些关于如何定义麦克斯韦曲线并使其适合此示例代码的指导。

这就是我所拥有的;

谢谢

0 投票
1 回答
713 浏览

python - 主持人中的步行者不探索参数空间?

首先:为缺乏代码和相当模糊的描述道歉;我使用的代码有 1000 多行,我不确定它的哪些部分对发布有帮助。

我正在使用 emcee 进行一些贝叶斯参数估计。我的代码使用 50 个 walker,每个都进行 600 次迭代(没有细化),但无论出于何种原因,walker 链似乎收敛得相当快。虽然我启动了 50 个随机分布在 -1 和 1 之间的步行者,但它们并没有探索整个参数空间,但似乎很快收敛(通常围绕真实参数值)。图片如下:

实际参数值为 .6 和 .4

实际参数值为 .6 和 .4

实际参数值为-1。和 1。

实际参数值为-1。 和 1。

任何建议都非常感谢!

0 投票
1 回答
1061 浏览

python - 为 emcee 中的每个参数定义自定义先验

我有一个带有三个参数的函数ab并且c我想为每个参数定义不同的先验。我正在使用该emcee软件包。

我先从简单的制服(非信息性)开始:

我希望每个参数都有一个不同的先验。例如,a我想有一个 Normal(mu,sigma) 先验,而对于b制服和cJeffreys 先验(1/c)。到目前为止,我得出以下结论:

据我了解,我必须将所有概率加在一起来定义总数(的返回值lnprior)。所以让我们从 Normal on 开始a

log_Pr(a) = np.log( 1.0 / (np.sqrt(2*np.pi)*sigma) ) - 0.5*(a - mu)**2/sigma**2;

然后是先验c

log_Pr(c) = -log(c).

因此,总对数先验应该是:Pr(a)+Pr(c)。我的问题,这种方法正确吗?

谢谢

0 投票
2 回答
378 浏览

python - emcee - 为什么值超出先前空间

我通过以下方式指定我的先验不是负面的:

然后我按照 司仪网页上的食谱进行操作:

我不会以任何方式改变(至少在不知情mu的情况下) lnlike......

然后当我使用 生成角图fig = corner.corner(samples, labels=["$\sigma$", "$\mu$",'$c$'],color=sns.xkcd_rgb["amber"])时,其中角是,我仍然得到几个落在下两个象限的点。为什么是这样 ?


这是我定义 lnlike 的方式:

在此处输入图像描述

0 投票
1 回答
608 浏览

python - 索引 2 超出范围

我有以下关于约束参数的代码。运行代码时出现此错误:

samples[:, 2] = np.exp(samples[:, 2]) IndexError: index 2 is out of bounds for axis 1 with size 2

任何帮助请,我应该如何解决这个错误?感谢您的帮助和关注 import numpy as np import emcee import matplotlib.pyplot as plt from math import * import numpy as np from scipy.integrate import quad from scipy.integrate import odeint