slm.fit.RdFitting functions for sparse linear model fitting.
slm.fit(x,y,method, ...)
slm.wfit(x,y,weights,...)
slm.fit.csr(x, y, ...)design matrix.
vector of response observations.
only csr is supported currently
an optional vector of weights to be used in the fitting process. If specified, weighted least squares is used with weights `weights' (that is, minimizing $$\sum w_i*e_i^2$$ The length of weights must be the same as the number of observations. The weights must be nonnegative and it is strongly recommended that they be strictly positive, since zero weights are ambiguous.
additional arguments.
slm.fit and slm.wfit call slm.fit.csr
to do Cholesky decomposition
and then backsolve to obtain the least squares estimated coefficients.
These functions can be called directly if the user is willing to
specify the design matrix in matrix.csr form. This is often
advantageous in large problems to reduce memory requirements.
A list of class slm consisting of:
estimated coefficients
cholesky object from fitting
residuals
fitted values
degrees of freedom
terms
call
...
Koenker, R and Ng, P. (2002). SparseM: A Sparse Matrix Package for R,
http://www.econ.uiuc.edu/~roger/research/home.html
data(lsq)
X <- model.matrix(lsq) #extract the design matrix
y <- model.response(lsq) # extract the rhs
class(X) # -> "matrix.csr"
#> [1] "matrix.csr"
#> attr(,"package")
#> [1] "SparseM"
class(y) # -> NULL
#> [1] "matrix" "array"
slm.fit(X,y)->slm.fit.o # this is much more efficient in memory usage than slm()
slm(y~as.matrix(X)-1) -> slm.o # this requires X to be transformed into dense mode
cat("Difference between `slm.fit' and `slm' estimated coefficients =",
sum(abs(slm.fit.o$coef-slm.o$coef)),"\n")
#> Difference between `slm.fit' and `slm' estimated coefficients = 0