Saya punya dataset. Ada banyak nilai yang hilang. Untuk beberapa kolom, nilai yang hilang diganti dengan -999, tetapi kolom lainnya, nilai yang hilang ditandai sebagai 'NA'.
Mengapa kita menggunakan -999 untuk menggantikan nilai yang hilang?
Saya punya dataset. Ada banyak nilai yang hilang. Untuk beberapa kolom, nilai yang hilang diganti dengan -999, tetapi kolom lainnya, nilai yang hilang ditandai sebagai 'NA'.
Mengapa kita menggunakan -999 untuk menggantikan nilai yang hilang?
Jawaban:
Ini adalah ketidaksepakatan dari waktu sebelumnya, ketika perangkat lunak komputer menyimpan vektor numerik sebagai vektor numerik. Tidak ada bilangan real yang memiliki semantik "Aku hilang". Jadi ketika perangkat lunak statistik awal harus membedakan antara angka "benar" dan nilai yang hilang, mereka memasukkan sesuatu yang "jelas" bukan angka yang valid, seperti -999 atau -9999.
Tentu saja, bahwa -999 atau -9999 berarti nilai yang hilang tidak "jelas" sama sekali. Cukup sering, itu bisa menjadi nilai yang valid. Kecuali Anda secara eksplisit memeriksa nilai-nilai tersebut, Anda dapat memiliki semua jenis kesalahan "menarik" dalam analisis Anda.
Saat ini, vektor-vektor numerik yang dapat memuat nilai-nilai yang hilang secara internal direpresentasikan sebagai vektor-vektor numerik "diperkaya", yaitu vektor-vektor numerik dengan informasi tambahan mengenai nilai-nilai mana yang hilang. Ini tentu saja jauh lebih baik, karena nilai yang hilang akan diperlakukan seperti itu dan tidak salah diperlakukan sebagai valid.
Sayangnya, beberapa perangkat lunak masih menggunakan konvensi semacam itu, mungkin untuk kompatibilitas. Dan beberapa pengguna telah menyerap konvensi ini melalui osmosis informal dan memasukkan -999 bukannya NA bahkan jika perangkat lunak mereka mendukung dengan bersih memasukkan nilai yang hilang.
Moral: jangan menyandikan nilai yang hilang sebagai -999.
Nilai-nilai tersebut untuk database. Sebagian besar basis data lama, dan banyak saat ini, mengalokasikan sejumlah digit untuk data bernilai integer. Angka seperti -999 adalah yang terkecil yang dapat disimpan dalam empat karakter, -9999 dalam lima karakter, dan seterusnya.
(Seharusnya dikatakan bahwa - menurut definisi - bidang numerik tidak dapat menyimpan karakter alfanumerik seperti "NA". Beberapa kode numerik harus digunakan untuk mewakili data yang hilang atau tidak valid.)
Mengapa menggunakan angka paling negatif yang dapat disimpan untuk menandakan nilai yang hilang? Karena jika Anda salah memperlakukannya sebagai angka yang valid, Anda ingin hasilnya secara dramatis salah. Semakin jauh kode Anda untuk nilai-nilai yang hilang didapat dari bersikap realistis, semakin aman Anda, karena input yang sangat salah biasanya mengacaukan output. (Metode statistik yang kuat adalah pengecualian!)
Bagaimana kesalahan seperti itu bisa terjadi? Ini terjadi setiap saat ketika data dipertukarkan antara sistem. Suatu sistem yang mengasumsikan -9999 mewakili nilai yang hilang akan dengan gembira menampilkan nilai itu ketika Anda menulis data dalam sebagian besar format, seperti CSV. Sistem yang membaca bahwa file CSV mungkin tidak "tahu" (atau tidak "diberitahu") untuk memperlakukan nilai-nilai seperti hilang.
Alasan lain adalah bahwa data statistik dan platform komputasi yang baik mengenali berbagai jenis nilai yang hilang: NaN, nilai yang benar-benar hilang, luapan, arus bawah, non-respons, dll, dll. Dengan mengabdikan nilai yang paling negatif yang mungkin (seperti -9999, - 9998, -9997, dll) untuk ini, Anda membuatnya mudah untuk menanyakan semua nilai yang hilang dari tabel atau array apa pun.
Yang lain adalah bahwa nilai-nilai seperti itu biasanya muncul di tampilan grafis sebagai pencilan ekstrim. Dari semua nilai yang Anda pilih untuk menonjol dalam grafik, yang paling negatif mungkin memiliki peluang terbesar untuk berada jauh dari data Anda.
Ada implikasi dan generalisasi yang berguna:
Adopsi aturan standar jenis ini untuk membuatnya mudah menemukan kode NoData dalam keadaan baru (ketika Anda merancang perangkat lunak basis data Anda sendiri).
Rancang perangkat lunak dan sistem Anda untuk gagal secara dramatis jika gagal sama sekali. Bug terburuk adalah mereka yang intermiten, acak, atau kecil, karena mereka dapat tidak terdeteksi dan sulit untuk diburu.
NaN
nilai-nilai yang hilang. Itu tidak memiliki ambiguitas tentang apakah itu nilai numerik yang valid atau tidak, dan (mengingat bahwa sebagian besar operasi floating-point standar adalah NaN-propagating) akan mengacaukan perhitungan yang keliru memperlakukannya sebagai titik data yang valid bahkan lebih pasti dan jelas daripada, mengatakan,akan.
Anda bisa menggunakan apa saja untuk menyandikan nilai yang hilang. Beberapa perangkat lunak, seperti R, menggunakan nilai khusus untuk menyandikan data yang hilang, tetapi ada juga paket perangkat lunak, misalnya SPSS, yang tidak memiliki kode khusus untuk data yang hilang. Dalam kasus kedua Anda perlu membuat pilihan sewenang - wenang untuk nilai-nilai tersebut. Anda dapat memilih apa saja , tetapi umumnya adalah ide yang baik untuk memilih beberapa nilai yang tampak berbeda dari data Anda (mis. Data Anda adalah persentase dalam kisaran 0-100, sehingga Anda memilih 999 untuk menyandikan data yang hilang, atau data Anda adalah usia manusia dan Anda menggunakan nilai negatif untuk pengamatan yang hilang). Gagasan di balik itu adalah bahwa dengan melakukan itu Anda harus dapat melihat jika ada yang salah dan jumlahnya tidak bertambah.
Masalah dengan pengkodean tersebut adalah bahwa Anda sebenarnya tidak dapat melihat pengkodean khusus dan berakhir dengan hasil sampah.
Apakah ada variabel yang dihitung dalam dataset? Atau apakah ini merupakan dataset analitik yang berasal dari gabungan data? Beberapa perangkat lunak menggunakan nilai negatif yang sangat besar untuk menunjukkan data yang hilang. Tetapi perangkat lunak lain menciptakan nilai yang hilang dengan NA atau .
. Ketika mereka berbeda, biasanya beberapa pemrosesan pos telah menyebabkan ketidaksepakatan.
Tentu saja, dalam SPSS, nilai yang hilang 999 atau apa pun yang ditandai sebagai kode khusus yang hilang dan ditangani secara terpisah dari nilai-nilai lain. Ini dapat ditabulasikan secara terpisah atau dikecualikan seluruhnya. Perbedaan dibuat dari hasil hal-hal seperti nol pembagian atau log (0).