# [R] How to get the pseudo left inverse of a singular squarem atrix?

Spencer Graves spencer.graves at pdf.com
Fri Feb 6 17:17:26 CET 2004

```      The documentation for "ginv" in MASS says it "Calculates the
Moore-Penrose generalized inverse of a matrix 'X'."  The theory says
that for each m x n matrix A, there is a unique n x m matrix G
satisfying AGA = A and GAG = G.
(http://mathworld.wolfram.com/Moore-PenroseMatrixInverse.html).

Consider the following simple example:

>  A <- array(c(1,1,0,0), dim=c(2,2))
[2,]  0.0  0.0
>  A
[,1] [,2]
[1,]    1    0
[2,]    1    0
>  ginv(A)
[,1] [,2]
[1,]  0.5  0.5
[2,]  0.0  0.0
>  ginv(A)%*%A
[,1] [,2]
[1,]    1    0
[2,]    0    0
>  A%*%ginv(A)
[,1] [,2]
[1,]  0.5  0.5
[2,]  0.5  0.5
>  A%*%ginv(A)%*%A
[,1] [,2]
[1,]    1    0
[2,]    1    0
>  ginv(A)%*%A%*%ginv(A)
[,1] [,2]
[1,]  0.5  0.5
[2,]  0.0  0.0

hope this helps.  spencer graves

alka seltzer wrote:

>>I'm rusty, but not *that* rusty here, I hope.
>>
>>If W (=Z*Z' in your case) is singular, it can not
>>
>>
>have >inverse, which by
>
>
>>definition also mean that nothing multiply by it will
>>produce the identity
>>matrix (for otherwise it would have an inverse and
>>thus nonsingular).
>>
>>The definition of a generalized inverse is something
>>like:  If A is a
>>non-null matrix, and G satisfy AGA = A, then G is
>>called a generalized
>>inverse of A.  This is not unique, but a unique one
>>that satisfy some
>>additional properties is the Moore-Penrose inverse.
>>
>>
>I >don't know if this is
>
>
>>what ginv() in MASS returns, as I have not used it
>>before.
>>
>>
>
>Andy
>
>
>The inverse of a Matrix A is defined as a Matrix B
>such that B*A=A*B=I and not just B*A=I. But there are
>matrices B for singular matrices A such that B*A=I but
>A*B != I, therefore there exist "left-inverses" (or
>"right-inverses") for non-invertable matrices.
>
>Best Regards
>
>__________________________________
>

>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://www.stat.math.ethz.ch/mailman/listinfo/r-help