Standardization of Data Matrices

Share:

Description

Performs standardization (centering and scaling) of a data matrix.

Usage

1
2
3
4
5
stdize(x, center = TRUE, scale = TRUE)
## S3 method for class 'stdized'
predict(object, newdata, ...)
## S3 method for class 'stdized'
makepredictcall(var, call)

Arguments

x, newdata

numeric matrices. The data to standardize.

center

logical value or numeric vector of length equal to the number of coloumns of x.

scale

logical value or numeric vector of length equal to the number of coloumns of x.

object

an object inheriting from class "stdized", normally the result of a call to stdize.

var

A variable.

call

The term in the formula, as a call.

...

other arguments. Currently ignored.

Details

makepredictcall.stdized is an internal utility function; it is not meant for interactive use. See makepredictcall for details.

If center is TRUE, x is centered by subtracting the coloumn mean from each coloumn. If center is a numeric vector, it is used in place of the coloumn means.

If scale is TRUE, x is scaled by dividing each coloumn by its sample standard deviation. If scale is a numeric vector, it is used in place of the standard deviations.

Value

Both stdize and predict.stdized return a scaled and/or centered matrix, with attributes "stdized:center" and/or "stdized:scale" the vector used for centering and/or scaling. The matrix is given class c("stdized", "matrix").

Note

stdize is very similar to scale. The difference is that when scale = TRUE, stdize divides the coloumns by their standard deviation, while scale uses the root-mean-square of the coloumns. If center is TRUE, this is equivalent, but in general it is not.

Author(s)

Bjørn-Helge Mevik and Ron Wehrens

See Also

mvr, pcr, plsr, msc, scale

Examples

1
2
3
4
5
6
7
8
data(yarn)
## Direct standardization:
Ztrain <- stdize(yarn$NIR[yarn$train,])
Ztest <- predict(Ztrain, yarn$NIR[!yarn$train,])

## Used in formula:
mod <- plsr(density ~ stdize(NIR), ncomp = 6, data = yarn[yarn$train,])
pred <- predict(mod, newdata = yarn[!yarn$train,]) # Automatically standardized

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.