小编Rav*_*iya的帖子

PYMC3 ValueError:质量矩阵对角线上包含零。某些导数可能始终为零

我在使用 PYMC3 计算后验时遇到此错误:

with pm.Model() as model:
    p = pm.Gamma('p', alpha=1, beta=3, shape=regions.shape[0])
    q = pm.Gamma('q', alpha=1, beta=3, shape=regions.shape[0])
    m = pm.Lognormal('m', mu=np.log(total_M), sd=.25, shape=regions.shape[0])
    t = pm.Uniform('t', lower=0, upper=100, observed=sales.t)
    cid = pm.Categorical('cid', p=np.repeat(1./sales.shape[0], sales.shape[0]), observed=sales.region )
    sigma = pm.Gamma('sigma', alpha=1, beta=3)
    mu = m[cid]*(((p[cid]+q[cid])**2)/p[cid])*((np.exp(-(p[cid]+q[cid])*t))/((1+(q[cid]/p[cid])*np.exp(-(p[cid]+q[cid])*t))**2))
    Y_obs = pm.Normal('Ft', mu= mu, sd=sigma, observed= sales.sales)
    trace = pm.sample(100000,init = 'adapt_diag', progressbar = True, tune  = 1000) 
Run Code Online (Sandbox Code Playgroud)

我尝试将 mu = mu 更改为 mu = np.log(mu),它解决了错误,但与我的其他伙伴相比,结果却很糟糕。

python-3.x pymc3

5
推荐指数
1
解决办法
3686
查看次数

标签 统计

pymc3 ×1

python-3.x ×1