2013-10-25 4 views
0

나는 이항식과 pymc의 문제로 어려움을 겪고있다. 나는 그룹으로 나누어 진 표본을 가지고 있는데, MCMC를 사용하여 감수성 상태에서 감염까지의 전이 률을 평가하고 유사한 결과를 얻고 싶다. here플롯 팅 이항 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') 

답변

0

모델에서 이항 노드 finalhcc는 (데이터 가능성을) 관찰, 때문이다 :

다음은 모델과 출시 스크립트입니다. 따라서 샘플링되지 않기 때문에 추적이 없습니다. 이 값은 고정되어 있습니다 (데이터). 비 - 데이터 스토캐스 (non-data stochastics) 및 결정 론적 노드들만 트레이스 (trace)를 갖는다.