2014-06-07 9 views
0

저는 기본적으로 일부 이름이 확률 적으로 할당되어 있음을 읽었습니다. 아래 코드의 관련 부분을 작성합니다.PyMC에서 추적을 인쇄하는 동안 KeyError가 발생했습니다.

lam = pm.Uniform('lam', lower=0.0, upper=5, doc='lam') 
parameters = pm.Dirichlet('parameters',[1,1,1,1], doc='parameters') 
rv = [ pm.Multinomial("rv"+str(i), count[i], prob_distribution[i], value = data[i], observed = True) for i in xrange(0, len(count)) ] 

m = pm.MCMC([lam, parameters, rv]) 
m.sample(10) 
print m.trace('lam')[:] 
print m.trace('parameters_0')[:] 

마지막 줄은 오류 KeyError를 제기 : 그렇게 이유 'parameters_0' 누군가는 설명 할 수 있습니다.

그러나 내가 Matplot.plot(m)을 사용하면 그림이 표시됩니다 (아래에 첨부되어 있습니다). 나는 열쇠가 parameters_0, parameters_1, parameters_2이라는 인상을받습니다.

추적이있는 키를 모두 알 수있는 방법이 있습니까?

enter image description here)

답변

2

당신은 parameters_0라는 노드가 없습니다. lam, parameters, rv_0, rv_1 등이 있습니다.

+0

예, 미안합니다. 내 어리 석음이었습니다. – turing