Page 14 -
P. 14
그리고 PyMC 코드에서는
2
import numpy as np
n_data_points = 5 # 1장에서 데이터 포인트가 70개 있었다.
@pm.deterministic PyMC 더 알아보기
def lambda_(tau=tau, lambda_1=lambda_1, lambda_2=lambda_2):
out = np.zeros(n_data_points)
out[:tau] = lambda_1 # lambda_1은 tau 이전 lambda다.
out[tau:] = lambda_2 # lambda_2는 tau 이후 lambda다.
return out
τ, λ , λ 를 안다면 λ를 알 수 있음이 분명하다. 그러므로 λ는 deterministic 변수다.
2
1
deterministic 데코레이터 내부에서 stochastic 변수는 stochastic 변수가 아니라 스칼라나 NumPy
배열(다변량인 경우)처럼 작동한다. 예를 들어 다음 코드를 실행하면
@pm.deterministic
def some_deterministic(stoch=some_stochastic_var):
return stoch.value**2
stoch가 value 속성을 가지고 있지 않다는 것을 알려주는 AttributeError가 발생한다. 그래서
돌려주는 값은 stoch**2여야 한다. 실제로 전달되는 것은 stochastic 변수가 아니라 그 변수의 값
이다.
deterministic 함수 작성 시 함수에 사용된 각 변수에 대해 키워드 인수를 사용한다. 이 단계는 필
수이며, 모든 변수는 키워드 인수로 명시되어야 한다.
2.1.3 모델에 관측 포함하기
이 시점에서, 겉으로는 그렇게 보이지 않았을지 모르지만, 우리의 사전확률을 상세하게 서술해왔
다. 예를 들어 그림 2-1에 나타낸 것처럼 “λ 에 대한 나의 사전확률분포는 어떻게 생겼는가?”라는
1
질문을 하고, 답할 수 있다.
053
베이지안_11.indd 53 2017-11-17 오전 11:07:15