Saya memiliki dataset yang sangat besar dan sekitar 5% nilai acak hilang. Variabel-variabel ini berkorelasi satu sama lain. Contoh berikut dataset R hanyalah contoh mainan dengan data berkorelasi dummy.
set.seed(123)
# matrix of X variable
xmat <- matrix(sample(-1:1, 2000000, replace = TRUE), ncol = 10000)
colnames(xmat) <- paste ("M", 1:10000, sep ="")
rownames(xmat) <- paste("sample", 1:200, sep = "")
#M variables are correlated
N <- 2000000*0.05 # 5% random missing values
inds <- round ( runif(N, 1, length(xmat)) )
xmat[inds] <- NA
> xmat[1:10,1:10]
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10
sample1 -1 -1 1 NA 0 -1 1 -1 0 -1
sample2 1 1 -1 1 0 0 1 -1 -1 1
sample3 0 0 1 -1 -1 -1 0 -1 -1 -1
sample4 1 0 0 -1 -1 1 1 0 1 1
sample5 NA 0 0 -1 -1 1 0 NA 1 NA
sample6 -1 1 0 1 1 0 1 1 -1 -1
sample7 NA 0 1 -1 0 1 -1 0 1 NA
sample8 1 -1 -1 1 0 -1 -1 1 -1 0
sample9 0 -1 0 -1 1 -1 1 NA 0 1
sample10 0 -1 1 0 1 0 0 1 NA 0
Apakah ada cara (terbaik) untuk menyalahkan nilai yang hilang dalam situasi ini? Apakah algoritma Random Forest bermanfaat? Solusi kerja apa pun di R akan sangat dihargai.
Suntingan:
(1) Hilang nilai didistribusikan secara acak antara variabel dan samples.As jumlah variabel adalah sangat besar (di sini dalam contoh - 10000), sedangkan jumlah sampel kecil di sini di contoh boneka di atas itu adalah sekitar 200. Jadi, ketika kita melihat sampel apa pun dari semua variabel (10000), ada kemungkinan besar bahwa akan ada nilai yang hilang pada beberapa variabel - karena sejumlah besar variabel. Jadi hanya menghapus sampel bukan pilihan.
(2) Variabel dapat diperlakukan baik secara kuantitatif atau kualitatif (biner) dalam proses imputasi. Satu-satunya penilaian adalah seberapa baik kita dapat memperkirakannya (akurasi). Jadi prediksi seperti 0,98 bukannya 1 mungkin bisa diterima daripada 0 vs 1 atau -1 vs 1. Saya mungkin perlu tradeoff antara waktu komputasi dan akurasi.
(3) Masalah yang saya pikirkan bagaimana overfitting dapat mempengaruhi hasil karena jumlah variabel besar dibandingkan dengan jumlah sampel.
(4) Karena jumlah total nilai yang hilang adalah sekitar 5% dan acak (tidak terkonsentrasi dalam variabel atau sampel apa pun karena tindakan pencegahan diambil untuk menghapus variabel atau sampel yang memiliki nilai hilang yang sangat tinggi)
(5) Membuat data lengkap untuk analisis adalah tujuan pertama dan akurasi kedua. Jadi tidak terlalu peka terhadap keakuratan.