Saya memiliki satu set besar fitur vektor yang akan saya gunakan untuk menyerang masalah klasifikasi biner (menggunakan scikit belajar dengan Python). Sebelum saya mulai berpikir tentang imputasi, saya tertarik untuk mencoba menentukan dari bagian data yang tersisa apakah data yang hilang 'hilang secara acak' atau hilang bukan secara acak.
Apa cara yang masuk akal untuk mendekati pertanyaan ini?
Ternyata pertanyaan yang lebih baik adalah menanyakan apakah data 'hilang sepenuhnya secara acak' atau tidak. Apa cara yang masuk akal untuk melakukan itu?
missing-data
randomness
Lembik
sumber
sumber
Jawaban:
Saya menemukan informasi yang saya bicarakan dalam komentar saya.
Dari buku van Buurens , halaman 31, ia menulis
"Beberapa tes telah diusulkan untuk menguji MCAR versus MAR. Tes ini tidak banyak digunakan, dan nilai praktisnya tidak jelas. Lihat Enders (2010, hlm. 17-21) untuk evaluasi dua prosedur. Tidak mungkin untuk menguji MAR versus MNAR karena informasi yang diperlukan untuk tes seperti itu tidak ada. "
sumber
Ini tidak mungkin, kecuali jika Anda berhasil mengambil data yang hilang. Anda tidak dapat menentukan dari data yang diamati apakah data yang hilang hilang secara acak (MAR) atau tidak secara acak (MNAR). Anda hanya dapat mengetahui apakah data jelas tidak hilang sepenuhnya secara acak (MCAR). Di luar itu hanya menarik masuk akal MCAR atau MAR sebagai lawan dari MNAR berdasarkan apa yang Anda ketahui (misalnya alasan yang dilaporkan mengapa data hilang). Atau, Anda mungkin dapat berdebat bahwa itu tidak terlalu penting, karena proporsi data yang hilang kecil dan di bawah MNAR skenario yang sangat ekstrim harus terjadi agar hasil Anda dibatalkan (lihat "analisis titik kritis").
sumber
Ini terdengar sangat bisa dilakukan dari sudut pandang klasifikasi.
Anda ingin mengklasifikasikan data yang hilang dan tidak hilang menggunakan semua fitur lainnya. Jika Anda mendapatkan secara signifikan lebih baik daripada hasil acak, maka data Anda tidak hilang secara acak.
sumber
Anda ingin tahu apakah ada beberapa korelasi dari nilai yang terlewat dalam fitur dan nilai dari fitur lainnya.
Untuk setiap fitur, buat fitur baru yang menunjukkan apakah nilainya hilang atau tidak (sebut saja fitur "is_missing"). Hitung ukuran korelasi favorit Anda (saya sarankan menggunakan informasi timbal balik di sini) dari fitur is_missing dan fitur lainnya.
Perhatikan bahwa jika Anda tidak menemukan korelasi antara dua fitur, masih mungkin untuk memiliki korelasi karena kelompok fitur (nilai hilang sebagai fungsi XOR dari sepuluh fitur lainnya).
Jika Anda memiliki seperangkat fitur besar dan sejumlah besar nilai, Anda akan mendapatkan korelasi palsu karena keacakan. Selain cara-cara biasa untuk mengatasi hal itu (set validasi, ambang batas yang cukup tinggi) Anda dapat memeriksa apakah korelasinya simetris dan transitif. Jika ya, kemungkinan benar dan Anda harus memeriksanya lebih lanjut.
sumber
Metode yang saya gunakan adalah matriks bayangan, di mana dataset terdiri dari variabel indikator di mana 1 diberikan jika nilai hadir, dan 0 jika tidak. Mengkorelasikan ini satu sama lain dan data asli dapat membantu menentukan apakah variabel cenderung hilang bersama (MAR) atau tidak (MCAR). Menggunakan
R
contoh (meminjam dari buku "R in action" oleh Robert Kabacoff):sumber