Hi,everyone,my Bayesian model encountered an overflow problem,
I don’t know how to solve it. any help will be very grateful,my code is as follows:
with pm.Model() as model:
BoundNormal = pm.Bound(pm.Normal, lower=0., upper=1.)
sigma_w = pm.InverseGamma('sigma_w',1.0,0.1)
rho = BoundNormal('rho', mu=0.4, sd=0.01)
cov0=sigma_w**2*tt.pow(rho,H0)
omega=pm.MvNormal('omega',mu=mu0,cov=cov0,shape=(1,n))
mu1=pm.Normal('mu1',mu=0.0,sd=0.01)
xi=pm.InverseGamma('xi',11.0,0.1)
b=pm.Normal('b', mu=0.0, sd=tt.sqrt(xi),shape=(N,1))
mu2=(mu1+b)*e+omega
sigma=pm.HalfNormal('sigma',0.01)
y=pm.Normal('y',mu=mu2,sd=sigma,observed=dataSet2)
with model:
trace=pm.sample(n=2000,njobs=1)
error occurred when sampling was made up to 40%
raise ValueError('Mass matrix contains zeros on the diagonal. '
ValueError: Mass matrix contains zeros on the diagonal. Some derivatives might always be zero.