Örnekleme ile çoklu atama

R'de Atamaya Dayalı Eksik Veri Doldurma

Michal Oleszak

Machine Learning Engineer

Atamadan kaynaklı belirsizlik

  • Atama genelde analiz veya modellemeden önceki ilk adımdır.
  • Eksik değerler bir belirsizlikle tahmin edilir.
  • Bu belirsizlik, atanan veriler üzerinde yapılan tüm analizlerde dikkate alınmalıdır.

Ranjit Lall’ın "How Multiple Imputation Makes a Difference" başlıklı makalesinin kapak başlığı.

Çalışmaların neredeyse yarısında, kilit sonuçlar kayboluyor

R'de Atamaya Dayalı Eksik Veri Doldurma

Bootstrap

Bootstrap = Orijinal boyutta veri elde etmek için satırları geri koymalı örneklemek

İki sahte veri çerçevesi. Soldaki, "orijinal veri" etiketli, her satırı farklı renkte ve farklı değerleri gösteriyor. Sağdaki, "bootstrapped örnek" etiketli; "orijinal veri"den bazı renkli satırlar birden çok kez görünürken bazıları hiç yok.

R'de Atamaya Dayalı Eksik Veri Doldurma

Örnekleme ile çoklu atama

Örnekleme ile atamanın beş aşamasını gösteren bir diyagram. "orijinal veri" adlı bir sahte veri çerçevesinden, "farklı bootstrap örnekleri" etiketli üç sahte veri çerçevesine üç ok gidiyor. Her birinden bir "Atama" adımına ok var. Oradan "Modelleme / analiz" adımına, oradan da tek bir "Sonuçların dağılımı" düğümüne oklar gidiyor.

R'de Atamaya Dayalı Eksik Veri Doldurma

Bootstrap’li atama: artılar ve eksiler

Artılar:

  • Her atama yöntemiyle çalışır.
  • Analitik olarak zor nicelikleri yaklaşıklar.
  • MCAR ve MAR verilerle çalışır.

Eksiler:

  • Çok yineleme veya zaman alan hesaplamalarda yavaştır.
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada örnekleme

calc_correlation <- function(data, indices) {






  # Return the correlation coefficient
  return(corr_coeff)
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada örnekleme

calc_correlation <- function(data, indices) {
  # Get bootstrap sample
  data_boot <- data[indices, ]




  # Return the correlation coefficient
  return(corr_coeff)
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada örnekleme

calc_correlation <- function(data, indices) {
  # Get bootstrap sample
  data_boot <- data[indices, ]
  # Impute with kNN imputation
  data_imp <- kNN(data_boot)


  # Return the correlation coefficient
  return(corr_coeff)
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada örnekleme

calc_correlation <- function(data, indices) {
  # Get bootstrap sample
  data_boot <- data[indices, ]
  # Impute with kNN imputation
  data_imp <- kNN(data_boot)
  # Calculate correlation between Weight and TotChol
  corr_coeff <- cor(data_imp$Weight, data_imp$TotChol)
  # Return the correlation coefficient
  return(corr_coeff)
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada örnekleme

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

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

Bootstrap Statistics :
      original      bias    std. error
t1* 0.03028306 0.007385452  0.04207152
R'de Atamaya Dayalı Eksik Veri Doldurma

Bootstrap sonuçlarını görselleştirme

plot(boot_results)

Bootstrap sonuçlarının dağılımını gösteren bir histogram ve Q-Q grafiği. Her iki grafik de dağılımın normale yakın olduğunu gösteriyor.

R'de Atamaya Dayalı Eksik Veri Doldurma

Bootstrap güven aralıkları

boot_ci <- boot.ci(boot_results, conf = 0.95, type = "norm")
print(boot_ci)
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 50 bootstrap replicates

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

Intervals : 
Level      Normal        
95%   (-0.0596,  0.1054 )  
Calculations and Intervals on Original Scale
R'de Atamaya Dayalı Eksik Veri Doldurma

Hadi örnekleme yapalım!

R'de Atamaya Dayalı Eksik Veri Doldurma

Preparing Video For Download...