MCMC'de otokorelasyon grafiği nasıl yorumlanır


12

"Yavru kitap" olarak da bilinen John K. Kruschke'nin Bayesian Veri Analizi adlı kitabını okuyarak Bayesci istatistiklere aşina oluyorum . 9. bölümde, hiyerarşik modeller bu basit örnekle tanıtılmaktadır: ve Bernoulli gözlemleri 3'er madeni paradır, her biri 10 döndürür. Biri 9 kafa, diğeri 5 kafa ve diğeri 1 kafa gösterir.

yjben~BernÖullben(θj)θj~Betbir(μκ,(1-μ)κ)μ~Betbir(birμ,Bμ)κ~G,birmmbir(Sκ,R,κ)

Hiperparamerleri çıkarmak için pymc kullandım.

with pm.Model() as model:
# define the     
    mu = pm.Beta('mu', 2, 2)
    kappa = pm.Gamma('kappa', 1, 0.1)
    # define the prior
    theta = pm.Beta('theta', mu * kappa, (1 - mu) * kappa, shape=len(N))
    # define the likelihood
    y = pm.Bernoulli('y', p=theta[coin], observed=y)

    # Generate a MCMC chain
    step = pm.Metropolis()
    trace = pm.sample(5000, step, progressbar=True)
    trace = pm.sample(5000, step, progressbar=True)


burnin = 2000  # posterior samples to discard
thin = 10  # thinning 
pm.autocorrplot(trace[burnin::thin], vars =[mu, kappa])

Sorum otokorelasyonla ilgili. Otokorelasyonu nasıl yorumlayacağım? Otokorelasyon planını yorumlamama yardım eder misiniz?

resim açıklamasını buraya girin

Örnekler birbirlerinden uzaklaştıkça aralarındaki korelasyonun azaldığını söylüyor. sağ? Optimum inceltmeyi bulmak için bunu çizmek için kullanabilir miyiz? İnceltme arka örnekleri etkiler mi? sonuçta, bu arsanın kullanımı nedir?

Yanıtlar:


13

Her şeyden önce: eğer MCMC çıkışını işlemek için bellek ve hesaplama süresi sınırlayıcı değilse, inceltme asla "optimal" değildir. Eşit sayıda MCMC yinelemesinde, zincirin incelmesi her zaman (ortalama olarak) MCMC yaklaşımının kayıp hassasiyetine yol açar.

Bu nedenle, otokorelasyon veya diğer teşhislere dayalı rutin inceltme önerilmez . Bkz. Link, WA & Eaton, MJ (2012) MCMC'de zincirlerin inceltilmesi hakkında. Ekoloji ve Evrim Yöntemleri, 3, 112-115.

Bununla birlikte, günlük uygulamada, örnekleyicinin çok iyi karışmadığı bir modelle çalışmak zorunda olduğunuz yaygın bir durum vardır (yüksek otokorelasyon). Bu durumda

1) Yakın zincir elemanları çok benzerdir, yani birini atmak çok fazla bilgi kaybetmez (otokorelasyon grafiğinin gösterdiği şey)

2) Yakınsama almak için çok fazla tekrarlamaya ihtiyacınız var, yani inceltmezseniz çok büyük zincirler elde edersiniz. Bu nedenle, tam zincirle çalışmak çok yavaş olabilir, çok fazla depolama alanına mal olabilir, hatta birçok değişkeni izlerken bellek sorunlarına neden olabilir.

3) Ayrıca, inceltmenin JAGS'ı da biraz daha hızlı hale getirdiği hissine sahibim (ancak sistematik olarak hiç test etmediğim), bu yüzden aynı anda birkaç tekrarlama elde edebiliyoruz.

Demek istediğim, otokorelasyon grafiği, inceltme yoluyla ne kadar bilgi kaybettiğinize dair kaba bir tahmin verir (bunun tüm posterior üzerinde bir ortalama olmasına rağmen, belirli bölgelerde kayıp daha yüksek olabilir).

Bu fiyatın ödemeye değip değmeyeceği, bilgi işlem kaynaklarını ve daha sonra zamandan tasarruf etmeyi inceleyerek ne kazandığınıza bağlıdır. MCMC yinelemeleri ucuzsa, birkaç kez daha yineleme yaparak da incelme kaybını her zaman telafi edebilirsiniz.


Cevabın için teşekkürler Florian. Benim için çok faydalı oldu.
Adham
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.