Saya menerapkan berbagai algoritme untuk memperkirakan jumlah sampah terbaik yang digunakan untuk histogram. Sebagian besar yang saya laksanakan dijelaskan pada halaman "Histogram" Wikipedia di bagian " Jumlah sampah dan lebar " *.
Saya terjebak pada masalah dengan rumus Doane:
1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))
dimana n
ukuran data.
Masalahnya adalah ketika kurtosis negatif dan n >> 1
karena argumen log
menjadi negatif.
* (halaman itu telah berubah sejak ini diposting, tautan diedit untuk menunjuk ke halaman sebagaimana pada saat posting)
Jawaban:
Jawaban ini telah mengalami perubahan signifikan ketika saya menyelidiki halaman wikipedia. Saya telah meninggalkan jawaban sebagian besar sebagaimana mereka tetapi ditambahkan kepada mereka, jadi saat ini ini membentuk perkembangan pemahaman; bagian terakhir adalah tempat informasi terbaik.
Jawaban singkat: halaman wikipedia - dan formula OP, yang tampaknya sama - sama sekali salah, karena setidaknya tiga alasan berbeda. Saya akan meninggalkan diskusi asli saya (yang mengasumsikan bahwa OP dan wikipedia telah melakukannya dengan benar) karena itu menjelaskan beberapa masalah. Diskusi yang lebih baik mengikuti nanti. Saran singkatnya: lupakan saja Doane. Jika Anda harus menggunakannya, gunakan apa yang dikatakan wikipedia sekarang (saya perbaiki).
Saya percaya bahwa formula harus mengacu pada kelebihan kurtosis; alasan saya untuk itu adalah bahwa ia memodifikasi formula untuk data normal untuk memperhitungkan data yang tidak normal sehingga Anda akan mengharapkannya untuk mereproduksi yang tidak dimodifikasi di normal. Itu terjadi jika Anda menggunakan kurtosis berlebih.
Saya juga menyarankan bahwa dalam hal apapun itu akan memberikan terlalu sedikit tempat sampah pada ukuran sampel besar, bahkan ketika itu berfungsi sebagaimana dimaksud.
Anda dapat menemukan makalah ini (oleh CVer Rob Hyndman ):
http://www.robjhyndman.com/papers/sturges.pdf
menarik. Jika argumen Sturges salah, rumus Doane memiliki masalah yang sama ... seperti yang ditulis Rob dengan jelas di koran.
Dalam makalah itu (dan dalam jawaban ini ) dia memberi anggukan pada aturan Freedman-Diaconis. Dalam makalah ia juga menunjuk ke pendekatan yang disebutkan oleh Matt Wand (ia merujuk pada kertas kerja yang tampaknya tidak online, tetapi makalah berikutnya tersedia jika Anda memiliki akses):
http://www.jstor.org/discover/10.2307/2684697
[Sunting: sebenarnya tautan ke kertas kerja ada di halaman citeseer ]
Pendekatan itu melibatkan sekitar memperkirakan fungsional tertentu untuk mendapatkan sekitar optimal (dalam hal rata-rata kesalahan kuadrat terintegrasi, MISE) lebar untuk memperkirakan kepadatan yang mendasarinya. Walaupun ini bekerja dengan baik dan memberikan lebih banyak nampan daripada Sturges atau Doane pada umumnya, kadang-kadang saya masih lebih suka menggunakan lebih banyak nampan, meskipun biasanya ini merupakan upaya pertama yang sangat bagus.
Terus terang saya tidak tahu mengapa pendekatan Wand (atau setidaknya aturan Fredman Diaconis) tidak menjadi default di mana-mana.
R setidaknya menawarkan perhitungan Freedman-Diaconis dari jumlah tempat sampah:
Lihat
?nclass.FD
Secara pribadi, bagi saya itu terlalu sedikit tempat sampah dalam dua kasus pertama setidaknya; Saya akan menggandakan keduanya meskipun fakta bahwa mungkin sedikit ribut daripada optimal. Ketika n menjadi besar, saya pikir itu sangat baik dalam banyak kasus.
Edit 2:
Saya memutuskan untuk menyelidiki masalah skewness vs kurtosis yang @PeterFlom dengan tepat menyatakan kebingungan.
Saya baru saja melihat kertas Doane yang ditautkan (saya pernah membacanya sebelumnya .... tapi itu hampir 30 tahun yang lalu) - tidak ada referensi sama sekali tentang kurtosis, hanya kemiringan.
Menurut saya, argumen Doane seharusnya dengan senang hati meluas ke kurtosis, tetapi kesalahan standar yang benar harus digunakan.
Namun, karena Doane bergantung pada argumen Sturges dan Sturges tampaknya cacat, mungkin seluruh perusahaan akan hancur. Bagaimanapun saya telah mengedit halaman pembicaraan Histogram di wikipedia mencatat kesalahan.
---
sumber
Ukuran kurtosis yang didefinisikan dalam hal momen kedua dan keempat tidak pernah negatif ( lihat ), kemudian
log(1+...)>0
.Kuantitas ini diimplementasikan dalam perintah
kurtosis()
dari perpustakaan Rmoments
. Selain itu, menggunakan perintahhist()
Anda dapat menentukan jumlah istirahat sebagai berikutRumus yang digunakan dalam perintah
kurtosis()
itu sederhanamean((data - mean(data))^4)/mean((data - mean(data))^2)^2
.Sekarang, jika Anda ingin menyelidiki apa rumus `` terbaik '', maka Anda akan memerlukan kriteria. Pertimbangkan bahwa ini telah dibahas secara luas dalam literatur statistik.
sumber
log(n,2)
bukanlog(n)
. TETAPI, entri wikipedia serta sumber-sumber lain menunjukkan bahwa itu seharusnyalog
.