pymc3相关内容

带变点的PyMC3回归

我看到了如何使用pymc3进行变点分析的示例,但似乎遗漏了一些东西,因为我得到的结果与真实值相差甚远。这里有一个玩具示例。 数据: 脚本: from pymc3 import * from numpy.random import uniform, normal bp_u = 30 #switch point c_u = [1, -1] #intercepts before an ..
发布时间:2022-02-26 18:59:59 Python

如何在pymc3中的跟踪上计算GP的对数后验

用例 假设我在 X_0 处有一个观察值 y_0,我想用带有超参数 theta 的高斯过程对其进行建模.假设我然后通过对后验进行分层采样来确定超参数 theta 中的分布. 现在,我想评估另一个观察的对数后验概率,例如 y_1 在 X_1,在超参数分布上取平均值,E_theta [ log P(y_1 | y_0, X_0, X_1, theta) ]理想情况下,我会从 theta 中的 ..
发布时间:2021-09-06 20:41:58 Python

定义自定义 Op theano 的等级

我正在尝试定义一个带有渐变的自定义 theano Op 以将其与 pymc3 一起使用,但我不明白如何定义 grad 方法. 下面的代码是我被卡住的地方.函数 phi() 是一个模拟函数(实际上是一个外部程序);对于标量输入 x,它返回一个向量 (phi_0(x), phi_1(x), ...).函数 phi_diff()(也是一个模拟函数)返回向量 (dphi_0/dx, dphi_1/d ..
发布时间:2021-09-06 20:41:30 Python

PyMC3 &Theano - Theano 代码在 pymc3 导入后停止工作

一些简单的theano代码完美运行,当我导入pymc3时停止工作 这里有一些片段以重现错误: #Initial Theano Code(这个有效)将 theano.tensor 导入为 tsrx = tsr.dscalar('x')y = tsr.dscalar('y')z = x + y#片段 1导入 pymc3 作为 pm将 theano.tensor 导入为 tsrx = tsr.d ..
发布时间:2021-09-06 20:40:54 Python

在 PYMC3 中使用自定义似然会导致“预期 ndarray"错误

我正在尝试在 PYMC3 中使用自定义分布(广义极值或 GEV 分布).我已经写了一些代码来计算这个,但是我得到了一个 的错误 ValueError: 需要一个 ndarray应用导致错误的节点:MakeVector{dtype='float64'}(logp_sigma_log, __logp_mu, __logp_xi, __logp_x) 代码如下: @theano.as_op( ..
发布时间:2021-09-06 20:40:45 其他开发

无法在分层 pymc3 模型中创建 lambda 函数

我正在尝试使用 PyMC 3 创建如下所示的模型,但无法弄清楚如何使用 lambda 函数将概率正确映射到观察到的数据. 将 numpy 导入为 np将 pymc 导入为 pm数据 = np.array([[0, 0, 1, 1, 2],[0, 1, 2, 2, 2],[2, 2, 1, 1, 0],[1, 1, 2, 0, 1]])(D, W) = data.shapeV = len(set( ..
发布时间:2021-09-06 20:40:17 其他开发

自定义 Theano Op 进行数值积分

我正在尝试编写一个自定义 Theano Op,它在两个值之间对函数进行数值积分.Op 是 PyMC3 的自定义似然,它涉及一些积分的数值评估.我不能简单地使用 @as_op 装饰器,因为我需要使用 HMC 来执行 MCMC 步骤.任何帮助将不胜感激,因为这个问题似乎已经出现好几次,但从未得到解决(例如 https://stackoverflow.com/questions/36853015/usi ..
发布时间:2021-09-06 20:40:11 Python

如何使用 theano.op 在 pymc3 中编写自定义确定性或随机性?

我正在做一些 pymc3 并且我想创建自定义随机指标,但是似乎没有很多关于它是如何完成的文档.我知道如何使用 as_op 方式,但是显然这使得无法使用 NUTS 采样器,在这种情况下,我看不到 pymc3 优于 pymc. 教程中提到可以通过继承theano.Op来完成.但是谁能告诉我它是如何工作的(我还在开始使用 theano)?我有两个要定义的随机指标. 第一个应该更简单,它是一个 ..
发布时间:2021-09-06 20:39:54 Python

pymc3中的多元线性回归

在专门使用 emcee 多年后,我最近开始学习 pymc3,但我遇到了一些概念上的问题. 我正在练习 Hogg 将模型拟合到数据的第 7 章.这涉及到具有任意二维不确定性的直线的 mcmc 拟合.我在 emcee 中很容易地完成了这件事,但是 pymc 给了我一些问题. 它本质上归结为使用多元高斯似然. 这是我目前所拥有的. from pymc3 import *将 numpy ..
发布时间:2021-08-30 18:41:19 Python

PyMC3- 自定义 theano Op 进行数值积分

我正在使用 PyMC3 使用必须定义的特定似然函数进行参数估计.我用谷歌搜索,发现我应该使用 densitydist 方法来实现用户定义的似然函数,但它不起作用.如何在 PyMC3 中加入用户定义的似然函数并找出我的模型的 posteriori (MAP) 估计的最大值?我的代码如下.这里 L 是我的似然函数的解析形式.我有一些物体的径向速度(vr)和位置(r)的观测数据,这些数据是从 excel ..
发布时间:2021-06-26 20:00:35 其他开发

如何评估pymc3中的对数后验

我想在样本点和一些手动输入的点(例如,合成数据集的真实参数值点)上评估对数后验(理想情况下分别对数先验和对数似然)值.如何在PyMC3中实现这一目标? 更新:我已经找到了 logp()方法,但是对多个点使用它不是很方便.有一些标准/惯用的方法吗? 更新: [[y.logp(trace [i])for i in range(len(trace))] 可以工作,但是速度很慢. 更新: ..
发布时间:2021-04-15 18:55:32 Python

当参数已知时,如何从自定义分布中采样?

目标是从已知参数的分布中获取样本. 例如,自定义分布为p(X | theta),其中theta为K维的参数矢量,X为N维的随机矢量. 现在我们知道(1)theta是已知的;(2)p(X | theta)未知,但我知道p(X | theta)∝ f(X,theta),f是已知函数. pymc3可以从p(X | theta)进行这种采样吗? 目的不是从参数的后验分布中采样,而是 ..
发布时间:2021-04-15 18:55:12 Python

使用PYMC3对RV求和

我正在尝试从图像中实现模型.我是PyMC3的新手,我不确定如何正确构建模型.我的尝试如下: # sample data logprem = np.array([8.66768002, 8.49862181, 8.60410456, 8.54966038, 8.55910259, 8.56216656, 8.51559191, 8.60630237, 8 ..
发布时间:2020-09-20 03:52:16 Python

colaboratory在安装和导入后不会确认arviz

在Google的实验室中,已安装的arviz然后确实导入了arviz,而没有错误,但是在代码单元中,pm.plot_posterior(samples)出现了错误:未安装arviz. 试图绘制贝叶斯代码 pm.plot_posterior(samples) 我希望有个情节 解决方案 在导入PyMC3之前安装Arviz ,否则显然找不到它.就您而言,只需重新启动运行时(运行时 ..
发布时间:2020-09-20 03:48:57 Python

PyMC3-将观测值传递到模型的方式上的差异->结果不同?

我试图了解将数据传递到模型中的方式是否存在任何有意义的差异-汇总或作为单一试验(请注意,这仅对某些分布(例如二项式)而言是一个有意义的问题). 使用具有二项分布的简单模型预测 p 是/否轨迹. 以下模型(如果有)的计算/结果有什么区别? 我选择两个极端,一次通过一次(减少到伯努利),或者一次通过整个系列的总和,尽管我也对这两个极端之间的差异感兴趣,但我还是选择了这两个例子来说明我 ..
发布时间:2020-09-20 03:47:51 Python

使用NUTS和Metropolis的分层概率模型的收敛性问题

我正在尝试从Gelman和Hill扩展层次模型在扩展之前,使用NUTS采样器可以很好地运行模型.添加后,估算值将缓慢增加并持续增加,直到模型停滞10到200次迭代之间的任何位置.这是一幅图像,直到它一直达到120(相对较长的时间). 在扩展之前,Metropolis需要进行200,000次迭代才能很好地修复真实的参数值,但最终还是可以.扩展后,它停顿在30k到50k之间.与NUTS不同,当您尝试在 ..
发布时间:2020-09-20 03:46:47 Python

如何使用Pymc3模拟偏置的6面骰子?

如何使用Pymc3模拟6面骰子掷骰?另外,我知道骰子的不同面具有不同的分布吗? 解决方案 在PyMC3中模拟1000卷6面公平骰子的最简单方法是 import pymc3 as pm with pm.Model(): rolls = pm.DiscreteUniform('rolls', lower=1, upper=6) trace = pm.sample(100 ..
发布时间:2020-09-20 03:44:41 Python