| Title: | Detection of Outliers in High Dimensional Data |
|---|---|
| Description: | Algorithms to detect high-dimensional outliers. The minimum diagonal product of Ro, Zou, Wang and Yin (2015) <doi:10.1093/biomet/asv021>, the algorithm of Wilkinson (2018) <doi:10.1109/TVCG.2017.2744685>, and the distances of distances of Lee and Jeon (2025) <doi:10.48550/arXiv.2511.02199>. |
| Authors: | Michail Tsagris [aut, cre] |
| Maintainer: | Michail Tsagris <[email protected]> |
| License: | GPL (>= 2) |
| Version: | 1.0 |
| Built: | 2026-07-07 05:59:02 UTC |
| Source: | https://github.com/cran/outliersHD |
Algorithms to detect high-dimensional outliers. The minimum diagonal product (MDP) of Ro, Zou, Wang and Yin (2015), the algorithm of Wilkinson that relies on nearest neighbours, and the distances of distances (DOD of Lee and Jeon (2025).
| Package: | outliersHD |
| Type: | Package |
| Version: | 1.0 |
| Date: | 2026-06-29 |
Michail Tsagris <[email protected]>.
Michail Tsagris [email protected]
Ro K., Zou C., Wang Z. and Yin G. (2015). Outlier detection for high-dimensional data. Biometrika, 102(3): 589–599.
Wilkinson L. (2018). Visualizing big data outliers through distributed aggregation. IEEE Transactions on Visualization and Computer Graphics 24(1): 256–266.
Tsagris M., Papadakis M., Alenazi A. and Alzeley O. (2024). Computationally Efficient Outlier Detection for High-Dimensional Data Using the MDP Algorithm. Computation, 12(9): 185.
Seong-ho Lee and Yongho Jeon (2025). DOD: Detection of outliers in high dimensional data with distance of distances. https://arxiv.org/abs/2511.02199
Detection of high dimensional outliers using nearest neighbours.
ahd(x, a = 0.01, k = 10, p = 0.5, tn = 50)ahd(x, a = 0.01, k = 10, p = 0.5, tn = 50)
x |
A matrix with numerical data with more columns (p) than rows (n), i.e. n<p. |
a |
Threshold for determining the cutoff for outliers. Observations are considered outliers if they fall in the (1-a) tail of the distribution of the nearest neighbor distances between exemplars. |
k |
The number of nearest neighbours to consider. |
p |
The proportion of possible outliers. |
tn |
Sample size to calculate an empirical threshold. |
For more information see Wilkinson (2018) and the R package "stray" that has implemented the algortihm. Our implementation is a faster (and slightly different) version of theirs.
A list including:
scores |
The score values of each observation. |
outliers |
The indices of the possible outlier(s). |
Michail Tsagris.
R implementation and documentation: Michail Tsagris [email protected].
Wilkinson L. (2018). Visualizing big data outliers through distributed aggregation. IEEE Transactions on Visualization and Computer Graphics 24(1): 256–266.
x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- ahd(x)x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- ahd(x)
Detection of high dimensional outliers using DOD.
dod(x, co = 0.1, a = 0.1)dod(x, co = 0.1, a = 0.1)
x |
A matrix with numerical data with more columns (p) than rows (n), i.e. n<p. |
co |
This is to compute the c parameter ( |
a |
The parameter (a>0 and a<0.5) that represents the maximum proportion of outliers. It serves as a tuning parameter controling the maximum false positive rate. |
High dimensional outliers (n<<p) are detected using distances of distances.
A vector with the index of the detected outlier(s).
Michail Tsagris.
R implementation and documentation: Michail Tsagris [email protected].
Seong-ho Lee and Yongho Jeon (2025). DOD: Detection of outliers in high dimensional data with distance of distances. https://arxiv.org/abs/2511.02199
x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- dod(x)x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- dod(x)
Detection of high dimensional outliers using the RMDP.
rmdp(x, alpha = 0.05, itertime = 100, parallel = FALSE)rmdp(x, alpha = 0.05, itertime = 100, parallel = FALSE)
x |
A matrix with numerical data with more columns (p) than rows (n), i.e. n<p. |
alpha |
The significance level, i.e. used to decide whether an observation is said to be considered a possible outlier. The default value is 0.05. |
itertime |
The number of iterations the algorithm will be ran. The higher the sample size, the larger this number must be.
With 50 observations in |
parallel |
A logical value for parallel version. |
High dimensional outliers (n<<p) are detected using a properly constructed MCD. The variances of the variables are used and the determinant is simply their product.
A list including:
runtime |
The duration of the process. |
dis |
The final estimated Mahalanobis type normalised distances. |
wei |
A bollean variable vector specifying whether an observation is "clean" (TRUE) or a possible outlier (FALSE). |
Michail Tsagris.
R implementation and documentation: Michail Tsagris [email protected].
Ro K., Zou C., Wang Z. and Yin G. (2015). Outlier detection for high-dimensional data. Biometrika, 102(3): 589–599.
Tsagris M., Papadakis M., Alenazi A. and Alzeley O. (2024). Computationally Efficient Outlier Detection for High-Dimensional Data Using the MDP Algorithm. Computation, 12(9): 185.
x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- rmdp(x, itertime = 5)x <- matrix(rnorm(20 * 50), ncol = 50) x <- rbind(x, matrix(rnorm(2 * 50, 5, 1), ncol = 50) ) a <- rmdp(x, itertime = 5)