| |
 |
|
|
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 |
|
|
| Back to top |
|
| 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 |
|
|
| Back to top |
|
| 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 |
|
|
| Back to top |
|
| |
|
Page 1 of 1
All times are GMT - 5 Hours
The time now is Sat Nov 22, 2008 3:53 pm
|
|