set.seed(1)
x <- rnorm(3)
z <- rnorm(3)
xz <- x + z
X <- cbind(x, z, xz)
XX <- crossprod(X) # has rank 2
MPinv(XX, method = "chol")
qrSolve(XX)
b <- rnorm(3)
crossprod(MPinv(XX), b)
qrSolve(XX, b)
crossprod(XX, qrSolve(XX, b))
fitted(lm(b ~ -1 + XX))
Run the code above in your browser using DataLab