standard {SSLASSO} | R Documentation |
Standardizes a design matrix
Description
The function std
accepts a design matrix and returns
a standardized version of that matrix (i.e., each column will have
mean 0 and mean sum of squares equal to 1). The code has been adapted from the ncvreg
package (Breheny and Huang, 2011).
Usage
standard(X)
Arguments
X |
A matrix (or object that can be coerced to a matrix, such as a data frame). |
Details
This function centers and scales each column of X
so that
\sum_{i=1}^n x_{ij}=0
and
\sum_{i=1}^n x_{ij}^2 = n
for all j. This is usually not necessary to call directly, as SSLASSO
internally standardizes the design matrix, but inspection of the
standardized design matrix can sometimes be useful. This differs from
the base R function scale
in two ways: (1) scale
uses the sample standard deviation sqrt(sum(x^2)/(n-1))
, while
std
uses the root-mean-square, or population, standard
deviation sqrt(mean(sum(x^2)))
, and (2) std
is faster. The reason for using the population standard deviation is that SSLASSO
assumes that the columns of the design matrix have been scaled to have norm sqrt(n)
.
Value
The standardized design matrix, with attribues "center" and "scale" corresponding to the mean and (population) standard deviation used to scale the columns.
Author(s)
Patrick Breheny
Examples
X <- matrix(rnorm(50), 10, 5)
S <- standard(X)
apply(S, 2, sum)
apply(S, 2, function(x) mean(x^2))