bootSVD_LD {bootSVD} R Documentation

## Calculate bootstrap distribution of n-dimensional PCs

### Description

`bootSVD_LD` Calculates the bootstrap distribution of the principal components (PCs) of a low dimensional matrix. If the score matrix is inputted, the output of `bootSVD_LD` can be used to to calculate bootstrap standard errors, confidence regions, or the full bootstrap distribution of the high dimensional components. Most users may want to instead consider using `bootSVD`, which also calculates descriptions of the high dimensional components. Note that `bootSVD` calls `bootSVD_LD`.

### Usage

```bootSVD_LD(UD, DUt = t(UD), bInds = genBootIndeces(B = 1000, n =
dim(DUt)), K, warning_type = "silent", verbose = getOption("verbose"),
centerSamples = TRUE)
```

### Arguments

 `UD` (optional) a (n by n) matrix of scores, were rows denote individuals, and columns denote measurements in the PC space. `DUt` the transpose of `UD`. If both `UD` and `UDt` are entered and `t(UD)!=DUt`, the `DUt` argument will override the `UD` argument. `bInds` a (B by n) matrix of bootstrap indeces, where `B` is the number of bootstrap samples, and `n` is the sample size. Each row should be an indexing vector that can be used to generate a new bootstrap sample (i.e. `sample(n,replace=TRUE)`). The matrix of bootstrap indeces is taken as input, rather than being calculated within `bootSVD_LD`, so that this method can be more easily compared against traditional bootstrap SVD methods on the exact same bootstrap samples. The `bInds` matrix can be calculated using the helper function `genBootIndeces`). `K` the number of PCs to be estimated. `warning_type` passed to `qrSVD`, when taking the SVD of the low dimensional bootstrap score matrices. `verbose` if `TRUE`, a progress bar will appear. `centerSamples` whether each bootstrap sample should be centered before calculating the SVD.

### Value

For each bootstrap matrix (DU')^b, let svd(DU')=:A^b D^b U^b, where A^b and U^b are (n by n) orthonormal matrices, and D^b is a (n by n) diagonal matrix K. Here we calculate only the first `K` columns of A^b, but all `n` columns of U^b. The results are stored as a list containing

 `As` a `B`-length list of the (`n` by `K`) matrices containing the first `K` PCs from each bootstrap sample. This list is indexed by `b`, with the b^{th} element containing the results from the b^{th} bootstrap sample. `ds` a `B`-length list of vectors, indexed by the bootstrap index `b`, with each vector containing the singular values of the corresponding bootstrap sample. `Us` a `B`-length list, indexed by the bootstrap index `b`, of the (n by n) matrices U^b. `time` The computation time required for the procedure, taken using `system.time`.

If the score matrix is inputted to `bootSVD_LD`, the results can be transformed to get the PCs on the original space by multiplying each matrix A^b by the PCs of the original sample, V (see `As2Vs`). The bootstrap scores of the original sample are equal to U^b D^b.

### Examples

```#use small n, small B, for a quick illustration
set.seed(0)
Y<-simEEG(n=100, centered=TRUE, wide=TRUE)
svdY<-fastSVD(Y)
DUt<- tcrossprod(diag(svdY\$d),svdY\$u)
bInds<-genBootIndeces(B=50,n=dim(DUt))
bootSVD_LD_output<-bootSVD_LD(DUt=DUt,bInds=bInds,K=3,verbose=interactive())
```

[Package bootSVD version 1.1 Index]