Page 11 -
P. 11
print(“lambda_.value =”, lambda_.value)
print(“data_generator.value =”, data_generator.value)
print(“data_plus_one.value =”, data_plus_one.value)
결과
lambda .value = 1.0354800596
data generator.value = 4
data plus one.value = 5
PyMC와 관련된 프로그래밍 변수로는 stochastic과 deterministic 두 가지가 있다.
● stochastic 변수는 값이 정해지지 않는 변수다. 즉, 여러분이 변수의 부모변수 값을 모두 알
고 있어도 stochastic 변수의 값은 여전히 난수일 것이다. 이런 유형의 변수로는 Poisson,
DiscreteUniform, Exponential 클래스의 인스턴스가 있다.
● deterministic 변수는 변수의 부모를 모두 알고 있는 경우에 랜덤하지 않은 변수다. 처음에는
혼란스러울 수도 있다. 간단히 말해 foo의 부모변수 값을 안다면 foo의 값을 정확하게 알 수 있다.
stochastic 변수 초기화
stochastic 변수를 초기화할 때 첫 인수는 변수의 이름을 나타내는 문자열이다. 그리고 구체적인
클래스를 가리키는 추가적인 인수도 필요하다. 예를 들어
some_variable = pm.DiscreteUniform(“discrete_uni_var”,0,4)
여기서 0과 4는 DiscreteUniform 고유의 난수 하한선과 상한선이다. PyMC 문서(http://pymc-
devs.github.com/pymc/distributions.html)에는 stochastic 변수의 특정 매개변수 내용이 담겨 있
다(IPython을 사용하고 있다면 ??를 입력해보라).
name 인수는 분석 후반에 사후확률분포를 가져올 때 사용하므로 설명하는 이름을 사용하는 것이
좋다. 필자는 대개 파이썬 변수의 이름을 사용한다.
변수를 여러 개 다루는 문제에서 확률변수 배열을 파이썬 배열로 만드는 대신 size 키워드를 설정
하면 (독립적인) 확률변수의 배열이 만들어진다. 배열은 하나처럼 사용될 때 Numpy 배열처럼 작
동하며, value 속성 참조는 Numpy 배열을 반환한다.
050
베이지안_11.indd 50 2017-11-17 오전 11:07:14