Penanganan Outlier pada Stata

Penanganan Outlier pada Stata

Pada artikel sebelumnya, kita telah memahami bagaimana outlier dapat diidentifikasi menggunakan beberapa metode. Saat ini, mari kita jelajahi cara-cara untuk menangani outlier yang sudah teridentifikasi.

Menyimpan Outlier

Kita dapat memutuskan untuk meninggalkan outlier sebagaimana adanya. Sebagai ganti dari menghapusnya, kita dapat menggunakan beberapa uji non-parametrik lainnya yang tidak terpengaruh oleh outlier. Misalnya, jika rata-rata tinggi mayoritas sebuah contoh adalah 5,5 kaki, maka mungkin ada individu yang memiliki tinggi 7 atau 8 kaki. Kita tidak ingin menghapus pengamatan ini; kita akan menyimpan outlier.

Mengekor Kesalahan Pemasukan Data

Outlier mungkin terjadi karena terdapat kesalahan dalam memasukkan data. Mungkin seseorang telah salah memasukkan nilai gender sebagai 0 dan 1, sehingga menghasilkan nilai yang tidak logis. Dalam kasus ini, kita perlu mengoreksi pengamatan tersebut.

Winsorization

Winsorization adalah cara untuk mengubah nilai outlier menjadi nilai terdekat (yaitu bukan outlier). Pada contoh ini, nilai harga terdekat dari outlier (50,000) adalah 14,500. Kita dapat menggantikan nilai lama dengan nilai baru. Meskipun mungkin ada kemungkinan sebuah mobil memiliki harga seperti itu, pengamatan tersebut tidak representatif untuk data mobil. Kita dapat memutuskan untuk winsorization-nya.

Untuk melakukan winsorization pada Stata, kita dapat menggunakan command winsor2. Command ini menggantikan outlier dengan nilai percentil yang kita tetapkan. Untuk melihat distribusi variabel dalam bentuk tabel, kita dapat menggunakan command summarize dengan opsi detail.

Contoh penggunaan command winsor2 adalah sebagai berikut:

winsor2 price, replace cut(1 99)

Command ini menggantikan outlier dengan nilai percentil ke-1 dan ke-99. Pada kasus ini, 50,000 tidak berubah karena nilainya terletak pada percentil ke-99. Kita dapat memperbarui command tersebut dengan menentukan batas percentil yang lebih rendah.

winsor2 price, replace cut(5 95)

Dalam kasus ini, outlier pada sisi tinggi akan digantikan dengan nilai percentil ke-95, yaitu 13,466. Stata juga menggantikan tiga nilai sebelum 50,000 menjadi nilai baru. Maka, lebih baik kita menentukan batas percentil antara 97 dan 98.

Trimming

Cara terakhir adalah menghapus outlier. Kita dapat menggunakan command winsor2 dengan opsi trim. Contoh penggunaan command tersebut adalah sebagai berikut:

winsor2 price, replace cut(5 95) trim

Command ini menggantikan outlier dengan nilai missing (tidak tersedia).

Outlier pada Stata

Carlo telah menulis kode untuk variabel indikator yang menandai nilai lebih dari 3 kali standar deviasi (SD). Namun, pertimbangkan sebuah bundle negara dengan rata-rata harapan hidup 60 tahun dan SD 10 tahun. Maka, semua nilai >30 tahun akan ditandai sebagai outlier, tetapi tidak nilai <30 tahun yang sebenarnya adalah outlier.

Saya percaya Carlo hanya memilih kriteria secara acak atau berpikir tentang kriteria seperti |nilai – rata-rata| > k SD, namun terjadi kesalahan dalam coding. Meskipun demikian, rata-rata dan SD juga akan sangat dipengaruh oleh outlier jika ada, maka kita lebih baik menggunakan median dan rentang kuartil (IQR) sebagai basis untuk aturan thumb.

Catatan

P.S. Dampak sampingan dari kode Carlo adalah bahwa nilai hilang akan ditandai sebagai 1. Maka, kode tersebut mungkin harus diulangi dengan memperhatikan ketentuan literally, seperti berikut:

foreach var of varlist A-C { 
 quietly summarize `var' 
 g Z_`var'= (`var' > 3*r(sd)) if `var' < . 
 list `var' Z_`var' if Z_`var' == 1
}

Masalah yang lebih besar adalah bahwa mencari outlier univariata hanya bagian dari masalah. Kita juga perlu memperhatikan outlier multivariata dan menangani mereka dengan benar.