Perform Tukey's test for mild and extreme outliers.

outlier_tukey(
  x,
  mask = !is.na(x),
  threshold = c(1.5, 3),
  return.score = FALSE,
  ...
)

Arguments

x

A vector of data.

mask

A logical vector that defines which values in x will used when computing statistics. Useful when a subset of quality-assured data is available. Default mask is non-NA Values.

threshold

A length-two vector identifying thresholds for "mild" and "extreme" outliers.

return.score

if TRUE, return the numeric outlier score. If FALSE, return an ordered factor classifying the observations as one of "not outlier" (1), "mild outlier" (2), or "extreme outlier" (3).

...

Arguments passed on to stats::quantile

Value

A vector the same length as x containing numeric scores or ordered factors.

Details

the values of threshold identify the multiplier of the interquartile range used to identify mild and extreme outliers. typical values are 1.5 for "mild" outliers and 3.0 for "extreme" outliers.

Examples

x = seq(0, 34, by = 0.25)*pi noise = rnorm(length(x), mean = 1, sd = 3) y = sin(x) + noise mask = noise < 1 outlier_tukey(y)
#> [1] not outlier not outlier not outlier not outlier not outlier not outlier #> [7] not outlier not outlier not outlier not outlier not outlier not outlier #> [13] not outlier not outlier not outlier not outlier not outlier not outlier #> [19] not outlier not outlier not outlier not outlier not outlier not outlier #> [25] not outlier not outlier not outlier not outlier not outlier not outlier #> [31] not outlier not outlier not outlier not outlier not outlier not outlier #> [37] not outlier not outlier not outlier not outlier not outlier not outlier #> [43] not outlier not outlier not outlier not outlier not outlier not outlier #> [49] not outlier not outlier not outlier not outlier not outlier not outlier #> [55] not outlier not outlier not outlier not outlier not outlier not outlier #> [61] not outlier not outlier not outlier not outlier not outlier not outlier #> [67] not outlier not outlier not outlier not outlier not outlier not outlier #> [73] not outlier not outlier not outlier not outlier not outlier not outlier #> [79] not outlier not outlier not outlier not outlier not outlier not outlier #> [85] not outlier not outlier not outlier not outlier not outlier not outlier #> [91] not outlier not outlier not outlier not outlier not outlier not outlier #> [97] not outlier not outlier not outlier not outlier not outlier not outlier #> [103] not outlier not outlier not outlier not outlier not outlier not outlier #> [109] not outlier not outlier not outlier not outlier not outlier not outlier #> [115] not outlier not outlier not outlier not outlier not outlier not outlier #> [121] not outlier not outlier not outlier not outlier not outlier not outlier #> [127] not outlier not outlier not outlier not outlier not outlier not outlier #> [133] not outlier not outlier not outlier not outlier not outlier #> Levels: not outlier < not evaluated < mild outlier < extreme outlier
outlier_tukey(y, mask)
#> [1] mild outlier not outlier not outlier not outlier #> [5] not outlier not outlier not outlier mild outlier #> [9] not outlier mild outlier not outlier mild outlier #> [13] not outlier not outlier not outlier not outlier #> [17] not outlier mild outlier not outlier not outlier #> [21] not outlier extreme outlier mild outlier not outlier #> [25] not outlier not outlier not outlier not outlier #> [29] not outlier not outlier not outlier not outlier #> [33] mild outlier not outlier mild outlier not outlier #> [37] not outlier not outlier not outlier not outlier #> [41] mild outlier not outlier not outlier not outlier #> [45] not outlier not outlier mild outlier not outlier #> [49] not outlier not outlier mild outlier mild outlier #> [53] not outlier not outlier mild outlier mild outlier #> [57] not outlier not outlier mild outlier not outlier #> [61] not outlier not outlier not outlier not outlier #> [65] not outlier mild outlier extreme outlier mild outlier #> [69] not outlier not outlier not outlier mild outlier #> [73] not outlier not outlier not outlier not outlier #> [77] not outlier not outlier not outlier not outlier #> [81] not outlier mild outlier mild outlier not outlier #> [85] not outlier not outlier not outlier not outlier #> [89] not outlier not outlier not outlier not outlier #> [93] not outlier not outlier not outlier not outlier #> [97] not outlier mild outlier mild outlier not outlier #> [101] mild outlier not outlier not outlier not outlier #> [105] not outlier not outlier mild outlier not outlier #> [109] not outlier not outlier not outlier not outlier #> [113] not outlier not outlier not outlier not outlier #> [117] mild outlier mild outlier not outlier mild outlier #> [121] not outlier mild outlier not outlier not outlier #> [125] not outlier not outlier not outlier not outlier #> [129] not outlier not outlier not outlier not outlier #> [133] mild outlier not outlier mild outlier not outlier #> [137] not outlier #> Levels: not outlier < not evaluated < mild outlier < extreme outlier
outlier_tukey(y, mask, threshold = c(2, 5))
#> [1] not outlier not outlier not outlier not outlier not outlier #> [6] not outlier not outlier not outlier not outlier mild outlier #> [11] not outlier not outlier not outlier not outlier not outlier #> [16] not outlier not outlier not outlier not outlier not outlier #> [21] not outlier mild outlier mild outlier not outlier not outlier #> [26] not outlier not outlier not outlier not outlier not outlier #> [31] not outlier not outlier mild outlier not outlier not outlier #> [36] not outlier not outlier not outlier not outlier not outlier #> [41] not outlier not outlier not outlier not outlier not outlier #> [46] not outlier mild outlier not outlier not outlier not outlier #> [51] mild outlier not outlier not outlier not outlier not outlier #> [56] mild outlier not outlier not outlier not outlier not outlier #> [61] not outlier not outlier not outlier not outlier not outlier #> [66] not outlier mild outlier not outlier not outlier not outlier #> [71] not outlier mild outlier not outlier not outlier not outlier #> [76] not outlier not outlier not outlier not outlier not outlier #> [81] not outlier mild outlier not outlier not outlier not outlier #> [86] not outlier not outlier not outlier not outlier not outlier #> [91] not outlier not outlier not outlier not outlier not outlier #> [96] not outlier not outlier mild outlier mild outlier not outlier #> [101] not outlier not outlier not outlier not outlier not outlier #> [106] not outlier mild outlier not outlier not outlier not outlier #> [111] not outlier not outlier not outlier not outlier not outlier #> [116] not outlier mild outlier mild outlier not outlier mild outlier #> [121] not outlier mild outlier not outlier not outlier not outlier #> [126] not outlier not outlier not outlier not outlier not outlier #> [131] not outlier not outlier not outlier not outlier mild outlier #> [136] not outlier not outlier #> Levels: not outlier < not evaluated < mild outlier < extreme outlier
outlier_tukey(y, return.score = TRUE)
#> [1] 0.207140006 -0.446666367 -0.086798182 -0.217560196 -0.354543455 #> [6] -0.259742816 -0.361933488 0.201362594 -0.381597035 0.733419991 #> [11] -0.468564813 0.192867226 -0.359066924 0.434333835 0.742228945 #> [16] -0.411453037 -0.065607472 0.218229630 -0.101418565 0.026610414 #> [21] -0.435858124 1.199673241 0.938455180 0.952124288 -0.432788779 #> [26] -0.377543834 -0.107374590 -0.440200625 -0.333287651 0.000000000 #> [31] 0.394816282 -0.355532471 0.728386033 -0.345310227 0.234068667 #> [36] -0.047098944 -0.072377457 0.424134649 0.340326291 -0.477960965 #> [41] 0.123718045 0.468404824 -0.316937371 -0.210790255 0.356813537 #> [46] 0.324402918 0.760659080 0.403292404 -0.171007840 0.140643605 #> [51] 0.780465271 0.240111107 -0.147034300 -0.296810118 1.352111838 #> [56] 0.617205415 0.341234428 0.259885540 0.213048489 -0.448154812 #> [61] 1.206736011 0.014261601 0.004619387 -0.019067761 0.043099407 #> [66] 0.309341807 1.465124687 0.083709526 0.495270004 -0.461559686 #> [71] 0.662785939 0.712695252 -0.015564565 -0.209203650 -0.019773326 #> [76] -0.113862063 0.784952611 0.268105775 -0.467256720 0.224505354 #> [81] -0.230629105 0.804263052 0.311334266 -0.359775303 -0.035709500 #> [86] -0.331028349 0.990778660 0.194358670 -0.007407414 -0.378513022 #> [91] -0.346401602 -0.424283328 0.199978729 -0.258025082 -0.109825069 #> [96] -0.386163133 -0.137267540 0.417009589 0.387801878 -0.233814010 #> [101] 0.132975197 -0.297946138 0.774709797 0.856924006 0.211568541 #> [106] 0.017931019 0.863527246 -0.244083279 -0.320478685 1.303304827 #> [111] 0.449107054 -0.364313057 0.722852922 -0.346650644 -0.373828188 #> [116] -0.383696432 0.453497024 0.452602541 0.153081279 0.458565899 #> [121] -0.206991267 0.898901285 -0.125287139 -0.401838062 -0.161103642 #> [126] 0.359592031 -0.409599575 -0.335661898 0.170715564 -0.173990309 #> [131] -0.385234231 -0.238286683 0.291426613 0.000000000 0.633511732 #> [136] -0.051131681 -0.348063814