Bir 10D MCMC zinciri verildiğinde, R'deki arka modlarını nasıl belirleyebilirim?


10

Soru: 10 boyutlu bir MCMC zinciri ile, size bir çizim matrisi vermeye hazır olduğumu varsayalım: 10 parametre (sütun) ile 100.000 yineleme (satır), arka modları en iyi nasıl tanımlayabilirim? Özellikle çoklu modlarla ilgileniyorum.

Arka fon:Kendimi hesaplamalı olarak anlayışlı bir istatistikçi olarak görüyorum, ancak bir meslektaşım bana bu soruyu sorduğunda, makul bir cevap bulamadığım için utandım. Birincil endişe, birden fazla modun görünebileceğidir, ancak yalnızca on boyuttan en az sekiz tanesi dikkate alınırsa. İlk düşüncem bir çekirdek yoğunluğu tahmini kullanmak olurdu, ancak R'de yapılan bir araştırma üç boyuttan büyük problemler için umut verici bir şey ortaya koymadı. Meslektaşım on boyutta ve maksimum arayışında geçici bir binning stratejisi önermiştir, ancak endişem bant genişliğinin önemli ölçüde azlık sorunlarına veya çoklu modları ayırt etmek için çözüm eksikliğine yol açabileceğidir. Bununla birlikte, otomatik bant genişliği önerileri, 10 çekirdek yoğunluğu tahmincisine bağlantılar veya bildiğiniz başka bir şey için önerileri memnuniyetle kabul ediyorum.

Endişeler:

  1. Dağıtımın oldukça çarpık olabileceğine inanıyoruz; bu nedenle, posterior araçları değil posterior modları tanımlamak istiyoruz.

  2. Birkaç arka mod olabileceğinden endişe ediyoruz.

  3. Mümkünse, R tabanlı bir öneriyi tercih ederiz. Ancak, herhangi bir algoritmanın uygulanması inanılmaz derecede zor olmadığı sürece işe yarayacaktır. Sanırım sıfırdan otomatik bant genişliği seçimi ile bir Nd çekirdek yoğunluğu tahmincisi uygulamayı tercih etmem.


Yanıtlar:


9

En yakın komşu yaklaşımını kullanmayı düşündünüz mü?

örneğin k, 100.000 noktanın her biri için en yakın komşuların bir listesini oluşturmak ve sonra kthkomşudan en kısa mesafeye sahip veri noktasını bir mod olarak düşünün . Başka bir deyişle: kbu noktanın etrafındaki diğer noktaları içeren 'en küçük baloncuğu' olan noktayı bulun .

Bunun ne kadar sağlam olduğundan emin değilim ve seçimin ksonuçları açıkça etkiliyor.


Bazen kendimi başımın üstünden atmak istiyorum. Mükemmel öneri.
M.Tibbits

1
Ben de kmeansR fonksiyonunu kullanmayı düşündüm. Gerçekten gece yarısı ile 04:00 arasında soru sormamalıyım.
M.Tibbits

4

Bu sadece kısmi bir cevaptır.

Kısa süre önce çok boyutlu çekirdek yoğunluğu tahminleri için figtree kullandım . Bu bir C paketi ve oldukça kolay çalışmasını sağladım. Ancak, özet istatistikleri hesaplamak için değil, yalnızca belirli noktalardaki yoğunluğu tahmin etmek için kullandım.


3

Günlük olasılıklarını korursanız, en yüksek değere sahip olanı seçebilirsiniz. Ayrıca, ilginiz öncelikle modsa, en yüksek günlük olasılığına sahip noktayı bulmak için bir optimizasyon yapmak yeterli olacaktır.


Bu en alakalı cevap, en azından ilk bölüm! Birçok MCMC simülasyonunda, (log-) olasılıklar tüm teklifler için hesaplanır ve bu nedenle saklanabilir. Veya şimdiye kadarki en yüksek değer ve argümanı saklanabilir. MCMC algoritması çalıştırdığınız simülasyon sayısı kadar yakınsa, bu geçerli bir yaklaşımdır.
Xi'an

2

'PRIM / yumru avını' düşündünüz mü? (örneğin Tibshirani ve arkadaşlarının 'İstatistiksel Öğrenmenin Öğeleri' Bölüm 9.3'e bakın veya favori arama motorunuza sorun). Bunun R'de uygulanıp uygulanmadığından emin değilim.

[Anladığım kadarıyla, 100'000 satırınızın çizildiği olasılık yoğunluğunun modunu bulmaya çalışıyorsunuz. Böylece probleminiz uygun bir density estimationyöntem bularak kısmen çözülebilir ].


Evet, R vinyeti olan bir prim paketi var : Yumru avı için prim kullanma . Yine de, bu durumda nasıl çalışacağı açık değil.
chl
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.