MCMC'yi anlamak: alternatif ne olurdu?


13

İlk kez Bayes istatistiklerini öğrenmek; MCMC'yi anlamaya yönelik bir açı olarak merak ettim: temelde başka bir şekilde yapılamayan bir şey mi yapıyor yoksa alternatiflerden çok daha verimli bir şey mi yapıyor?

Örnekleme yoluyla, verilerinin tersini hesaplayan bir model verilen parametrelerimizin olasılığını hesaplamaya çalıştığımızı varsayalım . Bunu doğrudan Bayes teoremiyle hesaplamak için burada belirtildiği gibi paydasına ihtiyacımız var . Ama bunu entegrasyonla hesaplayabilir miyiz, şöyle deyin:P ( D | x , y , z ) P ( D )P(x,y,z|D)P(D|x,y,z)P(D)

p_d = 0.
for x in range(xmin,xmax,dx):
    for y in range(ymin,ymax,dy):
        for z in range(zmin,zmax,dz):
            p_d_given_x_y_z = cdf(model(x,y,z),d)
            p_d += p_d_given_x_y_z * dx * dy * dz

Bu işe yarıyor mu (çok sayıda değişkenle çok verimsiz olsa da) veya bu yaklaşımın başarısız olmasına neden olacak başka bir şey var mı?


4
Entegrasyon birçok durumda işe yarayacaktır, ancak çok uzun sürecektir (yani verimsiz). MCMC posterioru etkili bir şekilde tahmin etmenin bir yoludur.
Mark White

3
Soru ile ilgili değil, ama bence integralinizde x, y, z'den önce eksiksiniz (Bayes formülünün payında görünür)
alberto

Yanıtlar:


17

Posterior'a bir ızgara yaklaşımı tanımlıyorsunuz ve bu en popüler olmasa da geçerli bir yaklaşım. Posterior dağılımın analitik olarak hesaplanabileceği birkaç vaka vardır. Monte Carlo Markov Zincirleri veya diğer yaklaşık yöntemler, bazen analitik çözelti bulunamadığında çalışan posterior dağılım örnekleri elde etmek için yöntemlerdir.

Bulunabilen analitik çözümler tipik olarak "eşlenik" ailelerdir ve bununla ilgili daha fazla bilgiyi googling yoluyla bulabilirsiniz, örneğin bkz . Https://en.wikipedia.org/wiki/Conjugate_prior .

İlk örnek olarak, eğer pöncekiniz tekdüze ise [0, 1], pbasit bir binomyal deneyde bir başarı parametresi ise, posterior bir Beta dağılımına eşittir. Entegrasyon veya toplam, bu durumda açıkça yapılabilir.

Sonlu sayıda parametre seçeneğiniz varsa veya örneğinizde olduğu gibi bir ızgara yaklaşımı kullanıyorsanız, ihtiyacınız olan basit bir özet olabilir. Ancak, birkaç değişkeniniz varsa ve yoğun bir ızgara kullanmak istiyorsanız, hesaplama sayısı hızla patlayabilir.

Posteriordan numune almak için çeşitli algoritmalar vardır. Hamiltonian Monte Carlo, özellikle NUTS örnekleyicisi, artık popüler ve kullanılıyor stanve PyMC3Metropolis Hastings klasik. Varyasyonel Çıkarım, göreceli bir yeni gelen, aslında bir örnekleme yöntemi değil, bir yaklaşım elde etmenin farklı bir yoludur. Şu anda, analitik çözümler de dahil olmak üzere yöntemlerin hiçbiri en iyisi değildir, hepsi belirli durumlarda iyi çalışır.


İyi cevap, ancak son paragrafınız varyasyon çıkarımının örnekleme yöntemi olmadığı anlamına geliyor. Bunu düzeltmeyi düşünebilirsiniz.
Ruben van Bergen

7

θ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,

6

Monte Carlo yöntemleri rastgele sayıları kullanan tekniklerdir. Amaç, göre dağıtılan örneklerini bulmaktır ve nin karmaşık olduğu varsayılmaktadır . Bu, doğrudan değerlendiremeyeceğimiz anlamına gelir. Eğer durum böyle değilse, bunu analitik olarak hesaplayabilirsiniz. Örneğinizde olduğu gibi bu .xP(x)P(x)P(D)

Teklif ettiğiniz şey aslında ve uzayda bir ızgara . Bu, ve yüksek boyutluysa ve sürekli ise mümkün değilse çok kapsamlı olabilir . Başka bir sorun, her adımda cdf'yi hesaplamanız gerektiğidir.xyxy

MCMC yöntemleri, aday örnekleri önererek ve ardından bir ölçüye bağlı olarak kabul veya reddederek bunu çözmeye çalışır . Bu teorik olarak tüm olası kombinasyonlardan daha hızlı olabilir. temelde önceki den alınan örnekleri bulursunuz . Buradaki teorik bir problem, bunun sadece çizilen örneklerin sınır sayısında, yani numunelerinden sonra olduğu durumudur . Markov Zincirini ne zaman durduracağınızı bilmiyorsunuz.cbenP(D)

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.