r - 消除异常值问题
问题描述
我尝试运行此代码以删除异常值,但仍然存在两个异常值。
newData <- read.csv(file = 'https://data.edmonton.ca/resource/f7ms-98xd.csv', header = T)
boxplot(newData$bachelor_s_degree)$out
no_outliers <- boxplot(newData$bachelor_s_degree)$out
print(no_outliers)
newData[which(newData$bachelor_s_degree %in% no_outliers),]
newData <- newData[-which(newData$bachelor_s_degree %in% no_outliers),]
boxplot(newData$bachelor_s_degree)
图为运行代码后仍然存在的两个变量。
我试图删除示例中的所有异常值,但由于某种原因,这两个变量仍然存在。是否有一种代码可以删除所有变量?
解决方案
在删除异常值之前,您有:
IQR(newData$bachelor_s_degree)
[1] 265.25
median(newData$bachelor_s_degree)
[1] 127.5
所以异常值是那些大于
median(newData$bachelor_s_degree) + 1.5 * IQR(newData$bachelor_s_degree)
[1] 525.375
移除异常值后,中位数和 IQR 都会发生变化,因此:
median(newData$bachelor_s_degree)
[1] 121.5
IQR(newData$bachelor_s_degree)
[1] 249
median(newData$bachelor_s_degree) + 1.5 * IQR(newData$bachelor_s_degree)
[1] 495
您的数据集有几个点超出了新的异常值范围,即它们小于 525.375(因此第一次没有被删除)但大于 495(因此它们现在算作异常值)。
推荐阅读
- css - 如何使字母间距css规则在字符周围添加空格?
- python - 使用 asyncio 异步运行两个并发任务组
- node.js - 检测电子中节点环境的方法
- java - File.delete() 仅随机删除目标文件
- php - 如何处理运行需要 5 - 10 分钟的脚本?
- docusignapi - DocuSign API - 在日期范围内列出状态更改为“已完成”的信封
- javascript - 如何使用javascript分隔数字?
- java - msf4j 响应图像得到了不正确的关闭变量
- c# - ASP.NET MVC 5 不更新表行并发送详细信息(带有数据表)
- git - 具有大量图像的机器学习数据集的版本控制?