pymc3相关内容
我看到了如何使用pymc3进行变点分析的示例,但似乎遗漏了一些东西,因为我得到的结果与真实值相差甚远。这里有一个玩具示例。 数据: 脚本: from pymc3 import * from numpy.random import uniform, normal bp_u = 30 #switch point c_u = [1, -1] #intercepts before an
..
用例 假设我在 X_0 处有一个观察值 y_0,我想用带有超参数 theta 的高斯过程对其进行建模.假设我然后通过对后验进行分层采样来确定超参数 theta 中的分布. 现在,我想评估另一个观察的对数后验概率,例如 y_1 在 X_1,在超参数分布上取平均值,E_theta [ log P(y_1 | y_0, X_0, X_1, theta) ]理想情况下,我会从 theta 中的
..
我正在尝试定义一个带有渐变的自定义 theano Op 以将其与 pymc3 一起使用,但我不明白如何定义 grad 方法. 下面的代码是我被卡住的地方.函数 phi() 是一个模拟函数(实际上是一个外部程序);对于标量输入 x,它返回一个向量 (phi_0(x), phi_1(x), ...).函数 phi_diff()(也是一个模拟函数)返回向量 (dphi_0/dx, dphi_1/d
..
一些简单的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
..
我正在尝试在 PYMC3 中使用自定义分布(广义极值或 GEV 分布).我已经写了一些代码来计算这个,但是我得到了一个 的错误 ValueError: 需要一个 ndarray应用导致错误的节点:MakeVector{dtype='float64'}(logp_sigma_log, __logp_mu, __logp_xi, __logp_x) 代码如下: @theano.as_op(
..
我正在尝试使用 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(
..
我正在尝试编写一个自定义 Theano Op,它在两个值之间对函数进行数值积分.Op 是 PyMC3 的自定义似然,它涉及一些积分的数值评估.我不能简单地使用 @as_op 装饰器,因为我需要使用 HMC 来执行 MCMC 步骤.任何帮助将不胜感激,因为这个问题似乎已经出现好几次,但从未得到解决(例如 https://stackoverflow.com/questions/36853015/usi
..
我正在做一些 pymc3 并且我想创建自定义随机指标,但是似乎没有很多关于它是如何完成的文档.我知道如何使用 as_op 方式,但是显然这使得无法使用 NUTS 采样器,在这种情况下,我看不到 pymc3 优于 pymc. 教程中提到可以通过继承theano.Op来完成.但是谁能告诉我它是如何工作的(我还在开始使用 theano)?我有两个要定义的随机指标. 第一个应该更简单,它是一个
..
我尝试根据进球数预测足球比赛的结果,并使用以下模型: 以 pm.Model() 作为模型:# 全局模型参数h = pm.Normal('h', mu = mu, tau = tau)sd_a = pm.Gamma('sd_a', .1, .1)sd_d = pm.Gamma('sd_d', .1, .1)alpha = pm.Normal('alpha', mu=mu, tau = tau)#
..
在专门使用 emcee 多年后,我最近开始学习 pymc3,但我遇到了一些概念上的问题. 我正在练习 Hogg 将模型拟合到数据的第 7 章.这涉及到具有任意二维不确定性的直线的 mcmc 拟合.我在 emcee 中很容易地完成了这件事,但是 pymc 给了我一些问题. 它本质上归结为使用多元高斯似然. 这是我目前所拥有的. from pymc3 import *将 numpy
..
我正在使用 PyMC3 使用必须定义的特定似然函数进行参数估计.我用谷歌搜索,发现我应该使用 densitydist 方法来实现用户定义的似然函数,但它不起作用.如何在 PyMC3 中加入用户定义的似然函数并找出我的模型的 posteriori (MAP) 估计的最大值?我的代码如下.这里 L 是我的似然函数的解析形式.我有一些物体的径向速度(vr)和位置(r)的观测数据,这些数据是从 excel
..
我想在样本点和一些手动输入的点(例如,合成数据集的真实参数值点)上评估对数后验(理想情况下分别对数先验和对数似然)值.如何在PyMC3中实现这一目标? 更新:我已经找到了 logp()方法,但是对多个点使用它不是很方便.有一些标准/惯用的方法吗? 更新: [[y.logp(trace [i])for i in range(len(trace))] 可以工作,但是速度很慢. 更新:
..
我已经尝试通过使用PyMC3将简单的2D高斯模型拟合到观测数据. 将numpy导入为np导入pymc3作为pmn = 10000;np.random.seed(0)X = np.random.multivariate_normal([0,0],[[1,0],[0,1]],n);使用pm.Model()作为模型:#优先mu = [pm.Uniform('mux',lower = -1,upper
..
目标是从已知参数的分布中获取样本. 例如,自定义分布为p(X | theta),其中theta为K维的参数矢量,X为N维的随机矢量. 现在我们知道(1)theta是已知的;(2)p(X | theta)未知,但我知道p(X | theta)∝ f(X,theta),f是已知函数. pymc3可以从p(X | theta)进行这种采样吗? 目的不是从参数的后验分布中采样,而是
..
我正在尝试从图像中实现模型.我是PyMC3的新手,我不确定如何正确构建模型.我的尝试如下: # sample data logprem = np.array([8.66768002, 8.49862181, 8.60410456, 8.54966038, 8.55910259, 8.56216656, 8.51559191, 8.60630237, 8
..
在Google的实验室中,已安装的arviz然后确实导入了arviz,而没有错误,但是在代码单元中,pm.plot_posterior(samples)出现了错误:未安装arviz. 试图绘制贝叶斯代码 pm.plot_posterior(samples) 我希望有个情节 解决方案 在导入PyMC3之前安装Arviz ,否则显然找不到它.就您而言,只需重新启动运行时(运行时
..
我正在努力在pymc3中实现隐马尔可夫链.在实现隐藏状态方面,我已经走了很远.下面,我展示了一个简单的2状态马尔可夫链: import numpy as np import pymc3 as pm import theano.tensor as tt # Markov chain sample with 2 states that was created # to have prob 0-
..
我试图了解将数据传递到模型中的方式是否存在任何有意义的差异-汇总或作为单一试验(请注意,这仅对某些分布(例如二项式)而言是一个有意义的问题). 使用具有二项分布的简单模型预测 p 是/否轨迹. 以下模型(如果有)的计算/结果有什么区别? 我选择两个极端,一次通过一次(减少到伯努利),或者一次通过整个系列的总和,尽管我也对这两个极端之间的差异感兴趣,但我还是选择了这两个例子来说明我
..
我正在尝试从Gelman和Hill扩展层次模型在扩展之前,使用NUTS采样器可以很好地运行模型.添加后,估算值将缓慢增加并持续增加,直到模型停滞10到200次迭代之间的任何位置.这是一幅图像,直到它一直达到120(相对较长的时间). 在扩展之前,Metropolis需要进行200,000次迭代才能很好地修复真实的参数值,但最终还是可以.扩展后,它停顿在30k到50k之间.与NUTS不同,当您尝试在
..
如何使用Pymc3模拟6面骰子掷骰?另外,我知道骰子的不同面具有不同的分布吗? 解决方案 在PyMC3中模拟1000卷6面公平骰子的最简单方法是 import pymc3 as pm with pm.Model(): rolls = pm.DiscreteUniform('rolls', lower=1, upper=6) trace = pm.sample(100
..