Больше значений winzorized, чем найденные выбросы? - PullRequest
0 голосов
/ 07 июня 2019

Вот мой набор данных, с которым я работаю:

 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

Затем я приступил к worsorize этих выбросов, используя следующее:

library(robustHD)

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

Единственная проблема заключается в том, что когда я смотрю на то, сколько значений было winzorized (10) по сравнению с тем, сколько изначально было выбросов (5), эти два значения не совпадают.То же самое число выбросов должно было быть winsorized

Код неверен или я неправильно понимаю, что я сделал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...