Как я должен иметь дело с выбросами в нескольких переменных в R? - PullRequest
0 голосов
/ 29 октября 2019

Я в некотором роде новичок в статистическом программировании, и в настоящее время я работаю над набором данных из 110 000 наблюдений 19 переменных в наборе данных кредита по умолчанию и хочу создать некоторые модели, такие как логистическая регрессия и rf, где зависимая переменная является илине компания по умолчанию или нет. Однако, хотя большинство переменных кажутся нормально распределенными, есть 3 переменные, чьи блокпосты даже не имеют блоков, и есть много чрезвычайно высоких значений выбросов. Я попытался опустить наблюдения, содержащие эти выбросы, но в итоге получил только 20 000 наблюдений, в которых я сильно сомневаюсь, что это правильно. Вот почему мне интересно, есть ли хороший способ борьбы с такими выбросами, и как я могу реализовать его в R? Ниже приведен один из коробок, иллюстрирующих мою точку зрения: Extreme outliers

1 Ответ

0 голосов
/ 29 октября 2019

Вы можете рассчитать межквартильный диапазон (IQR) и преобразовать все, что больше или меньше, чем в 1,5 раза, в NA.


q_col <- quantile(df$col, probs= c(.25, .75), na.rm = T)
iqr_df <- IQR(df$col, na.rm = T)

df$col_new <- df$col
df$col_new[(df$col < q_col - 1.5*(iqr_df)) | (df$col > q_col + 1.5*(iqr_df))] <- NA

Если простая реализация этого не работает, попробуйте выполнить преобразование журнала, а затем выполните описанные выше шаги IQR:

df$col <- log10(df$col)

(... repeat the steps above)
...