MCMC ve Metropolis-Hastings algoritmasını anlama


13

Son birkaç gündür Markov Zinciri Monte Carlo'nun (MCMC) nasıl çalıştığını anlamaya çalışıyorum. Özellikle Metropolis-Hastings algoritmasını anlamaya ve uygulamaya çalışıyorum. Şimdiye kadar algoritma hakkında genel bir anlayışa sahip olduğumu düşünüyorum ama henüz net olmayan birkaç şey var. Bazı modelleri verilere uydurmak için MCMC kullanmak istiyorum. Bu nedenle, gözlemlenen bazı veriler düz bir uydurmak için Metropolis-Hastings algoritması konusundaki anlayışımı anlatacağım :f(x)=axD

1) için ilk tahminde bulunun . Bu ayarla mevcut olarak ( ). Ayrıca Markov Zinciri'nin ( ) sonuna ekleyin .aaaa0aC

2) Aşağıdaki adımları birkaç kez tekrarlayın.

3) Mevcut olasılığını (değerlendirmek ) verilen ve .L0a0D

4) ve ile normal bir dağılımdan örnek alarak yeni ( ) önerin . Şimdilik, sabittir.aa1μ=a0σ=stepsizestepsize

5) Yeni olasılığını (değerlendirmek ) verilen ve .L1a1D

6) Eğer daha büyük , kabul yeni olarak , ekleme bunun sonunda ve adım 2'ye geçin.L1L0a1a0C

7) ise küçüktür bir sayı (üretmek düzgün bir dağılım aralığında [0,1])L1L0U

8) ise iki likelihoods arasındaki farktan daha küçüktür ( - ), kabul yeni ürün olarak , ekleme bu sonunda ve adım 2'ye geçin.UL1L0a1a0C

9) Eğer , iki likelihoods arasındaki farktan daha büyük olan ( - ), ekleme sonunda , aynı kullanmaya devam , adım 2'ye gidin.UL1L0a0Ca0

10) Tekrar Sonu.

11) (yakma aşaması) başlangıcından bazı elemanları çıkarın .C

12) Şimdi değerlerin ortalamasını alın . Bu ortalama tahmin ediliyor .Ca

Şimdi yukarıdaki adımlarla ilgili bazı sorularım var:

  • Nasıl için olabilirlik fonksiyonunu inşaa ederler değil, aynı zamanda herhangi bir keyfi bir işlev için?f(x)=ax
  • Bu Metropolis-Hastings algoritmasının doğru bir uygulaması mı?
  • 7. Adımda rastgele sayı oluşturma yönteminin seçimi sonuçları nasıl değiştirebilir?
  • Birden fazla model parametresim varsa bu algoritma nasıl değişecek? Örneğin, modeline sahip olsaydım .f(x)=ax+b

Notlar / Krediler: Yukarıda açıklanan algoritmanın ana yapısı, bir MPIA Python Workshop'tan alınan koda dayanmaktadır.

Yanıtlar:


11

Algoritmanın tanımında Metropolis-Hastings (MH) algoritmasının ne olduğu hakkında bazı yanlış algılar var gibi görünüyor.

Her şeyden önce, MH'nin bir örnekleme algoritması olduğunu anlamalıdır. Wikipedia'da belirtildiği gibi

İstatistiklerde ve istatistiksel fizikte, Metropolis-Hastings algoritması, doğrudan örneklemenin zor olduğu bir olasılık dağılımından rastgele örnekler dizisi elde etmek için bir Markov zinciri Monte Carlo (MCMC) yöntemidir.

MH algoritmasını uygulamak için , örneklemenin kolay olduğu bir teklif yoğunluğuna veya atlama dağılımına ihtiyacınız vardır. Bir dağılımından örnek almak isterseniz , MH algoritması aşağıdaki gibi uygulanabilir:Q(|)f()

  1. İlk rastgele durumu .x0
  2. Aday oluşturmak den .xQ(|x0)
  3. oranını hesaplayın .α=f(x)/f(x0)
  4. ifadesini olasılığının ile gerçekleştirilmesi olarak kabul edin .xfα
  5. Al yeni başlangıç devlet olarak ve istenilen örnek boyutu elde edene kadar örnekleme devam edin.x

Numuneyi aldıktan sonra yine de yakmanız ve inceltmeniz gerekir: örnekleyicinin asemptotik olarak çalıştığı göz önüne alındığında, ilk örneği (yanma) kaldırmanız ve numunelerin bağımlı olduğu göz önüne alındığında, her iterasyonunu alt örneklemeniz gerekir (inceltme).Nk

R'deki bir örnek aşağıdaki bağlantıda bulunabilir:

http://www.mas.ncl.ac.uk/~ndjw1/teaching/sim/metrop/metrop.html

Bu yöntem, model parametrelerinin arka dağılımından örnekleme için Bayesçi istatistiklerde büyük ölçüde kullanılmaktadır.

Sınırlı bir kümedeki kısıtlamadığınız sürece , yoğunluğu olmadığı için kullandığınız örnek bana açık görünmüyor . Benim izlenimim, Metropolis-Hastings algoritmasının doğrusal regresyon bağlamında kullanımını kontrol etmenizi tavsiye ettiğim bir dizi noktaya düz bir çizgi yerleştirmekle ilgileniyorsunuz. Aşağıdaki bağlantı MH'nin bu bağlamda nasıl kullanılabileceği hakkında bazı fikirler sunmaktadır (Örnek 6.8):f(x)=axx

Robert & Casella (2010), Monte Carlo Yöntemlerinin R , Ch ile Tanıtımı . 6, "Metropolis – Hastings Algoritmaları"

Bu sitede, olasılık işlevinin anlamı hakkında tartışan ilginç referanslara işaret eden birçok soru da vardır.

Olası bir başka işaretçi mcmc, MH algoritmasını komuttaki Gauss önerileriyle uygulayan R paketidir metrop().


Merhaba arkadaşım. Evet, MH'ye lineer regresyon bağlamında bakıyorum. Bana verdiğin url herşeyi gerçekten açıklıyor. Teşekkür ederim. MH ile ilgili başka bir soru bulursam tekrar soru soracağım. Tekrar teşekkürler.
AstrOne
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.