Cara menghapus outlier dari beberapa kolom di r


Seringkali Anda mungkin ingin menghapus outlier dari beberapa kolom sekaligus di R.

Cara umum untuk mendefinisikan suatu observasi sebagai outlier adalah jika observasi tersebut 1,5 kali rentang antarkuartil di atas kuartil ketiga (Q3) atau 1,5 kali rentang antarkuartil di bawah kuartil pertama (Q1).

Dengan menggunakan definisi ini, kita dapat menggunakan langkah-langkah berikut untuk membuat fungsi sederhana guna mengidentifikasi outlier dan kemudian menerapkan fungsi ini di beberapa kolom dalam bingkai data R.

Langkah 1: Buat bingkai data.

Mari kita mulai dengan membuat bingkai data di R:

 df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 var1=c(4, 4, 5, 4, 3, 2, 8, 9, 4, 5),
                 var2=c(1, 2, 4, 4, 6, 9, 7, 8, 5, 29),
                 var3=c(9, 9, 9, 5, 5, 3, 4, 5, 11, 34))

Langkah 2: Tentukan fungsi outlier.

Selanjutnya, mari kita definisikan fungsi yang dapat mengidentifikasi outlier dan fungsi yang kemudian dapat menghilangkan outlier:

 outliers <- function (x) {

  Q1 <- quantile(x, probs =.25)
  Q3 <- quantile(x, probs =.75)
  iqr = Q3-Q1

 upper_limit = Q3 + (iqr*1.5)
 lower_limit = Q1 - (iqr*1.5)

 x > upper_limit | x < lower_limit
}

remove_outliers <- function (df, cols = names (df)) {
  for (col in cols) {
    df <- df[!outliers(df[[col]]),]
  }
  df
}

Langkah 3: Terapkan fungsi outlier ke bingkai data.

Terakhir, mari terapkan fungsi ini pada beberapa kolom bingkai data untuk menghilangkan outlier:

 remove_outliers(df, c('var1', 'var2', 'var3'))

  index var1 var2 var3
1 1 4 1 9
2 2 4 2 9
3 3 5 4 9
4 4 4 4 5
5 5 3 6 5
9 9 4 5 11

Anda dapat menemukan lebih banyak tutorial R di sini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *