Covariance errors - mobeets/nullSpaceControl GitHub Wiki

screen shot 2016-04-20 at 10 42 02 am

Source: "A simple procedure for the comparison of covariance matrices" Given: two samples D1, D2. We would like to find an error metric for the difference between cov(D1) and cov(D2).

S1 = S2 + S3

  • S2 = error in covariance orientation
  • S3 = error in covariance shape

High-level

  • S1 (total): eigenvector from one sample should explain same amount of variance in both samples.
  • S2 (orientation): one sample should be explained just as well by its ith eigenvector as by the other sample's ith eigenvector.
  • S3 (shape): one sample should be as explained by its ith eigenvector as the other sample is explained by its ith eigenvector.

Low-level

Below, v_i12 is the variance in sample 1 explained by the ith eigenvector of sample 2. So v_11 and v_22, for example, these are the eigenvalues of D1 and D2, respectively.

screen shot 2016-04-04 at 11 24 10 am

Units

S1 can be normalized by the worst case scenario, which is when each data set has one axis of variance, and these axes are orthogonal. S1_max = 4*(sum(var(D1))^2 + sum(var(D2))^2). So you can normalize S1, S2, and S3 by this value to scale between 0 and 1.

Examples

screen shot 2016-04-04 at 11 25 10 am