Proj: Projection of Vector y on columns of X

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/proj.R

Description

Fitting a linear model, lm(y ~ X), by least squares can be thought of geometrically as the orthogonal projection of y on the column space of X. This function is designed to allow exploration of projections and orthogonality.

Usage

1
Proj(y, X, list = FALSE)

Arguments

y

a vector, treated as a one-column matrix

X

a vector or matrix. Number of rows of y and X must match

list

logical; if FALSE, return just the projected vector; otherwise returns a list

Details

The projection is defined as P y where P = X (X'X)^- X' and X^- is a generalized inverse.

Value

the projection of y on X (if list=FALSE) or a list with elements y and P

Author(s)

Michael Friendly

See Also

Other vector diagrams: arc, arrows3d, corner, plot.regvec3d, pointOnLine, regvec3d, vectors3d, vectors

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
X <- matrix( c(1, 1, 1, 1, 1, -1, 1, -1), 4,2, byrow=TRUE)
y <- 1:4
Proj(y, X[,1])  # project y on unit vector
Proj(y, X[,2])
Proj(y, X)

# orthogonal complements
yp <-Proj(y, X, list=TRUE)
yp$y
P <- yp$P
IP <- diag(4) - P
yc <- c(IP %*% y)
crossprod(yp$y, yc)

# P is idempotent:  P P = P
P %*% P
all.equal(P, P %*% P)

matlib documentation built on April 4, 2018, 5:03 p.m.