[R] generalized inverse using matinv (Design)
Frank Paetzold
Frank.Paetzold at q-das.de
Tue Aug 16 16:15:58 CEST 2011
i am trying to use matinv from the Design package
to compute the generalized inverse of the normal equations
of a 3x3 design via the sweep operator.
That is, for the linear model
y = µ + x1 + x2 + x1*x2
where x1, x2 are 3-level factors and dummy coding is being used
the matrix to be inverted is
X'X =
9 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1
3 3 0 0 1 1 1 1 0 0 1 0 0 1 0 0
3 0 3 0 1 1 1 0 1 0 0 1 0 0 1 0
3 0 0 3 1 1 1 0 0 1 0 0 1 0 0 1
3 1 1 1 3 0 0 1 1 1 0 0 0 0 0 0
3 1 1 1 0 3 0 0 0 0 1 1 1 0 0 0
3 1 1 1 0 0 3 0 0 0 0 0 0 1 1 1
1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0
1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0
1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0
1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0
1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0
1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1
this matrix has rank=9
however, matinv(X'X) falsely returns rank=4,
no matter what the tolerance threshold eps is set to.
also the defining property of the
generalized inverse
_
X'X %*% (X'X) %*% X'X = X'X
is not satisfied.
if i use qr (from the base package) the rank is
correctly determined as 9.
any ideas?
thank you
--
View this message in context: http://r.789695.n4.nabble.com/generalized-inverse-using-matinv-Design-tp3747337p3747337.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list