Komputasi mode data sampel dari distribusi kontinu

12

Apa metode terbaik untuk menyesuaikan 'mode' data sampel dari distribusi kontinu?

Karena mode ini secara teknis tidak terdefinisi (kanan?) Untuk distribusi kontinu, saya benar-benar bertanya 'bagaimana Anda menemukan nilai yang paling umum'?

Jika Anda menganggap distribusi induk adalah gaussian, Anda dapat meng-bin data dan menemukan mengatakan mode adalah lokasi bin dengan jumlah terbesar. Namun, bagaimana Anda menentukan ukuran nampan? Apakah ada implementasi yang kuat? (Yaitu, kuat untuk outlier). Saya menggunakan python/ scipy/ numpy, tapi saya mungkin bisa menerjemahkan Rtanpa kesulitan terlalu banyak.

keflavich
sumber
8
Saya tidak yakin apakah mode tersebut secara teknis ditentukan dengan cara ini, tetapi mode global dari distribusi kontinu biasanya dianggap sebagai titik dengan kepadatan tertinggi.
Makro
1
@ Macro - itu membantu. Anda kemudian dapat membaca pertanyaan saya sebagai, 'Apa metode terbaik untuk menentukan kepadatan (puncak)?'
keflavich
1
Mungkin cocok dengan estimasi kepadatan kernel untuk data Anda dan perkirakan mode sebagai puncaknya? Ini sepertinya pendekatan yang masuk akal tapi saya tidak terbiasa dengan literatur tentang masalah ini.
Makro
1
x0=xmin,x1,x2,...,x9,x10=xmaks10%xsaya+1-xsayamin1j10xj+1-xj
2
Asumsi apa yang dapat Anda buat tentang distribusi induk, keflavich? Jika parameternya parametrik, yang terbaik adalah memperkirakan parameter dan kemudian memperkirakan mode dari parameter tersebut. (Misalnya, mean sampel memperkirakan mode distribusi normal.) Jika tidak, binning bisa menjadi metode yang buruk. Sebagai gantinya, urutan estimator kernel dengan halfwidth yang bervariasi dapat digunakan untuk memberikan urutan estimator; biasanya, jika distribusi yang mendasarinya adalah unimodal, mode dari smooths kernel akan muncul untuk menyatu ke mode yang unik ketika halfwidth menjadi besar dan itu bisa menjadi perkiraan Anda.
Whuber

Jawaban:

4

Dalam R, menerapkan metode yang tidak didasarkan pada pemodelan parametrik dari distribusi yang mendasarinya dan menggunakan estimator kernel default dari kepadatan hingga 10.000 variabel terdistribusi gamma:

x <- rgamma(10000, 2, 5)
z <- density(x)
plot(z) # always good to check visually
z$x[z$y==max(z$y)]

mengembalikan 0,199 yang merupakan nilai x diperkirakan memiliki kepadatan tertinggi (estimasi kepadatan disimpan sebagai "z $ y").

Peter Ellis
sumber
3
Satu-satunya hal yang akan saya lakukan berbeda dari itu adalah menggunakan bandwidth yang berbeda. Bandwidth default untuk density () tidak terlalu bagus. density (x, bw = "SJ") lebih baik. Bahkan lebih baik menggunakan bandwidth yang dirancang untuk estimasi mode. Lihat sciencedirect.com/science/article/pii/0167715295000240 untuk beberapa diskusi.
Rob Hyndman
2

Misalkan Anda membuat histogram, dari ukuran nampan b, dan nampan terbesar memiliki k entri, dari total sampel ukuran n. Maka rata-rata PDF di dalam nampan itu dapat diperkirakan sebagai b * k / n.

Masalahnya adalah bahwa nampan lain, yang memiliki anggota total lebih sedikit, bisa memiliki kepadatan tempat yang tinggi. Anda hanya dapat mengetahui hal ini jika Anda memiliki asumsi yang masuk akal tentang laju perubahan PDF. Jika Anda melakukannya, maka Anda dapat memperkirakan probabilitas bahwa bin terbesar kedua sebenarnya berisi mode.

Masalah yang mendasarinya adalah ini. Sebuah sampel memberikan pengetahuan yang baik tentang CDF, oleh teorema Kolmogorov-Smirnov, dan estimasi yang baik untuk median dan kuantil lainnya. Tetapi mengetahui perkiraan suatu fungsi di L1 tidak memberikan perkiraan pengetahuan tentang turunannya. Jadi tidak ada sampel yang memberikan pengetahuan yang baik tentang PDF, tanpa asumsi tambahan.

chrishmorris
sumber
0

Berikut adalah beberapa sketsa solusi umum yang juga berfungsi untuk distribusi dimensi tinggi:

  • Latih f-GAN dengan reverse KL divergence, tanpa memberikan input acak apa pun ke generator (mis. Paksa itu menjadi deterministik).

  • Latih f-GAN dengan divergensi KL terbalik, pindahkan distribusi input ke generator menuju fungsi delta Dirac saat pelatihan berlangsung, dan tambahkan penalti gradien ke fungsi kehilangan generator.

  • Melatih model generatif (dapat dibedakan) yang dapat dengan traktat mengevaluasi perkiraan pdf pada titik mana pun (saya percaya bahwa misalnya VAE, model berbasis aliran, atau model autoregresif akan dilakukan). Kemudian gunakan beberapa jenis optimasi (beberapa rasa gradien naik dapat digunakan jika inferensi model dapat dibedakan) untuk menemukan maksimum perkiraan itu.

Stephane Bersier
sumber