# fastSVD: Fast SVD of a wide or tall matrix In bootSVD: Fast, Exact Bootstrap Principal Component Analysis for High Dimensional Data

## Description

`fastSVD` uses the inherent low dimensionality of a wide, or tall, matrix to quickly calculate its SVD. For a matrix A, this function solves svd(A)=UDV'. This function can be applied to either standard matrices, or, when the data is too large to be stored in memeory, to matrices with class `ff`. `ff` objects have a representation in memory, but store their contents on disk. In these cases, `fastSVD` will implement block matrix algebra to compute the SVD.

## Usage

 ```1 2``` ```fastSVD(A, nv = min(dim(A)), warning_type = "silent", center_A = FALSE, pattern = NULL) ```

## Arguments

 `A` matrix of dimension (n by m). This can be either of class `matrix` or `ff`. `nv` number of high dimensional singular vectors to obtain. If n>m, this is the number of n-dimensional left singular vectors to be computed. If n

## Details

Users might also consider changing the global option `ffbatchbytes`, from the `ff` package. When a `ff` object is entered, the `ffbatchbytes` option determines the maximum block size in the block matrix algebra used to calculate the SVD.

## Value

Let r be the rank of the matrix `A`. `fastSVD` solves svd(A)=UDV', where U is an (n by r) orthonormal matrix, D is an (r by r) diagonal matrix; and V is a (m by r) orthonormal matrix. When `A` is entered as an `ff` object, the high dimensional singular vectors of `A` will be returned as an `ff` object as well. For matrices where one dimension is substantially large than the other, calculation times are considerably faster than the standard `svd` function.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```Y<-simEEG(n=100,centered=TRUE,wide=TRUE) svdY<-fastSVD(Y) svdY matplot(svdY\$v[,1:5],type='l',lty=1) #sample PCs for a wide matrix are the right singular vectors #Note: For a tall, demeaned matrix Y, with columns corresponding #to subjects and rows to measurements, #the PCs are the high dimensional left singular vectors. #Example with 'ff' dev.off() library(ff) Yff<-as.ff(Y) svdYff<-fastSVD(Yff) svdYff matplot(svdYff\$v[,1:5],type='l',lty=1) ```

bootSVD documentation built on Feb. 2, 2021, 5:06 p.m.