Saya memiliki dataset dengan asumsi bahwa tetangga terdekat adalah prediktor terbaik. Hanya contoh sempurna dari gradien dua arah divisualisasikan-
Misalkan kita memiliki kasus di mana beberapa nilai hilang, kita dapat dengan mudah memprediksi berdasarkan tetangga dan tren.
Matriks data yang sesuai dalam R (contoh boneka untuk latihan):
miss.mat <- matrix (c(5:11, 6:10, NA,12, 7:13, 8:14, 9:12, NA, 14:15, 10:16),ncol=7, byrow = TRUE)
miss.mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 5 6 7 8 9 10 11
[2,] 6 7 8 9 10 NA 12
[3,] 7 8 9 10 11 12 13
[4,] 8 9 10 11 12 13 14
[5,] 9 10 11 12 NA 14 15
[6,] 10 11 12 13 14 15 16
Catatan: (1) Properti nilai yang hilang diasumsikan acak , dapat terjadi di mana saja.
(2) Semua titik data berasal dari variabel tunggal, tetapi nilainya diasumsikan dipengaruhi oleh neighbors
baris dan kolom yang berdekatan dengannya. Jadi posisi dalam matriks itu penting dan dapat dianggap sebagai variabel lain.
Harapan saya dalam beberapa situasi, saya dapat memprediksi beberapa nilai yang hilang (mungkin kesalahan) dan mengoreksi bias (misalnya, mari kita buat kesalahan seperti itu dalam data dummy):
> mat2 <- matrix (c(4:10, 5, 16, 7, 11, 9:11, 6:12, 7:13, 8:14, 9:13, 4,15, 10:11, 2, 13:16),ncol=7, byrow = TRUE)
> mat2
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 4 5 6 7 8 9 10
[2,] 5 16 7 11 9 10 11
[3,] 6 7 8 9 10 11 12
[4,] 7 8 9 10 11 12 13
[5,] 8 9 10 11 12 13 14
[6,] 9 10 11 12 13 4 15
[7,] 10 11 2 13 14 15 16
Contoh di atas hanyalah ilustrasi (mungkin dijawab secara visual) tetapi contoh nyata mungkin lebih membingungkan. Saya mencari apakah ada metode yang kuat untuk melakukan analisis tersebut. Saya pikir ini harusnya mungkin. Metode apa yang cocok untuk melakukan jenis analisis ini? ada saran R program / paket untuk melakukan analisis jenis ini?
Jawaban:
Pertanyaannya menanyakan cara untuk menggunakan tetangga terdekat dengan cara yang kuat untuk mengidentifikasi dan memperbaiki pencilan yang dilokalkan. Mengapa tidak melakukan hal itu?
Prosedurnya adalah menghitung kelancaran lokal yang kuat, mengevaluasi residu, dan menghilangkan semua yang terlalu besar. Ini memenuhi semua persyaratan secara langsung dan cukup fleksibel untuk menyesuaikan dengan aplikasi yang berbeda, karena seseorang dapat memvariasikan ukuran lingkungan lokal dan ambang batas untuk mengidentifikasi outlier.
(Mengapa fleksibilitas begitu penting? Karena setiap prosedur tersebut berdiri sebuah kesempatan baik untuk mengidentifikasi perilaku lokal tertentu sebagai "terpencil". Dengan demikian, semua prosedur tersebut dapat dianggap smoothers . Mereka akan menghilangkan beberapa detail yang bersama dengan outlier jelas. Analis membutuhkan kontrol atas pertukaran antara mempertahankan detail dan gagal mendeteksi outlier lokal.)
Keuntungan lain dari prosedur ini adalah tidak memerlukan matriks nilai persegi panjang. Bahkan, itu bahkan dapat diterapkan pada data tidak teratur dengan menggunakan lebih halus lokal yang cocok untuk data tersebut.
R
, serta sebagian besar paket statistik berfitur lengkap, memiliki beberapa smoothers lokal yang tangguh, sepertiloess
. Contoh berikut ini diproses menggunakannya. Matriks ini memiliki baris dan 49 kolom - hampir 4000 entri. Ini merupakan fungsi rumit yang memiliki beberapa ekstrema lokal serta seluruh garis titik di mana ia tidak dapat dibedakan ("lipatan"). Untuk sedikit lebih dari 5 % dari poin - proporsi yang sangat tinggi untuk dianggap "terpencil" - ditambahkan kesalahan Gaussian yang standar deviasi hanya 1 / 20 dari standar deviasi dari data asli. Dataset sintetis ini dengan demikian menghadirkan banyak fitur menantang dari data realistis.Perhatikan bahwa (sesuai
R
konvensi) baris matriks digambar sebagai strip vertikal. Semua gambar, kecuali residu, berbukit untuk membantu menampilkan variasi kecil dalam nilainya. Tanpa ini, hampir semua outlier lokal tidak akan terlihat!Dengan membandingkan "Imputed" (diperbaiki) ke "Real" (asli tidak terkontaminasi) gambar, jelas bahwa menghapus outlier telah merapikan beberapa, tetapi tidak semua, dari lipatan (yang berjalan dari ke bawah untuk(0,79) (49,30)
Bintik-bintik dalam plot "Residual" menunjukkan outlier lokal yang terisolasi. Plot ini juga menampilkan struktur lain (seperti garis diagonal) yang disebabkan oleh data yang mendasarinya. Seseorang dapat memperbaiki prosedur ini dengan menggunakan model data spasial ( melalui metode geostatistik), tetapi menggambarkan dan menggambarkannya akan membawa kita terlalu jauh ke sini.
sumber
Saya menyarankan Anda untuk melihat artikel ini [0]. Masalah yang hendak ditangani tampaknya cocok dengan deskripsi Anda dengan baik, kecuali bahwa metode yang diusulkan oleh penulis sedikit lebih halus daripada input-NN (meskipun menggunakan sesuatu yang mirip dengan titik awal).
Langkah pertama dari setiap iterasi adalah langkah imputasi data. Ini dilakukan seperti pada algoritma EM: sel-sel yang hilang diisi oleh nilai yang diharapkan mereka miliki (ini adalah E-step).
Untuk meringkas makalah, berikut adalah algoritma umum yang mereka usulkan:
Kemudian, lakukan hingga konvergensi:
d. isi elemen hilangWWl WWl∼N(ttl−1,LLl−1DDl−1(LLl−1)′) YYl
Saya tidak tahu tentang implementasi R siap pakai untuk pendekatan ini, tetapi orang dapat dengan mudah diproduksi dari sub-komponen (terutama algoritma PCA yang kuat), dan ini diimplementasikan dengan baik dalam R, lihat paket rrcov (makalah ini tenang informatif tentang hal ini).
sumber