MCMC 조회 및 실행


16

적중을 구현하고 MCMC 알고리즘을 실행하려고하는데 그 방법을 이해하는 데 약간의 어려움이 있습니다. 일반적인 아이디어는 다음과 같습니다.

MH에서 제안 점프를 생성하기 위해 :

  • 단위 구의 표면에 대한 분포에서 방향 를 생성합니다.dO
  • 제한된 공간을 따라 부호있는 거리 를 생성합니다 .λ

그러나 R (또는 다른 언어)로 이것을 구현하는 방법을 모릅니다.

누구든지 올바른 방향으로 나를 안내하는 코드 스 니펫이 있습니까?

BTW, 나는이 방법을 수행하는 라이브러리에 관심이 없으며 직접 시도하고 코딩하고 싶습니다.

많은 감사합니다.


1
이전에는이 ​​알고리즘에 대해 들어 본 적이 없지만 꽤 흥미로운 것 같습니다. 설명 소스에 대한 링크를 제공 할 수 있습니까? 감사합니다 !
steffen

@steffen 여기 원본 보고서에 대한 링크가 있습니다. 실제로 기술 보고서입니다. 나는이 절차를 사용한 적이 없다.
csgillespie

1
다른 방법에 비해 히트 및 실행 MCMC의 장점은 무엇입니까? 수렴 속도?
RockScience

@fRed : 이것이 현상금을 제공 한 이유입니다. 나는 Hit and Run에 대해 읽었지만 어떤 상황에서 그것이 유용한 지 모르겠습니다.
csgillespie

3
링크가 끊어졌습니다.
daknowles

답변:


11

나는 당신이 제공 한 논문을 보지 않았지만 어쨌든 갈 것입니다.

만약 있다면 차원 파라미터 공간을 사용하면 임의의 방향으로 생성 할 수있는 D 균일 단위 구의 표면에 분포를

x <- rnorm(p)
d <- x/sqrt(sum(x^2))

(cf 위키 ).

그런 다음이를 사용 하여 거부 샘플링에 대한 대한 제안을 생성하십시오 (실제로 d에 대한 분포를 평가할 수 있다고 가정 ).

위치에서 시작 하여 d d를 수락 했다고 가정하면 다음을 사용하여 제안서 y 를 생성하십시오.엑스와이

 lambda <- r<SOMEDISTRIBUTION>(foo, bar)
 y <- x + lambda * d

로 이동할지 여부를 결정하기 위해 Metropolis-Hastings-Step을 수행하십시오 .와이

물론 이것이 얼마나 잘 작동 하는지 는 의 분포 와 거부 샘플링 단계에서 밀도를 (반복적으로) 평가하는 데 비용이 얼마나 들지 에 달려 있지만, d 에 대한 제안서를 생성 하는 것이 저렴 하기 때문에 해결할 수 있습니다.


@csgillespie의 혜택에 추가 :

내가 인터넷 검색을 통해 수집 할 수 있었던 것으로부터, 히트 앤 런 MCMC는 임의의 경계를 가지고 있지만 반드시 연결된 것은 아니지만 지원되는 (다변량) 대상이있는 경우 빠른 혼합에 주로 유용합니다. 한 단계에서 다른 지원에. 더 여기여기에 .


1
이 답변이 만족스럽지 않은 경우 이유를 설명해 주시겠습니까?
John Salvatier

나는 @fred에 대해 확신하지 못하지만 현상금을 제공 할 때 MCMC에 대한 통찰력을 원한다고 가정합니다. 예를 들어 어떤 유형의 문제가 가장 적합할까요? 물론, 다른 답변이 없으면이 질문은 현상금을 얻습니다.
csgillespie

3
@csgillespie : 관심을 더 잘 수용하기 위해 답변을 편집했습니다. 내가 현상금을받을 자격이 없다고 말하지 마십시오. ;)
fabians

2
링크 주셔서 감사합니다. 내가 현상금을 낸 이유 중 하나는 내 Google 검색에서 수학적 방법에 대한 수학적 논의가 이루어졌지만 실제 응용 프로그램에는 거의 영향을 미치지 않기 때문입니다. 현상금을 수여하기 전에 48 시간을 더 기다렸다면 조금만 취하지 마십시오 (특히 관대 한 현상금입니다!)
csgillespie

4

Hit-and-Run에 대한 원래 참조를 찾을 때 귀하의 질문에 부딪 쳤습니다. 고마워요! 이 최근 블로그 끝에서 PyMC에 대한 hit 앤런의 개념 증명 구현을 결합했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.