Feng Zhang
2003-Aug-14 16:24 UTC
[R] How to get the pseudo left inverse of a singular square matrix?
Dear R-listers, I have a dxr matrix Z, where d > r. And the product Z*Z' is a singular square matrix. The problem is how to get the left inverse U of this singular matrix Z*Z', such that U*(Z*Z') = I? Is there any to figure it out using matrix decomposition method? Thanks a lot for your help. Fred
Jerome Asselin
2003-Aug-14 16:52 UTC
[R] How to get the pseudo left inverse of a singular square matrix?
Singular matrices are not invertible. However you can calculate the generalized inverse with the function ginv() from package MASS. HTH, Jerome On August 14, 2003 09:24 am, Feng Zhang wrote:> Dear R-listers, > > I have a dxr matrix Z, where d > r. > And the product Z*Z' is a singular square matrix. > The problem is how to get the left inverse U of this > singular matrix Z*Z', such that > U*(Z*Z') = I? > > Is there any to figure it out using matrix decomposition method? > > Thanks a lot for your help. > > Fred > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
Gabor Grothendieck
2003-Aug-14 19:24 UTC
[R] How to get the pseudo left inverse of a singular square matrix?
As already pointed out ZZ' is not invertible. That is, it is not one-to-one and onto. What we can do is restrict the domain and range of ZZ' to the range of ZZ' or equivalently to the range of Z. In operational terms this means if y = ZZ'x then we only consider y's expressable as y = Zu for some u and x's expressable as x = Zw for some w. 1. With this restriction ZZ' is one-to-one and onto and the generalized inverse as given by the R function ginv is its inverse, as already mentioned. 2. A second way to get the generalized if Z has full column rank, i.e. its columns are linearly independent, is to note that H, the inverse of Z'Z exists and ZHHZ' is the required inverse. This is because, if y = ZZ'x then ZHHZ'y = ZHHZ'ZZ'x = ZHHZ'ZZ'Zw = Zw = x --- "Feng Zhang" <f0z6305@labs.tamu.edu> wrote:>Thank, Jerome > >The question is if this generalized inverse can make >their product to be identity matrix? > > >----- Original Message ----- >From: "Jerome Asselin" <jerome@hivnet.ubc.ca> >To: "Feng Zhang" <f0z6305@labs.tamu.edu>; "R-Help" ><r-help@stat.math.ethz.ch> >Sent: Thursday, August 14, 2003 11:52 AM >Subject: Re: [R] How to get the pseudo left inverse of a singular square >matrix? > > >> >> Singular matrices are not invertible. However you can calculate the >> generalized inverse with the function ginv() from package MASS. >> >> HTH, >> Jerome >> >> On August 14, 2003 09:24 am, Feng Zhang wrote: >> > Dear R-listers, >> > >> > I have a dxr matrix Z, where d > r. >> > And the product Z*Z' is a singular square matrix. >> > The problem is how to get the left inverse U of this >> > singular matrix Z*Z', such that >> > U*(Z*Z') = I? >> > >> > Is there any to figure it out using matrix decomposition method? >> > >> > Thanks a lot for your help. >> > >> > Fred >> > >> > ______________________________________________ >> > R-help@stat.math.ethz.ch mailing list >> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > >______________________________________________ >R-help@stat.math.ethz.ch mailing list >https://www.stat.math.ethz.ch/mailman/listinfo/r-help