Skip to contents

Per dimension, the left and right empirical tail probabilities of each observation; the score is the summed negative log tail. A third "automatic" variant picks the tail per dimension by the sign of the skewness. The reported score is the largest of the three.

Usage

morie_ecod(X)

Arguments

X

numeric matrix, one row per observation.

Value

list with score, rank, tail_left, tail_right and skewness.

Details

ECOD has NO hyperparameters, which is its selling point, but it shares HBOS's blind spot exactly: it looks one dimension at a time, so a point that is unremarkable in every margin and impossible in the joint distribution scores as normal.

References

Li, Z. et al. (2023). ECOD: unsupervised outlier detection using empirical cumulative distribution functions. IEEE TKDE, 35(12), 12181-12193.

Examples

set.seed(1)
X <- cbind(rnorm(50), rnorm(50))
str(morie_ecod(X)$score)
#>  num [1:50] 2.74 2.17 3.22 4.02 2.85 ...