Least squares fitting and the <IMG ALIGN=BOTTOM SRC="_25734_tex2html_wrap3077.gif"> decomposition



next up previous contents
Next: Data frames Up: Some functions returning Previous: Singular value decomposition

Least squares fitting and the QR decomposition

The function lsfit() returns a list giving results of a least squares fitting procedure. An assignment such as

ans <- lsfit(X, y)

gives the results of a least squares fit where y is the vector of observations and X is the design matrix. See the help facility for more details, and also for the follow-up function ls.diag() for, among other things, regression diagnostics. Note that a grand mean term is automatically included and need not be included explicitly as a column of X.

Another closely related function is qr() and its allies. Consider the following assignments

Xplus <- qr(X)

b <- qr.coef(Xplus, y)

fit <- qr.fitted(Xplus, y)

res <- qr.resid(Xplus, y)

These compute the orthogonal projection of y onto the range of X in fit, the projection onto the orthogonal complement in res and the coefficient vector for the projection in b, that is, b is essentially the result of the MATLAB `backslash' operator.

It is not assumed that X has full column rank. Redundancies will be discovered and removed as they are found.

This alternative is the older, low level way to perform least squares calculations. Although still useful in some contexts, it would now generally be replaced by the statistical models features, as will be discussed in §gif.



Erik Moledor
Tue Jan 31 21:02:18 EST 1995