2014-06-10 10 views
1

제가 이해하는 한, logp는 b2 < = 0이어야합니다. 그렇지 않으면 확률은> 1이 될 수 없습니다.pymc에서 dirichlet 확률 변수에 대한 logp> 1이 나오고 있습니다.

누군가 내가 이상한 결과를 얻는 이유를 설명해 주실 수 있습니까? 나는 아래 코드의 관련 부분을 쓰고있다.

parameters = pm.Dirichlet('parameters',[1,1,1,1], doc='parameters') 
print parameters.value, parameters.logp 

나는이 이상한 뭔가가 다음과 같은 출력

[ 0.29402696 0.64604328 0.04713606] 1.79175946923 

를 얻을. 나는 pymc에 dirichlet 무작위 변수를 사용한 사전 경험이 없습니다. 난 그냥 설명서에서 구문을 쳐다 보면서 그것을 썼다. 나는 잘못되었을 수도 있습니다. 제발 저를 교정하십시오.

내가 매번 다른 값을 얻을 수 있지만

는 상관없이 많은 임의의 값이 내가 걸릴 방법의 logprobability도 변경하지 않는 또 다른 작은 문제.

답변

2

Dirichlet 분포는 연속 분포이므로 밀도가 1보다 클 수 있습니다. 연속 밀도는 음이 아니어야하며 그 정수는 1이어야합니다. 그러나 밀도가 모든 곳에서 1보다 작을 필요는 없습니다 .

두 번째 질문에 대해 - 저의 조언은 새로운 질문을 열어 답변을 드리는 것입니다. 하나에 두 가지 질문을 부딪치게하지 마라.