> I was playing around with something else and I noticed this matrix code for
> residuals in a linear model doesn't say what lm() says. Please tell me if I
> am completely misguided here.
> Y <- as.matrix(mtcars[,1])
> X <- as.matrix(mtcars[,c(2:11)])
> # shouldnt this:
> H <- X %*% solve(t(X) %*% X) %*% t(X)
> (diag(dim(H)) - H) %*% Y
> # be equal to this:
> # ???
> # thanks
You are forgetting about the constant term.
X <- cbind(1,X)
H <- X %*% solve(t(X) %*% X) %*% t(X)
R1 <-(diag(dim(H)) - H) %*% Y