2016-09-11 4 views
0

어떤 데이터 포인트에 함수를 맞추기 위해 emcee이라는 파이썬 패키지를 사용합니다. 착용감은 훌륭하지만 각 단계에서 각 매개 변수의 값을 플롯 할 때이 얻을 : 그들은이를 얻을 수 (다른 기능과 데이터 포인트) 자신의 예에서파이썬에서 몬테카를로 피팅

enter image description here

을 :

왜 내 기능이 매우 빠르게 수렴되고 왜 처음에는 그 이상한 모양입니까? 우도와 사후 확률을 사용하여 MCMC를 적용합니다. 그리고 fit이 매우 좋게 보일지라도 함수의 매개 변수에 대한 오차는 매우 작고 (실제 값보다 10^10 작습니다) 나는 무작위 걸음 때문이라고 생각합니다. 어떤 생각을 고칠 수 있을까요? 피팅을위한 코드는 다음과 같습니다. http://dan.iel.fm/emcee/current/user/line/ 필자는 데이터 포인트와 피팅 함수에 동일한 수정 코드를 사용했습니다.

답변

3

당신의 기능이 당신이 연결되어있는 emcee 라인 피팅 예제보다 더 빨리 수렴하고 있다고 말할 수는 없습니다. 이 예에서 보행자는 매개 변수 공간에서 가장 가능성있는 값을 거의 즉각 탐색하지만, 경우에 따라 높은 확률 영역에 도달하는 데 200 회 이상 반복됩니다.

추적 점의 점프가 번인처럼 보입니다. 그것은 MCMC 샘플링 알고리즘의 공통된 특징으로, 워커가 후부의 벌크로부터 시작점을 벗어나서 그 곳으로 가야합니다. 당신의 경우에는 우도 함수가 매우 매끄 럽기 때문에 이것을 달성하기 위해 반복을 100 회 정도만하면 함수에 "이상한 모양"을 부여하는 것처럼 보입니다.

시작 지점을보다 잘 제한 할 수 있다면 그렇게하십시오. 그렇지 않은 경우 추가 분석이 이루어지기 전에이 초기 길이를 버리는 것을 고려할 수 있습니다 (번인 길이에 대한 설명은 herehere 참조).

오류가 현실인지 아닌지에 관해서는 불확실성에 대한 실제 매개 변수 값의 비율에 이에 대한 설명이 없으므로 결과에 대한 사후 모델을 검사해야합니다. 예를 들어, 링크 example을 가져 와서 b의 실제 값을 10^10으로 변경하면 결과 오류는 완전히 유효하면서 10 개의 크기가 작아집니다.

+0

사실은 사후 분포에서 매우 잘 정의되고 좁은 모드 인 것처럼 보입니다. 메트로 폴리스의 수용 확률이 반복의 함수로 어떻게 전개되는지 살펴보고, 최대에 도달하면 "좋은 혼합"이 있는지 여부를 파악할 것입니다. 그렇다면 모델을 조사 할 '작은'불확실성에 대해 여전히 걱정하고 있습니다. – user3465408