@kanaries/ml
API Reference/Covariance

MinCovDet (FAST-MCD)

Compute robust multivariate location, covariance, support masks, and Mahalanobis distances with the MinCovDet JavaScript and TypeScript implementation in @kanaries/ml.

View as Markdown

Algorithm overview

Minimum Covariance Determinant finds a subset whose covariance determinant is small, then reweights observations using robust Mahalanobis distances. This makes location and covariance estimates resistant to multivariate outliers. The implementation uses FAST-MCD elemental starts, C-steps, consistency correction, and chi-square reweighting.

JavaScript implementation

Covariance.MinCovDet runs in browsers and Node.js without a Python service. It is appropriate for moderate tabular datasets; repeated matrix inversions make it substantially more expensive than empirical covariance.

Quick start example

import { Covariance } from '@kanaries/ml';

const X = [[0, 0], [.1, .2], [.2, .1], [-.1, 0], [8, 8]];
const robust = new Covariance.MinCovDet({ supportFraction: .8, randomState: 42 });
robust.fit(X);

console.log(robust.location, robust.covariance);
console.log(robust.support, robust.mahalanobis(X));

Detailed API reference

new Covariance.MinCovDet({
  supportFraction?: number; // (0, 1]; default uses sklearn's h formula
  randomState?: number;
  assumeCentered?: boolean; // default false
})
  • fit(X): void estimates raw and reweighted robust covariance.
  • mahalanobis(X): number[] returns squared robust Mahalanobis distances.
  • location, covariance, precision, and support expose reweighted results.
  • rawLocation, rawCovariance, and rawSupport expose the pre-reweighting FAST-MCD result.