2014-12-01 3 views
4

나는 pymc 및 베이지안 통계를 처음 사용합니다. 여기서는 이론적 인 결과와 비교하기 위해 매우 단순한 pymc 모델을 구현하려고합니다. 내 테스트 케이스에서 나는 mu~N(20,20)으로 정상적인 사전을 가정하고, 가능성은 아래의 코드와 같이 값을 10 개 관측이 간단한 모델에서, 거기에하자 data~N(mu,10)pymc 정상적인 prior + normal 확률이 올바르게 수렴하지 않습니까?

, 후방 PDF의 이론적 결과가해야 할 가정 be N(6.84,6.67); 그러나, 나는 왜 내 pymc 모델이 이론 결과에서 멀리 결과를 생산하는지 혼란 스럽다. 여기 내 코드가있다. 내 코드 또는 베이지안 통계 개념에 문제가 있는지 궁금합니다. 당신의 도움을 주셔서 감사합니다.

from __future__ import division 
import pymc as pm 
import numpy as np 

data=[2.944,-13.361,7.143,16.235,-6.917, 8.580,12.540, 
      -15.937,-14.409, 5.711] 
mean=pm.Normal('mean',mu=20.,tau=1./20) 
prec=1./10 

obs=pm.Normal('obs',mu=mean,tau=prec,value=data,observed=True) 
model=pm.Model([obs, mean]) 
mcmc=pm.MCMC(model) 

mcmc.sample(500,100) 

mcmc.stats() 

결과는 이론적 인 결과에서 멀리 떨어진 후부 평균이 N (0.25,1)임을 보여줍니다.

'mean': {'95% HPD interval': array([-1.80515483, 2.06741224]), 
    'mc error': 0.04850118114229577, 
    'mean': 0.22188919237458093, 
    'n': 400, 
    'quantiles': {2.5: -1.7106911626432717, 
    25: -0.39834886222214749, 
    50: 0.24108945921296354, 
    75: 0.85983578287420315, 
    97.5: 2.282198749772455}, 
    'standard deviation': 0.99310330871482888} 
+0

직접 문제를 발견했습니다. pymc 코드와 결과에는 문제가 없으며 문제는 이론적으로 도출 된 것입니다. – hdragon

+0

그런데 이미 알고 있을지 모르지만이 웹 사이트는 pymc로 베이지 통계를 시작한 경우 매우 멋지다.) http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for - 해커 / –

답변

0

mean=pm.Normal('mean',mu=20.,tau=1./20**2)?