Bayesian pymc3的优化误差
我正在尝试使用pymc3创建一个相对简单的分层贝叶斯模型。然而,我不断地得到一个错误。代码是:Bayesian pymc3的优化误差,bayesian,pymc,multi-level,pymc3,Bayesian,Pymc,Multi Level,Pymc3,我正在尝试使用pymc3创建一个相对简单的分层贝叶斯模型。然而,我不断地得到一个错误。代码是: import numpy as np import pymc3 as pm # Example data. ncond = 4 nSubj = 40 trials = 64 N = np.repeat([trials], (ncond * nSubj)) z = np.array([45, 63, 58, 64, 58, 63, 51, 60, 59, 47, 63, 61, 60, 51, 59
import numpy as np
import pymc3 as pm
# Example data.
ncond = 4
nSubj = 40
trials = 64
N = np.repeat([trials], (ncond * nSubj))
z = np.array([45, 63, 58, 64, 58, 63, 51, 60, 59, 47, 63, 61, 60, 51, 59, 45,
61, 59, 60, 58, 63, 56, 63, 64, 64, 60, 64, 62, 49, 64, 64, 58, 64, 52, 64, 64,
64, 62, 64, 61, 59, 59, 55, 62, 51, 58, 55, 54, 59, 57, 58, 60, 54, 42, 59, 57,
59, 53, 53, 42, 59, 57, 29, 36, 51, 64, 60, 54, 54, 38, 61, 60, 61, 60, 62, 55,
38, 43, 58, 60, 44, 44, 32, 56, 43, 36, 38, 48, 32, 40, 40, 34, 45, 42, 41, 32,
48, 36, 29, 37, 53, 55, 50, 47, 46, 44, 50, 56, 58, 42, 58, 54, 57, 54, 51, 49,
52, 51, 49, 51, 46, 46, 42, 49, 46, 56, 42, 53, 55, 51, 55, 49, 53, 55, 40, 46,
56, 47, 54, 54, 42, 34, 35, 41, 48, 46, 39, 55, 30, 49, 27, 51, 41, 36, 45, 41,
53, 32, 43, 33])
condition = np.repeat([0,1,2,3], nSubj)
# Specify the model in PyMC
with pm.Model() as model:
# define the hyperparameters
kappa = pm.Gamma('kappa', 1, 0.1)
mu = pm.Beta('mu', 1, 1, shape=ncond)
# define the prior
theta = pm.Beta('theta', mu[condition] * kappa, (1 - mu[condition]) * kappa, shape=len(z))
# define the likelihood
y = pm.Binomial('y', p=theta, n=N, observed=z)
start = pm.find_MAP()
step1 = pm.Metropolis([mu])
step2 = pm.Metropolis([theta])
step3 = pm.NUTS([kappa])
# samplers = [pm.Metropolis([rv]) for rv in model.unobserved_RVs]
trace = pm.sample(10000, [step1, step2, step3], start=start, progressbar=False)
但是我一直在得到一个关于find_MAP()函数的错误。谁能向我解释一下这个错误吗
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-c4e40b20fd5c> in <module>()
38 # define the likelihood
39 y = pm.Binomial('y', p=theta, n=N, observed=z)
---> 40 start = pm.find_MAP()
41 step1 = pm.Metropolis([mu])
42 step2 = pm.Metropolis([theta])
/Library/Python/2.7/site-packages/pymc3/tuning/starting.pyc in find_MAP(start, vars, fmin, return_raw, disp, model, *args, **kwargs)
124 "density. 2) your distribution logp's are " +
125 "properly specified. Specific issues: \n" +
--> 126 specific_errors)
127 mx = {v.name: np.floor(mx[v.name]) if v.dtype in discrete_types else
128 mx[v.name] for v in model.vars}
ValueError: Optimization error: max, logp or dlogp at max have non-finite values. Some values may be outside of distribution support. max: {'mu': array([ 14.66440283, 67.64627608, 36.73991444, -2.27146408]), 'theta': array([ -3.28858534e+02, 1.49945045e+02, -7.02150417e+01,
9.97352990e-01, -7.02150417e+01, 1.49945045e+02,
-1.50195789e+02, 5.63428376e+00, -9.29002815e+01,
-2.70445580e+02, 1.49945045e+02, 1.03986058e+02,
5.63428376e+00, -1.50195789e+02, -9.29002815e+01,
-3.28858534e+02, 1.03986058e+02, -9.29002815e+01,
5.63428376e+00, -7.02150417e+01, 1.49945045e+02,
-5.57301509e+01, 1.49945045e+02, 1.01682005e+00,
9.62368437e-01, 5.63428376e+00, 9.95206871e-01,
5.88827819e+01, -2.08511670e+02, -7.51688112e+00,
9.54524715e+00, -7.02150417e+01, 1.02401342e+00,
-1.24386722e+02, 1.00553699e+00, 1.00113792e+00,
1.05862921e+00, 5.88827819e+01, 9.96530636e-01,
1.03986058e+02, -1.66473577e+02, -1.66473577e+02,
1.21070195e+02, 7.06961277e+01, 1.51469750e+02,
-1.01158381e+02, 1.21070195e+02, 1.47085125e+02,
-1.66473577e+02, -5.55202522e-01, -1.01158381e+02,
5.37160225e+01, 1.47085125e+02, -3.00112781e+01,
-1.66473577e+02, -5.55202522e-01, -1.66473577e+02,
1.58340576e+02, 1.58340575e+02, -3.00112781e+01,
-1.66473577e+02, -5.55202521e-01, -1.87830813e+01,
-7.63325604e+01, 1.51469750e+02, 6.56687525e+02,
5.37160224e+01, 1.47085125e+02, 1.47085125e+02,
-7.30815598e+01, 5.20052822e+02, 5.37160224e+01,
5.20052822e+02, 5.37160224e+01, 7.06961278e+01,
1.21070195e+02, -7.30815598e+01, -1.20799887e+01,
-1.01158381e+02, 5.37160224e+01, 2.55349034e+01,
2.55349034e+01, -1.42715299e+02, 3.77924839e+01,
4.84747986e+00, -1.07962425e+02, -8.33028412e+01,
1.00157336e+02, -1.42715299e+02, -5.22680519e+01,
-5.22680519e+01, -1.27123074e+02, 4.61912845e+01,
-1.52905863e+01, -3.44347435e+01, -1.42715299e+02,
1.00157336e+02, -1.07962425e+02, -1.65836239e+02,
-9.64018880e+01, 1.06636770e+02, 6.59333401e+01,
1.19873182e+02, 8.44063494e+01, 6.60981540e+01,
2.55349034e+01, 1.19873182e+02, 3.77924839e+01,
-3.45990714e+01, -1.52905863e+01, -3.45990714e+01,
8.91977361e+01, 5.07494024e+00, 8.91977361e+01,
1.21864768e+02, 1.12323534e+02, 1.17572851e+02,
1.21864768e+02, 1.12323534e+02, 1.21864768e+02,
6.29159569e+01, 6.29159569e+01, -1.64948241e+01,
1.05932671e+02, 6.29159569e+01, 1.85689051e+01,
-1.64948241e+01, 9.30151996e+01, 4.81456147e+01,
1.12276366e+02, 4.81456147e+01, 1.05932671e+02,
9.30151996e+01, 4.81456147e+01, -5.32061084e+01,
6.29159569e+01, 1.85689051e+01, 8.03463229e+01,
7.34110211e+01, 7.34110211e+01, -1.64948241e+01,
-1.29160807e+02, -1.19831995e+02, -3.54559256e+01,
9.50334978e+01, 6.29159569e+01, -6.95343458e+01,
4.81456147e+01, -1.61402820e+02, 1.05932671e+02,
-1.92150490e+02, 1.12276366e+02, -3.54559256e+01,
-1.09378401e+02, 4.37180227e+01, -3.54559256e+01,
9.30151996e+01, -1.45569868e+02, 3.34881430e+00,
-1.37632194e+02]), 'kappa': array(1399.2675885517883)} logp: array(-inf) dlogp: array([ nan, nan, nan, nan,
nan, -0. , 0. , -0. ,
64.16985826, -0. , 0. , -0. ,
0. , -0. , -0. , 0. ,
0. , 0. , -0. , -0. ,
-0. , 0. , -0. , 0. ,
-0. , 0. , -0. , 0. ,
0. , 66.50259666, 0. , 64.30823767,
0. , -0. , -0. , 0. ,
-0. , 0. , -0. , 0. ,
0. , 0. , 0. , 64.22281229,
0. , -0. , -0. , 0. ,
0. , 0. , -0. , 0. ,
0. , -0. , -0. , -0. ,
0. , 0. , -0. , -0. ,
-0. , -0. , 0. , 0. ,
-0. , -0. , -0. , -0. ,
-0. , 0. , 0. , 0. ,
0. , 0. , -0. , 0. ,
0. , 0. , 0. , 0. ,
0. , -0. , -0. , -0. ,
0. , 0. , 0. , -0. ,
0. , 0. , -0. , -0. ,
0. , -0. , -0. , -0. ,
-0. , 0. , -0. , -0. ,
-0. , 0. , -0. , -0. ,
-0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , -0. , -0. , -0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 0. ])Check that 1) you don't have hierarchical parameters, these will lead to points with infinite density. 2) your distribution logp's are properly specified. Specific issues:
mu.logp bad: -inf
theta.dlogp bad at idx: (array([160, 161, 162, 163, 164]),) with values: [ nan nan nan nan nan]
theta.logp bad: -inf
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
38#定义可能性
39 y=pm.二项式('y',p=θ,n=n,观测值=z)
--->40开始=下午。查找地图()
41步骤1=下午大都市([mu])
42步骤2=下午大都市([θ])
/find_MAP中的Library/Python/2.7/site-packages/pymc3/tuning/starting.pyc(start、vars、fmin、return_raw、disp、model、*args、**kwargs)
124“密度。2)您的分布日志是”+
125“正确指定。特定问题:\n”+
-->126个特定的错误)
127 mx={v.name:np.floor(mx[v.name]),如果v.dtype为离散类型,则为其他类型
model.vars}中v的128 mx[v.name]
ValueError:优化错误:max、logp或dlogp在max时具有非有限值。某些值可能不在分发支持范围内。最大:{'mu':数组([14.66440283,67.64627608,36.73991444,-2.27146408]),'theta':数组([-3.28858534e+02,1.49945045e+02,-7.02150417e+01,
9.97352990e-01,-7.02150417e+01,1.49945045e+02,
-1.50195789e+02,5.63428376e+00,-9.29002815e+01,
-2.70445580e+02、1.49945045e+02、1.03986058e+02、,
5.63428376e+00,-1.50195789e+02,-9.29002815e+01,
-3.28858534e+02,1.03986058e+02,-9.29002815e+01,
5.63428376e+00,-7.02150417e+01,1.49945045e+02,
-5.57301509e+01、1.49945045e+02、1.01682005e+00、,
9.62368437e-01、5.63428376e+00、9.95206871e-01、,
5.88827819e+01,-2.08511670e+02,-7.51688112e+00,
9.54524715e+00,-7.02150417e+01,1.02401342e+00,
-1.24386722e+02、1.00553699e+00、1.00113792e+00、,
1.05862921e+00、5.88827819e+01、9.96530636e-01、,
1.03986058e+02,-1.66473577e+02,-1.66473577e+02,
1.21070195e+02、7.06961277e+01、1.51469750e+02、,
-1.01158381e+02、1.21070195e+02、1.47085125e+02、,
-1.66473577e+02,-5.55202522e-01,-1.01158381e+02,
5.37160225e+01,1.47085125e+02,-3.00112781e+01,
-1.66473577e+02,-5.55202522e-01,-1.66473577e+02,
1.58340576e+02,1.58340575e+02,-3.00112781e+01,
-1.66473577e+02,-5.55202521e-01,-1.87830813e+01,
-7.63325604e+01、1.51469750e+02、6.56687525e+02、,
5.37160224e+01、1.47085125e+02、1.47085125e+02、,
-7.30815598e+01、5.20052822e+02、5.37160224e+01、,
5.20052822e+02、5.37160224e+01、7.06961278e+01、,
1.21070195e+02,-7.30815598e+01,-1.20799887e+01,
-1.01158381e+02、5.37160224e+01、2.55349034e+01、,
2.55349034e+01,-1.42715299e+02,3.77924839e+01,
4.84747986e+00,-1.07962425e+02,-8.33028412e+01,
1.00157336e+02,-1.42715299e+02,-5.22680519e+01,
-5.22680519e+01,-1.27123074e+02,4.61912845e+01,
-1.52905863e+01,-3.44347435e+01,-1.42715299e+02,
1.00157336e+02,-1.07962425e+02,-1.65836239e+02,
-9.64018880e+01、1.06636770e+02、6.59333401e+01、,
1.19873182e+02、8.44063494e+01、6.60981540e+01、,
2.55349034e+01、1.19873182e+02、3.77924839e+01、,
-3.45990714e+01,-1.52905863e+01,-3.45990714e+01,
8.91977361e+01、5.07494024e+00、8.91977361e+01、,
1.21864768e+02、1.12323534e+02、1.17572851e+02、,
1.21864768e+02、1.12323534e+02、1.21864768e+02、,
6.29159569e+01,6.29159569e+01,-1.64948241e+01,
1.05932671e+02、6.29159569e+01、1.85689051e+01、,
-1.64948241e+01、9.30151996e+01、4.81456147e+01、,
1.12276366e+02、4.81456147e+01、1.05932671e+02、,
9.30151996e+01,4.81456147e+01,-5.32061084e+01,
6.29159569e+01、1.85689051e+01、8.03463229e+01、,
7.34110211e+01,7.34110211e+01,-1.64948241e+01,
-1.29160807e+02,-1.19831995e+02,-3.54559256e+01,
9.50334978e+01,6.29159569e+01,-6.95343458e+01,
4.81456147e+01,-1.61402820e+02,1.05932671e+02,
-1.92150490e+02,1.12276366e+02,-3.54559256e+01,
-1.09378401e+02,4.37180227e+01,-3.54559256e+01,
9.30151996e+01,-1.45569868e+02,3.34881430e+00,
-1.37632194e+02),“kappa”:数组(1399.2675885517883)}logp:array(-inf)dlogp:array([nan,nan,nan,nan,
nan,-0,0.,-0,
64.16985826, -0. , 0. , -0. ,
0. , -0. , -0. , 0. ,
0. , 0. , -0. , -0. ,
-0. , 0. , -0. , 0. ,
-0. , 0. , -0. , 0. ,
0. , 66.50259666, 0. , 64.30823767,
0. , -0. , -0. , 0. ,
-0. , 0. , -0. , 0. ,
0. , 0. , 0. , 64.22281229,
0. , -0. , -0. , 0. ,
0. , 0. , -0. , 0. ,
0. , -0. , -0. , -0. ,
0. , 0. , -0. , -0. ,
-0. , -0. , 0. , 0. ,
-0. , -0. , -0. , -0. ,
-0. , 0. , 0. , 0. ,
0. , 0. , -0. , 0. ,
0. , 0. , 0. , 0. ,
0. , -0. , -0. , -0. ,