Topik wawancara representatif

Wawancara Data Science: Bagaimana cara Anda menangani data hilang MCAR, MAR, dan MNAR?

DataSedang
Tim Redaksi Offer.ccDipublikasikan Diperbarui

Pertanyaan

Sebuah model churn memiliki 18% nilai pendapatan yang hilang. Bagaimana Anda menganalisis mekanisme hilangnya data, memilih antara penghapusan, imputasi, atau sinyal ketidakhadiran data, serta membuktikan bahwa penanganan tersebut tidak membocorkan informasi?

Prompt dan konteks

Skenario ini cocok untuk wawancara data science, data analytics, dan machine learning. Dataset berisi perilaku pengguna, wilayah, pendapatan, dan label churn; pendapatan hilang pada 18% baris. Anda harus menjelaskan mengapa data tersebut hilang sebelum memilih metode penanganan. Persentase saja bukanlah aturan keputusan.

Apa yang diuji oleh pewawancara

  • Membedakan MCAR, MAR, dan MNAR alih-alih memperlakukan setiap null sebagai masalah yang sama.
  • Menjelaskan indikator ketidakhadiran data (missingness indicators), model imputasi, dan batas train-validation.
  • Mendeteksi sinyal dalam data yang hilang, bias seleksi, dan kebocoran informasi (information leakage).

Pertanyaan klarifikasi sebelum menjawab

  • Apakah pendapatan dimasukkan oleh pengguna, hilang karena kegagalan pengumpulan data, atau hanya ditampilkan di beberapa wilayah? Mekanismenya mengubah apa yang dapat diidentifikasi.
  • Apakah tujuannya prediksi atau estimasi kausal? Prediksi dapat mempertahankan sinyal ketidakhadiran data; analisis kausal memerlukan asumsi yang lebih kuat dan analisis sensitivitas.
  • Apakah pendapatan juga tidak tersedia pada saat inferensi di produksi? Backfill offline yang tidak akan ada secara online menciptakan ketidakcocokan fitur (feature mismatch).
  • Apakah pembagian data (split) berdasarkan pengguna, waktu, atau baris acak? Pengguna yang sama dalam beberapa set dapat membocorkan informasi melalui imputasi dan evaluasi.

Kerangka jawaban 30 detik

Saya akan memetakan indikator ketidakhadiran data terhadap kolom yang teramati dan target, memisahkan penyebab yang diketahui, penjelasan MAR yang didukung oleh data teramati, dan asumsi MNAR yang tidak dapat diverifikasi oleh data teramati. Saya akan menyesuaikan (fit) imputer hanya pada data pelatihan, mempertahankan indikator ketidakhadiran data, dan mengevaluasi berdasarkan pola hilangnya data yang asli. Jika mekanismenya tidak pasti, saya akan membandingkan penghapusan, imputasi sederhana, imputasi berbasis model, dan skenario sensitivitas, lalu memilih opsi dengan biaya bisnis dan bukti validasi yang dapat diterima.

Pembahasan mendalam langkah demi langkah

1. Ubah null menjadi peristiwa yang dapat dianalisis

Buat indikator ketidakhadiran data M untuk setiap kolom dan buat profilnya berdasarkan waktu, wilayah, perangkat, saluran, dan label target. Periksa log, alur formulir, dan skema upstream terlebih dahulu. Jika data hilang melonjak setelah suatu rilis, perbaiki pengumpulan data daripada menyembunyikan insiden tersebut dengan imputasi.

2. Jelaskan tiga batasan mekanisme

MCAR berarti hilangnya data tidak terkait dengan nilai yang teramati maupun yang tidak teramati. Di bawah asumsi tersebut dan kondisi lain yang diperlukan, analisis kasus lengkap (complete-case analysis) tidak dibias oleh mekanisme tersebut, tetapi kehilangan ukuran sampel. MAR berarti bahwa setelah mengondisikan variabel yang teramati, hilangnya data tidak terkait dengan nilai yang hilang itu sendiri, seperti pendapatan yang hilang dengan cara yang dapat dijelaskan oleh wilayah dan perangkat. MNAR berarti bahwa bahkan setelah variabel teramati dikontrol, hilangnya data tetap terkait dengan pendapatan yang tidak teramati atau penyebabnya, seperti pengguna berpendapatan tinggi yang menolak untuk menjawab.

Mekanisme-mekanisme ini bukanlah label yang dapat dibuktikan dengan satu plot saja. Log dan variabel teramati dapat mendukung suatu penjelasan; MNAR sering kali memerlukan asumsi domain, data eksternal, atau analisis sensitivitas.

3. Pilih metode penanganan

  • Jika kegagalan pengumpulan data yang dapat diperbaiki menyebabkan data hilang, lakukan backfill pada sumber data atau perbaiki pipeline dan buat versi perbaikannya.
  • Untuk prediksi ketika data yang hilang membawa sinyal, lakukan fit imputer pada statistik pelatihan atau model pelatihan, tambahkan indikator ketidakhadiran data, dan verifikasi bahwa produksi memiliki sinyal yang sama.
  • Jika tingkat kehilangan kecil dan MCAR masuk akal, penghapusan mungkin dapat diterima, tetapi laporkan kehilangan sampel dan efek per irisan (slice effects).
  • Ketika ketidakpastian penting atau MNAR masuk akal, bandingkan imputasi berganda (multiple imputation), model ketidakhadiran eksplisit, batasan (bounds), dan sensitivitas pattern-mixture; pengisian nilai rata-rata (mean) tunggal bukanlah bukti.

