Main Page | Report this Page
 
   
Science Forum Index  »  Statistics - Math Forum  »  inversion of covariance sub-matrices...
Page 1 of 1    
Author Message
john.tramuta at (no spam) googlemail.com...
Posted: Tue Jul 15, 2008 2:30 pm
Guest
Hi,

I am having the following problem and was wondering whether anybody
could help.

I have an n x p data matrix X containing n observations on p
variables, which I use to compute the p x p covariance matrix X ' X
and its inverse.

Now, call D ' D the q x q sub-matrix of X ' X obtained by taking q
columns and q rows of X ' X.

I need to efficiently compute the inverse of D ' D for all q=1,
2, ..., p-1, sequentially (i.e. starting with only one variable, and
adding one variable at a time).

Can this be done recursively, or efficiently using the inverse of X '
X?

Thanks,

John
Richard Startz...
Posted: Tue Jul 15, 2008 8:38 pm
Guest
On Tue, 15 Jul 2008 17:30:24 -0700 (PDT),
"john.tramuta at (no spam) googlemail.com" <john.tramuta at (no spam) googlemail.com> wrote:

Quote:
Hi,

I am having the following problem and was wondering whether anybody
could help.

I have an n x p data matrix X containing n observations on p
variables, which I use to compute the p x p covariance matrix X ' X
and its inverse.

Now, call D ' D the q x q sub-matrix of X ' X obtained by taking q
columns and q rows of X ' X.

I need to efficiently compute the inverse of D ' D for all q=1,
2, ..., p-1, sequentially (i.e. starting with only one variable, and
adding one variable at a time).

Can this be done recursively, or efficiently using the inverse of X '
X?

Thanks,

John


John:

This isn't an entirely helpful answer, but let me suggest this may not
be worth spending much time on unless p is very large.

Inverting a matrix is an order p^3 operation. Inverting all your
matrices is of order p^4.

Creating X'X is an order np^2 operation, usually with n much greater
than p.

So taking *all* your inverses is probably not a lot more work than
creating X'X just once.

Having said that,
http://www.cs.nthu.edu.tw/~jang/book/addenda/matinv/matinv/

has some relevant formulas. See "Special Case 1."

-Dick Startz
Paul Rubin...
Posted: Tue Jul 15, 2008 9:16 pm
Guest
john.tramuta at (no spam) googlemail.com wrote:
Quote:
Hi,

I am having the following problem and was wondering whether anybody
could help.

I have an n x p data matrix X containing n observations on p
variables, which I use to compute the p x p covariance matrix X ' X
and its inverse.

Now, call D ' D the q x q sub-matrix of X ' X obtained by taking q
columns and q rows of X ' X.

I need to efficiently compute the inverse of D ' D for all q=1,
2, ..., p-1, sequentially (i.e. starting with only one variable, and
adding one variable at a time).

Can this be done recursively, or efficiently using the inverse of X '
X?


Are you saying that you are only interested in the combinations (X1,X2),
(X1,X2,X3), (X1,X2,X3,X4), ...? So you're not considering, say,
(X1,X3,X4)? Otherwise, you don't have p covariance matrices to worry
about, you have 2^p matrices.

Either way, you could use the old-fashioned method of minors to computer
the inverses (http://en.wikipedia.org/wiki/Adjugate). If you are in
fact doing all 2^p combinations, you work your way up in dimension (do
all single variables, then all pairs, all triples, ...). At each step,
you compute the new minors recursively from the ones you already have.

/Paul
 
Page 1 of 1       All times are GMT - 5 Hours
The time now is Sat Nov 22, 2008 3:53 pm