相关疑难解决方法(0)

如何从数据集中删除异常值

我有一些美丽与年龄的多元数据.年龄范围为20-40,间隔为2(20,22,24 ...... 40),并且对于每个数据记录,它们的年龄和美容等级为1-5.当我对这些数据进行箱形图(横跨X轴的年龄,Y轴上的美观评级)时,在每个框的胡须外面都会绘制一些异常值.

我想从数据框本身中删除这些异常值,但我不确定R如何计算其箱形图的异常值.下面是我的数据可能是什么样子的示例. 在此输入图像描述

statistics r outliers

92
推荐指数
8
解决办法
31万
查看次数

删除时间序列中异常值的有效方法

我正在寻找有效的方法来删除数据中的异常值。我尝试了在 StackOverflow 和其他地方找到的几种解决方案,但没有一个对我有用(应该在样本数据中检测并删除 1993 年 6 月、1994 年 8 月和 1995 年 3 月的 4 个高值 21637、19590、21659 和 200000发布在这篇文章的末尾)。任何建议将不胜感激!

这是我到目前为止测试过的:

数据概览

  1. 如何从数据集中删除异常值

3 个异常值仍然存在,并且时间序列末尾的许多合法高值已被删除。

y <- dat$Value
y_filter <- y[!y %in% boxplot.stats(y)$out]
plot(y_filter)
Run Code Online (Sandbox Code Playgroud)

  1. 计算 R 中的异常值

与第一种方法类似的问题

FindOutliers <- function(data) {
  data <- data[!is.na(data)]
  lowerq = quantile(data)[2]
  upperq = quantile(data)[4]
  iqr = upperq - lowerq #Or use IQR(data)
  # we identify extreme outliers
  extreme.threshold.upper = (iqr * 1.5) + upperq
  extreme.threshold.lower = lowerq - (iqr * 1.5)
  result <- which(data …
Run Code Online (Sandbox Code Playgroud)

r time-series outliers data-science

13
推荐指数
3
解决办法
1622
查看次数

检测宽数据帧上的异常值

X

Team Date       Score
A    1-1-2012   80
A    1-2-2012   90
A    1-3-2012   50
A    1-4-2012   40   
B    1-1-2012   100
B    1-2-2012   60
B    1-3-2012   30
B    1-4-2012   70
etc
Run Code Online (Sandbox Code Playgroud)

我需要并且可以将此数据框转换为每个团队的一行宽数据框,并将所有观察和日期作为标题:

XX

Team 1-1-2012 1-2-2012  1-3-2012 1-4-2012
A    80       90        50        40
B    100     60         30        70  
Run Code Online (Sandbox Code Playgroud)

我需要计算每行的均值和sd,我可以这样做:

XX

Team 1-1-2012 1-2-2012  1-3-2012 1-4-2012  mean   sd
A    80       90        50        40       75    20
B    100     60         30        70       55    10 
Run Code Online (Sandbox Code Playgroud)

考虑到我在数据帧xx中有数千行.我想对每个单元格进行计算,如下所示:

如果abs(xx-Mean)> 3*SD,则创建计数器列名称并递增该值.这个想法是将每个观察值与平均值和sd进行比较,如果给定团队的每个观察值与此匹配 - abs(xx-Mean)> 3*SD,则递增计数器.在检查每个单元格之后,我想查看每个团队的每个计数器,并获得具有最高计数器值的前十名高级团队.基本上我试图检测最多的异常值.一旦我获得前10名团队名称,我想在数据框x上绘制他们的时间序列数据.

我希望我不会让它变得比它应该更复杂.不确定,R已经具有对每个单元格进行计算的功能.如何实现这一点的任何想法表示赞赏?

r

4
推荐指数
2
解决办法
1639
查看次数

排除 R 中基于多列的异常值?IQR法

我目前正在尝试根据选定变量的子集排除异常值,目的是执行敏感性分析。我已经调整了此处可用的函数:计算 R 中的异常值),但到目前为止尚未成功(我仍然是 R 新手用户)。如果您有任何建议,请告诉我!

df <- data.frame(ID = c(1001, 1002, 1003, 1004, 1005,   1006,   1007,   1008,   1009,   1010,   1011),
                 measure1 = rnorm(11, mean = 8, sd = 4),
                 measure2 = rnorm(11, mean = 40, sd = 5),
                 measure3 = rnorm(11, mean = 20, sd = 2),
                 measure4 = rnorm(11, mean = 9, sd = 3))

vars_of_interest <- c("measure1", "measure3", "measure4")

# define a function to remove outliers
FindOutliers <- function(data) {
  lowerq = quantile(data)[2]
  upperq = quantile(data)[4] …
Run Code Online (Sandbox Code Playgroud)

r outliers iqr

1
推荐指数
1
解决办法
3227
查看次数

标签 统计

r ×4

outliers ×3

data-science ×1

iqr ×1

statistics ×1

time-series ×1