SimpleImputer, KNNImputer, dan IterativeImputer milik scikit-learn adalah alat di bawah asumsi yang berbeda; mereka tidak mengidentifikasi mekanisme secara otomatis. Lakukan fit pada data pelatihan dan terapkan pada data validasi, uji, dan produksi.

4. Rancang validasi dan pertahanan terhadap kebocoran

Tempatkan imputasi, penskalaan, dan pengkodean dalam satu pipeline pelatihan. Lakukan refit di dalam setiap fold validasi silang (cross-validation); jangan pernah menghitung mean global, median, atau set tetangga sebelum pemisahan data. Pisahkan data berbasis waktu berdasarkan waktu dan data pengguna berdasarkan pengguna. Bandingkan pola hilangnya data asli, distribusi pasca-imputasi, koefisien indikator, kalibrasi, dan metrik per irisan. Masukkan data hilang tambahan ke dalam validasi untuk mensimulasikan degradasi di produksi.

5. Gunakan biaya bisnis untuk menerima hasil

Jika salah mengklasifikasikan pengguna bernilai tinggi berbiaya lebih mahal daripada melewatkan pengguna biasa, AUC saja tidak cukup. Laporkan recall, kalibrasi, biaya ambang batas (threshold cost), volume peninjauan, dan risiko penolakan di bawah berbagai pola data hilang. Bekukan versi imputer, skema, dan kebijakan sebelum peluncuran; pantau pergeseran (drift) data hilang dan hentikan keputusan otomatis atau gunakan aturan fallback yang aman ketika drift melintasi ambang batas.

Contoh jawaban berkualitas tinggi

"Saya tidak akan memutuskan untuk menghapus atau mengisi nilai hanya berdasarkan tingkat kehilangan 18%. Saya akan menentukan apakah pendapatan hilang karena kegagalan pengumpulan, pilihan pengguna, atau alur khusus saluran tertentu, kemudian membuat profil indikator ketidakhadiran data berdasarkan waktu, wilayah, perangkat, dan churn. Jika kolom teramati dapat menjelaskannya, saya akan menggunakan asumsi MAR, menyesuaikan setiap imputer di dalam setiap fold pelatihan, dan mempertahankan indikator tersebut. Jika bukti domain menunjukkan bahwa pengguna berpendapatan tinggi kurang bersedia menjawab, saya akan memperlakukan MNAR sebagai asumsi yang tidak dapat dibuktikan oleh data saat ini dan menjalankan analisis sensitivitas pattern-mixture atau batas (bounds). Saya akan membandingkan penghapusan, imputasi sederhana, dan imputasi berbasis model pada set validasi yang diisolasi berdasarkan pengguna atau waktu, serta melaporkan kalibrasi, biaya irisan, dan data hilang di produksi. Jika produksi tidak dapat memperoleh pendapatan, saya tidak akan bergantung pada backfill offline."

Kesalahan umum

  • Menghapus karena tingkat kehilangannya 18% → kehilangan sampel dan bias seleksi tidak terukur → analisis mekanisme, irisan data, dan biaya bisnis terlebih dahulu.
  • Menghitung mean global sebelum memisahkan data → informasi validasi masuk ke pelatihan → lakukan fit imputasi di dalam setiap fold pelatihan.
  • Menyebut indikator ketidakhadiran data sebagai bukti MNAR → korelasi tidak mengungkapkan penyebab yang tidak teramati → nyatakan asumsinya dan jalankan analisis sensitivitas.
  • Hanya membandingkan AUC → biaya ambang batas, kalibrasi, dan drift tetap tersembunyi → laporkan irisan data, biaya keputusan, dan pemantauan produksi.

Pertanyaan lanjutan dan tanggapan

Bagaimana jika pendapatan sama sekali tidak tersedia di produksi?

Bangun kembali pelatihan dan validasi dengan kolom-kolom yang tersedia di produksi. Pertahankan indikator ketidakhadiran data hanya jika itu merupakan sinyal produksi yang stabil, atau hapus fitur tersebut. Jangan menciptakan peningkatan yang hanya ada secara offline dengan pendapatan yang di-backfill kecuali jika produksi memperolehnya pada waktu pengambilan keputusan yang sama.

Bagaimana cara menguji sensitivitas MNAR?

Tentukan rentang yang masuk akal tentang bagaimana nilai yang hilang berbeda dari nilai yang teramati, variasikan pergeseran atau model ketidakhadiran tersebut, lalu hitung ulang metrik dan biaya bisnis. Jika kesimpulannya berbalik dalam rentang yang wajar, beri label sebagai tergantung asumsi dan kumpulkan data eksternal atau rancang pengambilan sampel tambahan.

Apa perbedaan antara imputasi berganda dan imputasi berbasis model?

Imputasi berbasis model sering kali membuat satu dataset lengkap, yang dapat berfungsi untuk prediksi tetapi mengecilkan ketidakpastian. Imputasi berganda membuat beberapa dataset yang masuk akal dan menggabungkan estimasi, membuat ketidakpastian menjadi eksplisit. Keduanya harus di-fit dalam batas pelatihan dan menghindari kebocoran target.

Apa yang Anda lakukan pertama kali ketika data hilang meningkat dari 18% menjadi 30%?

Hentikan sementara penilaian normal, periksa skema, versi klien, instrumentasi, dan tugas-tugas upstream, serta lokalisasi irisan data yang terdampak. Jika ini adalah insiden pengumpulan data, perbaiki atau lakukan backfill sebelum melatih ulang. Jika ini adalah perubahan bisnis, nilai kembali mekanisme, ambang batas, dan kebijakan fallback.

Sumber publik

Pertanyaan terkait