Wednesday, October 12, 2011

On getting the eigen vector signs to work out while computing SVD by hand

Some of you have asked me about how to get the signs of the eigen vectors of tf and df to correlate correctly so that when you multiply df*ff*tf' you get the original matrix back. One idea is to compute one of the matrices (either tf or df) by explicitly computing the eigen vectors and compute the other using the SVD equation.

Specifically, suppose you computed tf--picking whatever signs for the eigen vectors.

Then, rather than compute df by looking at the eigen vectors of dd matrix, you can compute df directly

df = dt*tf*ff-inverse  (where ff-inverse is the inverse of a diagonal matrix and so it will just be another diagnonal matrix with the entries being reciprocals of the ff)

This way, you are guaranteed to have dt be reconstructible by SVD equation (and it also saves the trouble of computing eigen vectors twice). 

((Here is the simple derivation of that formula above: 

dt = df * ff * tf'  (SVD equation)

dt*tf = df * ff * tf' * tf  = df*ff  (the last product is I since tf is orthonormal)

dt*tf*ff-inverse = df * ff * ff-inverse = df

Here is a link which has a worked out example done this way


No comments:

Post a Comment