fastLm estimates the linear model using the solve
function of Armadillo linear algebra library.
Usage
fastLmPure(X, y)
fastLm(X, ...)
## Default S3 method:
fastLm(X, y, ...)
## S3 method for class 'formula'
fastLm(formula, data = list(), ...)
Arguments
y
a vector containing the explained variable.
X
a model matrix.
formula
a symbolic description of the model to be fit.
data
an optional data frame containing the variables in the model.
...
not used
Details
Linear models should be estimated using the lm function. In
some cases, lm.fit may be appropriate.
The fastLmPure function provides a reference use case of the Armadillo
library via the wrapper functions in the RcppArmadillo package.
The fastLm function provides a more standard implementation of
a linear model fit, offering both a default and a formula interface as
well as print, summary and predict methods.
Lastly, one must be be careful in timing comparisons of
lm and friends versus this approach based on
Armadillo. The reason that Armadillo can do something
like lm.fit faster than the functions in the stats
package is because Armadillo uses the Lapack version of the QR
decomposition while the stats package uses a modified Linpack
version. Hence Armadillo uses level-3 BLAS code whereas the
stats package uses level-1 BLAS. However, Armadillo will
either fail or, worse, produce completely incorrect answers
on rank-deficient model matrices whereas the functions from the stats
package will handle them properly due to the modified Linpack code.
An example of the type of situation requiring extra care in checking
for rank deficiency is a two-way layout with missing cells (see the
examples section). These cases require a special pivoting scheme of
“pivot only on (apparent) rank deficiency” which is not part of
conventional linear algebra software.
Value
fastLmPure returns a list with three components:
coefficients
a vector of coefficients
stderr
a vector of the (estimated) standard errors of the coefficient estimates
df.residual
a scalar denoting the degrees of freedom in the model
fastLm returns a richer object which also includes the
residuals, fitted values and call argument similar to the lm or
rlm functions..
Author(s)
Armadillo is written by Conrad Sanderson. RcppArmadillo is written by
Romain Francois, Dirk Eddelbuettel and Douglas Bates.