Saya perlu mendapatkan seakurat mungkin nilai untuk kecerahan sumber cahaya yang stabil terutama yang diberikan dua belas nilai luminositas sampel. Sensornya tidak sempurna, dan cahayanya kadang-kadang bisa "berkedip" lebih terang atau lebih gelap, yang bisa diabaikan, karenanya saya perlu deteksi outlier (saya pikir?).
Saya sudah membaca beberapa pendekatan di sini dan tidak bisa memutuskan pendekatan mana yang harus diambil. Jumlah outlier tidak pernah diketahui sebelumnya dan seringkali akan menjadi nol. Flicker umumnya merupakan penyimpangan yang sangat besar dari kecerahan yang stabil (cukup untuk benar-benar mengacaukan dengan rata-rata yang diambil dengan hadiah besar), tetapi tidak harus demikian.
Berikut ini adalah 12 sampel pengukuran untuk kelengkapan pertanyaan:
295.5214, 277.7749, 274.6538, 272.5897, 271.0733, 292.5856, 282.0986, 275.0419, 273.084, 273.1783, 274.0317, 290.1837
Perasaan saya adalah mungkin tidak ada outlier dalam set tertentu, meskipun 292 dan 295 terlihat agak tinggi.
Jadi, pertanyaan saya adalah, apa yang akan menjadi pendekatan terbaik di sini? Saya harus menyebutkan bahwa nilai-nilai berasal dari mengambil jarak euclidean komponen RG dan B dari cahaya dari titik nol (hitam). Akan menyakitkan secara pemrograman, tetapi mungkin, untuk kembali ke nilai-nilai ini jika diperlukan. Jarak euclidean digunakan sebagai ukuran "kekuatan keseluruhan" karena saya tidak tertarik pada warna, hanya kekuatan output. Namun, ada kemungkinan yang masuk akal bahwa flicker yang saya sebutkan memiliki komposisi RGB yang berbeda dengan output yang biasa.
Saat ini saya sedang mempermainkan beberapa fungsi yang akan berulang sampai keanggotaan stabil dari tindakan yang diizinkan tercapai oleh:
- Menemukan standar deviasi
- Menempatkan segala sesuatu di luar mengatakan 2 SD ke daftar abaikan
- Menghitung ulang rata-rata dan SD dengan daftar abaikan dikecualikan
- Menentukan kembali siapa yang harus diabaikan berdasarkan rata-rata dan SD yang baru (nilai semua 12)
- Ulangi sampai stabil.
Apakah ada nilai dalam pendekatan itu?
Semua komentar diterima dengan rasa terima kasih!
sumber
Jawaban:
Pencilan dalam sampel kecil selalu sangat sulit dideteksi. Dalam kebanyakan kasus sebenarnya saya akan menganjurkan bahwa jika Anda merasa bahwa data Anda tidak terus-menerus rusak, nilai "outlierish" mungkin tidak bermasalah dan pengecualiannya mungkin tidak masuk akal. Mungkin menggunakan teknik statistik yang kuat akan lebih masuk akal dan lebih dekat ke solusi jalan tengah. Anda memiliki sampel kecil; cobalah untuk membuat setiap titik sampel dihitung. :)
Mengenai pendekatan yang Anda sarankan: Saya tidak akan terburu-buru menerapkan asumsi normalitas data Anda dengan aturan 68-95-99.7 pada mereka (seperti yang tampaknya Anda lakukan dengan aturan heuristik 2SD Anda). Ketidaksetaraan Chebyshev untuk sekali mengasumsikan aturan 75-88.9-93.8 tentang mereka yang jelas kurang kaku. " Aturan " lain juga ada; bagian Mengidentifikasi pencilan dalam lemma Outlier di wikipedia memiliki kumpulan heuristik.
Sekali lagi, mengingat Anda memiliki sampel yang sangat kecil, jika Anda yakin bahwa sampel Anda tidak jelas rusak (tinggi manusia 9'4 "), saya akan menyarankan Anda untuk tidak mengecualikan data dengan tergesa-gesa." Yang diduga pencilan "Anda mungkin adalah data yang tidak rusak; penggunaannya dapat benar-benar membantu daripada merusak analisis Anda.
sumber
Q-test Dixon untuk pencilan dalam dataset yang sangat kecil tampaknya cocok untuk situasi seperti ini:
http://en.wikipedia.org/wiki/Dixon%27s_Q_test
http://www.chem.uoa.gr/applets/AppletQtest/Text_Qtest2.htm
sumber
Arahkan yang pertama - mungkin layak untuk kembali ke warna rgb. Jarang membuang data, dan besarnya vektor rgb bukanlah satu-satunya cara untuk mewakili kecerahan - kecerahan yang dirasakan berbeda, seperti halnya nilai dalam HSV.
Tetapi menempatkan itu di satu sisi dan berurusan dengan data yang Anda miliki, sudahkah Anda mempertimbangkan membentuk ini sebagai masalah klasifikasi, bukan pemodelan, dan melakukan pembelajaran mesin? Anda memiliki input, yang merupakan vektor dengan 12 nilai riil di dalamnya (pembacaan kecerahan). Anda memiliki output, yang merupakan vektor dari 12 nilai biner (1 = inlier, 0 = outlier). Dapatkan beberapa set pembacaan kecerahan dan beri label sendiri, yang menunjukkan pembacaan kecerahan di setiap set adalah inlier / outlier. Sesuatu seperti ini:
Kemudian, jalankan seluruh lot melalui semacam classifier:
Dan kamu selesai! Tidak perlu repot mencari 'aturan' yang memisahkan inliers dari outlier sendiri. Hanya dapatkan beberapa set data yang terlihat masuk akal dan biarkan mesin melakukannya untuk Anda :)
~~~
EDIT: Kebetulan, metode yang Anda usulkan, di mana Anda secara iteratif cocok dengan gaussian kemudian mengklasifikasikan setiap sampel lebih dari 2 standar deviasi sebagai pencilan, sangat mirip dengan algoritma maksimalisasi harapan. Sesuatu seperti ini:
Jika Anda turun rute itu mungkin layak googling untuk algoritma EM dan memeriksa asumsi apa yang Anda bangun ke dalam model Anda.
sumber