Can the singular values be plotted?

1.2k Views Asked by At

I have a set of 3 x 3 co-variance matrices that I need to plot.

Using singular value decomposition (svd) in Matlab I managed to obtains a vector of singular values for each matrix as stated here.

I did plot the resulting singular vector on a 3D plot and got a spread of points which I could explain according to my experiment.

My question is whether this type of plotting is permitted and correct? If not how can I plot a set of co-variance matrices?

2

There are 2 best solutions below

0
On BEST ANSWER

Since you wrote in the comment to my other attempt at an answer that you want to visualize covariance matrices to see whether they are different, I'd recommend you simply plot the matrix entries coded by color. The plotting can be done by pcolor, but for the comparison it is important to have a common colorscale.

Assuming you have nm matrices of size nv x nv stored as a three-dimensional array c of dimension nv x nv x nm:

figure
minc = min(c(:));
maxc = max(c(:));
for i = 1 : nm
    subplot(3, 4, i)     % adjust such that the number of subplots is >= nm
    C = c(:, :, i);
    C(nv + 1, nv + 1) = 0;
    pcolor(0.5 + (0 : nv), 0.5 + (0 : nv), double(C))
    axis equal tight
    caxis([-minc, maxc])
end

The result might look for example like this:

enter image description here

7
On

"permitted and correct" depends on how you want to interpret the plot.

I'd prefer to plot the L2-normalized singular vectors multiplied by the corresponding singular values, or equivalently, the L2-normalized eigenvectors multiplied by the square roots of eigenvalues. The reason is that these vectors correspond to the uncorrelated variance components (aka principal components) of the three correlated variables characterized by the given covariance matrix. Moreover, if the variables are jointly normally distributed, the ellipsoid spanned by these three vectors corresponds to the 1$\sigma$-surface of that multivariate normal distribution.