0

我正在努力解决二项式和 pymc 的问题我有一个样本分成几组,我想使用 MCMC 评估从易感状态到感染状态的转换率,并以类似于此处的方式绘制结果

当我编译脚本时,我收到以下消息:

Traceback (most recent call last):
  File "statisticMCMC_bin.py", line 23, in <module>
    plot(mc.finalhcc.stats()['mean'],color='red',linewidth=2)
  File "/Library/Python/2.7/site-packages/pymc-2.3a-py2.7-macosx-10.8-intel.egg/pymc/Node.py", line 265, in stats
    return self.trace.stats(alpha=alpha, start=start, batches=batches,
AttributeError: 'Binomial' object has no attribute 'trace'

并且没有产生情节.....我该如何解决?

这是模型和启动脚本:

import sys
import pickle

import pykov 
import random
import scipy.integrate as spi
import numpy as np
import pylab as pl
import math as mt
import scipy.linalg as linear
import decimal
from pymc import *
import numpy as np

n = np.array([647,1814,8838,9949,1920])###initial population
originalHCC=np.array([0,197,302,776,927], dtype=float)
beta=Uniform('beta',0.001,1.0)####death rate
vectorp=np.array([beta,beta,beta,beta,beta]);   


finalhcc = pymc.Binomial('finalhcc', n=n, p=vectorp, value=originalHCC, observed=True)
#
import numpy as np
from pymc import *
from pylab import *
import scipy as sc
#from pymc.Matplot import plot
from scipy.stats.mstats import mquantiles


import MCMC_bin as mod
reload(mod)
mc=MCMC(mod)

mc.use_step_method(AdaptiveMetropolis, [mod.beta])
mc.sample(iter=500000,burn=5000, thin=20,verbose=1)

n = np.array([647,1814,8838,9949,1920,39])



figure(1)
title('HCC with uncertainty')
plot(mc.originalHCC, 's', mec='black', color='black',alpha=0.9)
plot(mc.finalhcc.stats()['mean'],color='red',linewidth=2)
plot(mc.finalhcc.stats()['95% HPD interval'],color='red',linewidth=1,linestyle='dotted')
axis(0,6,0.9*min(mc.originalHCC),1.2*max(mc.originalHCC))
savefig('HCC.png')
4

1 回答 1

0

这是因为,在您的模型中,观察到二项式节点finalhcc(数据可能性)。因此,它没有痕迹,因为它没有被采样。它的值是固定的(数据)。只有非数据随机和确定性节点有痕迹。

于 2013-10-26T18:54:19.290 回答