(Notebook untuk artikel ini dapat diakses di link berikut)

Setelah kita mengenali apa itu missing value, bagaimana biasanya missing value itu ditulis, dan juga apa saja tipe missing value. Sekarang akan dijelaskan bagaimana cara menghandle missing value

Perlu dicatat bahwa, tidak ada metode yang benar benar terbaik dalam menghandle missing data, metode yang dapat digunakan akan bergantung pada tipe data dan masalah yang ditelaah

Garis besarnya, kita dapat:

Menghindari data dengan missing value

Yaitu drop data / menghapus data yang mengandung missing value ataupun menghapus variabel yang memiliki banyak sekali missing value

Cara menghapus data inipun ada beberapa macam

Listwise Deletion, yaitu menghapus row yang mempunyai satu atau lebih missing value

Pairwise Deletion, yaitu hanya menghapus missing value pada variabel variabel yang ingin digunakan, misal kita ingin mencari korelasi antara glucose_conc dan diastolic_bp, kita hanya perlu menghapus row berikut ini

Menghapus variabel, yaitu membuang variabel jika data pada kolom tersebut banyak sekali yang missing, misalkan hampir 50%.


Variabel insulin dapat dipertimbangkan untuk dihapus

Mengabaikan missing value

Mengabaikan missing value, beberapa algoritma machine learning atau metode analisis lainnya dapat dengan sendirinya meng-handle missing value, contohnya adalah decision tree, k-Nearest Neighbors (kNN), Gradient Boosting Method (GBM) yang dapat mengabaikan missing value, ataupun XGBoost yang dapat mengimputasi sendiri missing value pada data

Ataupun jika ada beberapa kolom yang tidak memberikan informasi apa apa, kita dapat membiarkan missing value ada di kolom tersebut karena kolom tersebut pun tidak memberikan informasi yang signifikan, contohnya adalah kode tiket pada data penerbangan, kita tidak perlu sulit-sulit memikirkan bagaimana cara mengimputasi kolom tersebut.

Mengimputasinya

kita dapat menggantikan missing value tersebut dengan suatu nilai, ada beberapa metode dalam mengimputasi missing value

Univariate Imputation

Salah satu contoh imputasi univariat adalah

  • Imputasi dengan median / mean / modus

Imputasi dengan median / mean digunakan pada data numerik, idenya kita mengganti missing value pada kolom dengan median / mean dari data yang tidak missing, sedangkan imputasi dengan modus digunakan pada data kategorik.

(catatan : Jika distribusi data cukup skewed (menceng kanan atau kiri), atau terdapat nilai nilai ekstrim, median lebih di sarankan daripada mean)

Alternatifnya, Anda pun dapat membedakan imputasi berdasarkan variabel kategorik tertentu, misalnya untuk yang penderita diabetes, akan diimputasi dengan rata rata dari penderita diabetes, dan sebaliknya

  • Multivariate Imputation

Single Imputation, metode metode yang dapat digunakan adalah memprediksi nilai missing dengan menggunakan metode metode supervised learning seperti kNN, regresi linear, regresi logistik (untuk data kategorik)

Multiple Imputation, salah satu metode yang dapat digunakan adalah Multivariate Imputation by Chained Equation (MICE) untuk missing value yang numerik

Sumber: http://www.stefvanbuuren.nl/publications/mice%20in%20r%20-%20draft.pdf

Kasus lainnya

Salah satu cara menangani missing value pada data kategorik dapat dijadikan level tersendiri

Missing value pada data Time Series, Imputasi dapat dilakukan dengan:

  • mengisi nilai yang missing dengan nilai sebelumnya yang tidak missing, sering disebut juga dengan Last Observation Carried Forward (LOCF) ataupun dengan nilai selanjutnya yang tidak missing, sering disebut juga Next Observation Carried Backward (NOCB)
  • Menggunakan Interpolasi Linear
  • Menggunakan Interpolasi Linear dengan memperhitungkan tren seasonal

Penutup

Perlu diingat bahwa ada algoritma yang dapat walaupun ada missing value (misal kNN, decision tree, dsb), dan ada juga algoritma yang tidak akan bekerja jika ada missing value (misal regresi linear). Oleh karena itu, diperlukan preprocessing yang berbeda dalam analisis data, tergantung bagaimana kita akan menganalisis data tersebut

Akhir kata, tidak ada cara yang benar benar terbaik dalam menangani missing value, suatu metode dapat mempunyai hasil yang baik di suatu dataset, tapi bisa saja mempunyai hasil yang buruk di dataset lainnya, tidak ada jalan yang pasti, lakukanlah ekplorasi dan pahami data anda

Selamat bereksperimen, dan sampai jumpa di artikel berikutnya!

Referensi

https://towardsdatascience.com/how-to-handle-missing-data-8646b18db0d4

https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779

https://towardsdatascience.com/data-cleaning-with-python-and-pandas-detecting-missing-values-3e9c6ebcf78b

https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/