Covariance & TableOfReal: To TableOfReal (mahalanobis)...

Calculate Mahalanobis distance for the selected TableOfReal with respect to the selected Covariance object.

Setting

Use table centroid
Use the mean vector calculated from the columns in the selected TableOfReal instead of the means in the selected Covariance.

Example

Count the number of items that are within 1, 2, 3, 4 and 5 standard deviations from the mean.

We first create a table with only one column and 10000 rows and fill it with numbers drawn from a normal distribution with mean zero and standard deviation one. Its covariance matrix, of course, is one dimensional. We next create a table with Mahalanobis distances.

n = 100000
t0 = Create TableOfReal: "table", n, 1
Formula: ~ randomGauss (0, 1)
c = To Covariance
selectObject: c, t0
ts = To TableOfReal (mahalanobis): "no"

for nsigma to 5
      selectObject: ts
      extraction = Extract rows where: ~ self < nsigma
      nr = Get number of rows
      nrp = nr / n * 100
      expect = (1 - 2 * gaussQ (nsigma)) * 100
      writeInfoLine: nsigma, "-sigma: ", nrp, ", ", expect, ""
      removeObject: extraction
endfor

Links to this page


© djmw, August 28, 2017