İki modlu bir dağılım nasıl belirlenir?


48

Değerleri bir grafik olarak çizdiğimizde, ikiz tepeleri gözlemleyerek iki modlu bir dağılımı tanımlayabildiğimizi anlıyorum, ancak bir kişi bunu programsal olarak nasıl bulur? (Bir algoritma arıyorum.)


5
İlgi çekici bir soru. Bununla ilgili hiçbir şey bilmiyorum, bu yüzden bir cevap verme girişiminde bulunmamaya rağmen, googling bimodality + testi epeyce gelecek vaat ediyor. google.co.uk/search?q=bimodality+test
giderebilirsiniz

multimodaliteyi test etmek için programatik bir kod www.estima.com adresinde bulunabilir ve MODES.SRC olarak adlandırılır. Kolayca Matlab, R veya diğer yazılımlara dönüştürebilirsiniz. Saygılar, guido.

1
Mod sayısını tanımlayamazsınız (bir dağıtımın sahip olabileceği küçük peruk sayısının sınırı yoktur), ancak daha düşük bir sınır alabilirsiniz. örneğin buraya bakın projecteuclid.org/euclid.aos/1176351045
Glen_b

Yanıtlar:


27

Sürekli bir dağıtım için bir mod tanımlamak verilerin düzleştirilmesini veya eşleştirilmesini gerektirir.

Kutuya Dağıtım tipik çok Procrustes geçerli: Sonuçlar sıklıkla bin kesme noktaları yerleştirmek yere bağlıdır.

Çekirdek yumuşatma (özellikle, çekirdek yoğunluğu kestirimi şeklinde ) iyi bir seçimdir. Birçok çekirdek şekli mümkün olsa da, tipik olarak sonuç şekle pek bağlı değildir. Çekirdek bant genişliğine bağlıdır. Böylece insanlar ya uyarlanmış bir çekirdek pürüzsüz kullanırlar ya da tanımlanan modların stabilitesini kontrol etmek amacıyla değişken sabit bant genişlikleri için bir çekirdek pürüzsüz dizisi uygularlar. Uyarlanabilir veya "optimum" bir pürüzsüz kullanmak çekici olsa da, bunların çoğunun (hepsinin?

Uygulama devam ettiği sürece, çekirdek yerel olarak yumuşatır ve verilere uygun önceden belirlenmiş bir işlevi ölçeklendirir. Bu temel fonksiyonun ayırt edilebilir olması koşuluyla - Gausslar iyi bir seçimdir çünkü onları istediğiniz kadar farklılaştırabilirsiniz - o zaman tek yapmanız gereken pürüzsüzün türevini elde etmek için türevi ile değiştirmektir. O zaman sadece kritik noktaları tespit etmek ve test etmek için standart bir sıfır bulma prosedürü uygulamak meselesi. ( Brent'in yöntemi iyi sonuç verir.) Elbette, herhangi bir kritik noktanın yerel bir maksimum olup olmadığını (yani bir mod) hızlı bir şekilde test etmek için ikinci türevle aynı numarayı yapabilirsiniz.


2
@ venkasub'da Muller'ın kök bulma yöntemine de bakabilirsiniz. Brent'in metodundan daha basittir ve Newton'un metodu kadar etkilidir, ancak hedef fonksiyonun türevlerini bilmek zorunda değildir.
kardinal

25

Silverman'ın bu konuyla ilgilenen iyi bilinen bir makalesi var. Çekirdek yoğunluğu tahmini kullanır. Görmek

BW Silverman, Multimodaliteyi araştırmak için çekirdek yoğunluğu tahminlerini kullanma , J. Royal Stat. Soc. B , cilt. 43, hayır. 1, 1981, sayfa 97-99.

Kağıdın tablolarında bazı hatalar olduğunu unutmayın. Bu sadece bir başlangıç ​​noktası, ama oldukça iyi. En çok aradığınız şey olduğunda, kullanmak için iyi tanımlanmış bir algoritma sağlar. Google Akademik’te daha “modern” yaklaşımlar için alıntı yapan makalelere bakabilirsiniz.


4
+1 Bu makale, görünür modların sayısının çekirdek genişliğine (Gauss çekirdeği için) uygun bir genişlik seçmesine nasıl bağlı olduğunu ve cevabımda açıklandığı gibi devam ettiğini göstermektedir.
whuber

2

Partiye geç geldim, ancak sadece multimodal olup olmadığına ilgi duyuyorsanız, bu modlarla ilgilenmediğiniz anlamına gelirse , en alt seviyeye bakmalısınız .

Gelen Rpaketin adı verilir diptest.


2
Tam adı Hartigan'ın Dip Unimodality Testi. Orijinal makalede anlatılanlar bu açıklamayı verir: Daldırma testi, bir numunede çok modluluğu, tüm numune noktalarında, ampirik dağıtım fonksiyonu ile bu maksimum farkı en aza indiren tek modlu dağıtım fonksiyonu arasındaki maksimum farkla ölçer. Algoritma önemsiz değildir, ancak Unrandalite Testi için Dip İstatistik İstatistiği Hesaplamasındaki orijinal Fortran uygulamasına dayalı olarak C, Python, MATLAB ve modern Fortran çevirilerini kolayca bulabilirsiniz .
mortehu,


0

Wiki'deki tanım biraz kafamı karıştırıyor. Sürekli bir veri setinin sadece bir moda sahip olma olasılığı sıfırdır. İki modlu bir dağıtımı programlamanın basit bir yolu, farklı merkezli iki ayrı normal dağılımdır. Bu, iki tepe noktası veya wiki'nin modları dediği şeyi oluşturur. Neredeyse iki dağıtımın tümünü kullanabilirsiniz, ancak en zor istatistiksel fırsatlardan biri, iki rasgele veri dağıtımını birleştirdikten sonra veri setinin nasıl oluşturulduğunu bulmaktır.


İki normal dağılımın merkezlerini nasıl tanımlayacaksınız?
venkasub

@venkasub, normal dağılımın merkezi onun ortalamasıdır. İki modluluğun iki normal dağılımdan geldiğini biliyorsanız, iki modda olacak araçları tahmin etmek için karışım modeline uyabilirsiniz.
mpiktas
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.