比起发现的异常值,更多的价值被夸奖了?

时间:2019-06-07 18:28:54

标签: r

这是我正在使用的数据集:

 df<-read.table(header=T,text="
group, test1
2,  8212
 2, 10025
 2,  7054
 2,  9462
 2,  9875
 2,  8403
 2,  9566
 2,  7276
2 , 9488
2,  9515
2, 11322
2, 10037
2,  9885
2, 10090
2,  9013
2 , 8682
 2, 10356
2 , 9545
2 , 9646
 2,  9186
2 , 8464
 2,  8870
 2,  9095
 2,  8301
 2, 10961
 2, 11102
 2,  9710
 2, 10343
 2, 10828
 2 , 7371
2  ,8125
2 , 8047
2 , 9028
 2 , 8149
 2,  9974
 2, 10255
 2,  9583
 2,  8423
 2,  9089
 1, 10915
 1,  9820
 1,  9809
 1,  9071
 1, 10610
  1,  9258
  1,  9047
 1 , 7444
  1, 10250
 1 , 9538
 1 ,10107
 1 ,10080
 1 , 9189
 1 ,10319
 1 , 8108
  1 ,10891
 1 , 7471
1 ,11864
 1 ,10653
1 , 9322
 1,  9609
 1,  8982
  1,  9962
 1, 10013
 1,  9832
  1, 10270
 1,  8882
1,  8035
1,  9103
1, 10103
1, 11999
1,  7265
1,  9457
1,  9049
1,  9166
1,  9701
1,  9465
1, 10298
1,  8404
1, 11771
1, 10249
1,  9036
1,  8056
1,  9356
1  9827")

我需要做两件事。我首先需要确定test1 BY组(2,1)存在多少离群值。

使用以下功能,发现两组中有5个离群值:

outlier <- function(x, SD = 2){
  mu <- mean(x)
  sigma <- sd(x)
  out <- x < mu - SD*sigma | x > mu + SD*sigma
  out
}
with(df, ave(test1, group, FUN = outlier)) # 5 outliers

然后我使用以下方法对这些离群值进行了分类处理:

library(robustHD)

df.wins= df%>% group_by(group) %>% mutate(measure_winsorized.test1 = winsorize(test1))

唯一的问题是当我查看多少个值被Winzorized(10)与最初的离群值(5)时,两者并不相同。应该对相同数量的离群值进行温和

代码不正确吗?还是我误会了我的所作所为?

0 个答案:

没有答案