Imputasi multipel dengan bootstrapping

Menangani Data Hilang dengan Imputasi di R

Michal Oleszak

Machine Learning Engineer

Ketidakpastian dari imputasi

  • Imputasi biasanya langkah awal sebelum analisis atau pemodelan.
  • Nilai hilang diperkirakan dengan ketidakpastian.
  • Ketidakpastian ini harus diperhitungkan dalam analisis pada data imputasi.

Header halaman judul makalah Ranjit Lall berjudul "How Multiple Imputation Makes a Difference."

Dalam hampir setengah studi, hasil kunci menghilang

Menangani Data Hilang dengan Imputasi di R

Bootstrap

Bootstrapping = mengambil baris dengan pengembalian hingga ukuran awal

Dua data frame tiruan. Kiri, berlabel "original data", tiap baris berwarna berbeda menandakan nilai berbeda. Kanan, berlabel "bootstrapped sample", beberapa baris berwarna dari "original data" muncul lebih dari sekali, sementara lainnya tidak muncul.

Menangani Data Hilang dengan Imputasi di R

Imputasi multipel dengan bootstrapping

Diagram lima tahap imputasi dengan bootstrapping. Dari data frame tiruan "original data", tiga panah menuju tiga data frame lain berlabel "different bootstrap samples". Dari masing-masing, panah menuju langkah "Imputation". Dari sana, panah menuju langkah "Modeling / analysis". Lalu panah menuju satu simpul akhir "Distribution of results".

Menangani Data Hilang dengan Imputasi di R

Imputasi ber-bootstrap: pro & kontra

Kelebihan:

  • Cocok dengan metode imputasi apa pun.
  • Dapat mendekati besaran yang sulit dihitung analitik.
  • Bekerja untuk data MCAR dan MAR.

Kekurangan:

  • Lambat untuk banyak replikasi atau komputasi yang memakan waktu.
Menangani Data Hilang dengan Imputasi di R

Bootstrapping dalam praktik

calc_correlation <- function(data, indices) {






  # Kembalikan koefisien korelasi
  return(corr_coeff)
}
Menangani Data Hilang dengan Imputasi di R

Bootstrapping dalam praktik

calc_correlation <- function(data, indices) {
  # Ambil sampel bootstrap
  data_boot <- data[indices, ]




  # Kembalikan koefisien korelasi
  return(corr_coeff)
}
Menangani Data Hilang dengan Imputasi di R

Bootstrapping dalam praktik

calc_correlation <- function(data, indices) {
  # Ambil sampel bootstrap
  data_boot <- data[indices, ]
  # Imputasi dengan kNN
  data_imp <- kNN(data_boot)


  # Kembalikan koefisien korelasi
  return(corr_coeff)
}
Menangani Data Hilang dengan Imputasi di R

Bootstrapping dalam praktik

calc_correlation <- function(data, indices) {
  # Ambil sampel bootstrap
  data_boot <- data[indices, ]
  # Imputasi dengan kNN
  data_imp <- kNN(data_boot)
  # Hitung korelasi antara Weight dan TotChol
  corr_coeff <- cor(data_imp$Weight, data_imp$TotChol)
  # Kembalikan koefisien korelasi
  return(corr_coeff)
}
Menangani Data Hilang dengan Imputasi di R

Bootstrapping dalam praktik

library(boot)
boot_results <- boot(nhanes, statistic = calc_correlation, R = 50)
print(boot_results)
BOOTSTRAP NONPARAMETRIK BIASA

Call:
boot(data = nhanes, statistic = calc_correlation, R = 50)

Statistik Bootstrap:
      original      bias    std. error
t1* 0.03028306 0.007385452  0.04207152
Menangani Data Hilang dengan Imputasi di R

Memplot hasil bootstrap

plot(boot_results)

Sebuah histogram dan plot Q-Q yang menampilkan sebaran hasil bootstrap. Keduanya menyiratkan sebaran mendekati normal.

Menangani Data Hilang dengan Imputasi di R

Bootstrap untuk interval kepercayaan

boot_ci <- boot.ci(boot_results, conf = 0.95, type = "norm")
print(boot_ci)
PERHITUNGAN INTERVAL KEPERCAYAAN BOOTSTRAP
Berdasarkan 50 replikasi bootstrap

CALL : 
boot.ci(boot.out = boot_results, conf = 0.95, type = "norm")

Interval: 
Level      Normal        
95%   (-0.0596,  0.1054 )  
Perhitungan dan interval pada skala asli
Menangani Data Hilang dengan Imputasi di R

Ayo berlatih!

Menangani Data Hilang dengan Imputasi di R

Preparing Video For Download...