我是统计编程的新手,我目前正在研究信用违约数据集中19个变量的110 000个观测值的数据集,并希望创建一些模型,例如逻辑回归和rf,其中因变量是否公司是否违约。但是,尽管大多数变量看起来都是正态分布的,但仍有3个变量的箱线图甚至没有箱形,并且有许多异常值很高。我试图省略包含这些异常值的观测值,但最终只得到20000个观测值,我对此高度怀疑是正确的。这就是为什么我想知道是否存在一种很好的方法来处理这些异常值,以及如何在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)