더북(TheBook)

우리는 이 장의 앞부분에서 단문 문자 메시지에 대해 가상 데이터셋을 시뮬레이션했다. 이를 위해 사전확률에서 값들을 표본추출했다(즉, 데이터에 맞지 않는 모델에서 표본추출하였다). 우리는 결과 데이터셋이 얼마나 다양하게 변하는지 보았고, 결과 데이터셋은 관측된 데이터셋과 거의 유사하지 않았다. 현재 예제에서 우리는 매우 그럴듯한 데이터셋을 만들기 위해 사후확률분포에서 표본을 추출해야 한다. 다행히 베이지안 프레임워크가 표본추출을 매우 쉽게 해결해준다. 우리는 새 Stochastic 변수를 만들기만 하면 된다. 이 변수는 관측 데이터를 저장했던 우리의 변수와 똑같은 것이지만, 관측 데이터 그 자체는 빼야 한다. 혹시 기억하는가? 관측된 데이터를 저장했던 Stochastic 변수는 다음과 같다.

 


observed = pm.Bernoulli(“bernoulli_obs”, p, value=D, observed=True)

 

다음 변수를 초기화하여 그럴듯한 데이터셋을 만든다.

 


simulated_data = pm.Bernoulli(“simulation_data”, p)
 
simulated = pm.Bernoulli(“bernoulli_sim”, p)
N = 10000
 
mcmc = pm.MCMC([simulated, alpha, beta, observed])
mcmc.sample(N)

 

 

결과

[—————–100%—————–] 10000 of 10000 complete in 1.1 sec

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.