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

问题描述 投票:0回答:1

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

r data-cleaning outliers
1个回答
0
投票

您可以计算四分位数间距(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)
© www.soinside.com 2019 - 2024. All rights reserved.