Re: rank([X;Y]) < rank(X) + rank(Y)
- From: Greg Heath <heath@xxxxxxxxxxxxxxxx>
- Date: Mon, 13 Oct 2008 23:26:06 -0700 (PDT)
On Oct 13, 7:06 am, "John D'Errico" <woodch...@xxxxxxxxxxxxxxxx>
wrote:
Greg Heath<he...@xxxxxxxxxxxxxxxx> wrote in message <fd02ff69-0217-4c76-8823-890e0b484...@xxxxxxxxxxxxxxxxxxxxxxxxxxx>...
On Oct 11, 3:44 pm, "Bruno Luong"
<b.lu...@xxxxxxxxxxxxxxxxxxxx> wrote:
Greg Heath<he...@xxxxxxxxxxxxxxxx> wrote in message<08220a10-1ee7-4647-bc79-6b068aa42...@xxxxxxxxxxxxxxxxxxxxx
ups.com>...
I was given a protein-sequence/torsion-angle data set
with 45 observations of 17 predictors and 60 responses.
size(X) = [17 45]
size(Y) = [60 45]
Z = [X;Y]
size(Z) = [77 45]
Now
rank(X) = 13 ==> 4 predictors are redundant
rank(Y) = 31 ==> 29 responses are redundant
rank(Z) = 37 ==> ?
I am puzzled by the fact that
rankZ < rankX + rankY
span(Z) = span(X) + span(Y) (not direct)
If by span(X)(spanX) you mean all possible linear
combinations of the rows of X, then I do not
agree. I'd say that
span(Z) > span(X) + span(Y)
because it contains mixed linear combinations.
No. This can never be true.
The row spaces of each of X and Y can be
represented by a set of linearly independent
basis vectors. Because X has rank 13, there
are 13 of those independent (and orthogonal)
basis vectors for X. The row space of Y has
31 such orthogonal basis vectors.
Of course, the origin is included in the
span of both of the spaces, but if the two
spaces were independent of each other, the
origin would be the only such intersection
point.
Suppose we start with X. Reduce that space
to some set of orthogonal vectors. Orth is
a good way to do so, or QR. The information
content that was once in the rows of X
is embodied in some linear combination
of those 13 basis vectors.
Likewise, we can reduce Y to a set of 31
distinct basis vectors. Any row of Y can
be written as some linear combination of
those 31 vectors.
Now, imagine the two sets of orthogonal
vectors. We can rotate a set of orthogonal
vectors around the origin. As it turns out,
if we rotate one of these sets of vectors
carefully, we will find that the two sets
can be rotate around so they share exactly
7 basis vectors. The intersection space has
dimension 7.
Perhaps best is to write some code.
Given X and Y as above, if we did this:
Bx = orth(X')';
By = orth(Y')';
Bx will have 13 rows, and By will have
31 rows. These are sets of orthogonal
basis vectors for the row spaces of each
matrix. They span those row spaces.
How do we find the intersection space?
This is the subspace that the two share
in common. We can do it by projecting
one space onto the other.
S = (Y*Bx')*Bx;
Or, since By forms a basis for the rows
of Y, we could have done so as
S = (By*Bx')*Bx;
Now we can use orth to find a basis for
this shared subspace.
Bs = orth(S')';
It will have 7 rows, and thus a 7-d
shared set of basis vectors.
Thanks, John. I have been determined to do a similar
construction using 13 + 31 original vectors that create
nonorthogonal bases. Hence the reason for this thread.
I purposely excluded orthogonalization because I wanted
to understand what lessons original vectors could tell
me from a physical point of view.
Kudos aside, maybe my basic problem is that I really
don't understand the terminology (dumb engineer etc).
spanX contains all possible linear combinations of the
17 X row vectors.
spanY contains all possible linear combinations of the
60 Y row vectors
spanZ contains all possible linear combinations of the
77 Z row vectors.
Therefore spanZ not only contains spanX and spanY,
but it also contains all possible linear combinations
of X and Y row vector mixtures. Consequently, I
concluded that
spanZ > spanX + spanY
Maybe that is the wrong terminology for what i just
described. If so, and my logic makes sense, what is
the correct terminology?
Greg
.
- Follow-Ups:
- Re: rank([X;Y]) < rank(X) + rank(Y)
- From: Bruno Luong
- Re: rank([X;Y]) < rank(X) + rank(Y)
- References:
- Re: rank([X;Y]) < rank(X) + rank(Y)
- From: Greg Heath
- Re: rank([X;Y]) < rank(X) + rank(Y)
- From: John D'Errico
- Re: rank([X;Y]) < rank(X) + rank(Y)
- Prev by Date: For ImageAnalyst
- Next by Date: Local thresholding
- Previous by thread: Re: rank([X;Y]) < rank(X) + rank(Y)
- Next by thread: Re: rank([X;Y]) < rank(X) + rank(Y)
- Index(es):
Relevant Pages
|
Loading