我应该如何处理 R 中多个变量的异常值?

How should I deal with outliers in multiple variables in R?

我是统计编程的新手,我目前正在处理信用违约数据集中 19 个变量的 110 000 个观测值的数据集,我想创建一些模型,如逻辑回归和 rf,其中因变量是公司是否违约。然而,虽然大多数变量看起来是正态分布的,但有 3 个变量的箱线图甚至没有箱子,并且有很多极高的离群值。我试图忽略包含这些离群值的观察结果,但最终只有 20 000 个观察结果,我非常怀疑这是正确的。 这就是为什么我想知道是否有处理此类异常值的好方法,以及如何在 R 中实现它?请参阅下面的箱线图之一来说明我的观点:

您可以计算四分位数间距 (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)