Package {MOutliers}


Title: Multivariate Outlier Detection Methods
Version: 0.1.2
Description: Provides methods for detecting multivariate outliers in numeric datasets. The package implements classical Mahalanobis distance, robust Minimum Covariance Determinant (MCD), and Principal Component Analysis (PCA)-based approaches for outlier detection. The methodology is informed by Aggarwal (2017) <doi:10.1007/978-3-319-47578-3> and Grentzelos, Caroni and Barranco-Chamorro (2020) <doi:10.1002/cmm4.1129>. Visualization functions are included to aid interpretation of detected outliers. Mahalanobis distance calculations are accelerated using 'C++' through 'Rcpp'.
URL: https://github.com/SenuYasara/Multivariate_Outlier_Detection_R_Package
BugReports: https://github.com/SenuYasara/Multivariate_Outlier_Detection_R_Package/issues
License: MIT + file LICENSE
Encoding: UTF-8
RoxygenNote: 7.3.3
LinkingTo: Rcpp
Imports: Rcpp, stats, MASS, ggplot2, gridExtra, cowplot, rlang
Suggests: knitr, rmarkdown, testthat (≥ 3.0.0)
Config/testthat/edition: 3
VignetteBuilder: knitr
NeedsCompilation: yes
Packaged: 2026-06-15 23:10:57 UTC; pavan
Author: Senuri Yasara [aut, cre], Pavanthi Sudasinghe [aut]
Maintainer: Senuri Yasara <senuriyasara@gmail.com>
Repository: CRAN
Date/Publication: 2026-06-16 06:50:43 UTC

Detect Multivariate Outliers

Description

Detects multivariate outliers using Mahalanobis, Minimum Covariance Determinant (MCD), or PCA-based distances. Supports robust detection by computing distance scores for each observation and comparing them against a chi-squared cutoff at a specified significance level.

Usage

detect_multivariate_outliers(data, method = "mahalanobis", alpha = 0.975)

Arguments

data

A numeric data frame or matrix.

method

Outlier detection method: "mahalanobis", "mcd", or "pca".

alpha

Significance level (default = 0.975).

Value

A data frame combining the original input data with distances and outlier flags.

Examples

df_mtcars <- mtcars[, c("mpg", "hp", "wt" )]
head(df_mtcars)

## Mahalanobis Distance
result_mahal <- detect_multivariate_outliers(df_mtcars, method = "mahalanobis", alpha = 0.975)

## Minimum Covariance Determinant (MCD)
result_mcd <- detect_multivariate_outliers(df_mtcars, method = "mcd", alpha = 0.975)

## Principal Component Analysis (PCA)
result_pca <- detect_multivariate_outliers(df_mtcars, method = "pca", alpha = 0.975)

Plot Pairwise Outliers

Description

Generates 2D scatterplots for each pair of variables in the dataset, with outliers identified using Mahalanobis or MCD distances computed across all variables, without including each observation in its own distance calculation.

Usage

plot_outliers(data, method = c("mahalanobis", "mcd"), alpha = 0.975)

Arguments

data

A numeric data frame or matrix.

method

Outlier detection method: "mahalanobis" or "mcd".

alpha

The quantile cutoff for identifying outliers (default 0.975).

Value

A gtable object is returned invisibly. The function is primarily used for generating pairwise scatterplots with a shared legend as a side effect.

Examples

df_mtcars <- mtcars[, c("mpg", "hp", "wt" )]
head(df_mtcars)

## Pairwise Plots: Mahalanobis
plot_outliers(df_mtcars, method = "mahalanobis", alpha = 0.975)

## Pairwise Plots: MCD
plot_outliers(df_mtcars, method = "mcd", alpha = 0.975)