Learn R Programming

bootSVD (version 0.1)

bootSVD_LD: 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. Some users may want to instead consider using bootSVD, which calls bootSVD_LD, and also calculates descriptions of the high dimensional components.

Usage

bootSVD_LD(UD, DUt = t(UD), bInds = genBootIndeces(B = 1000, n =
  dim(DUt)[2]), K, warning_type = "silent", talk = FALSE,
  centerSamples = TRUE)

Arguments

UD
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. sampl
K
the number of PCs to be estimated.
warning_type
passed to qrSVD, when taking the SVD of the low dimensional bootstrap score matrices.
talk
setting this to TRUE will cause a progress bar to 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
  • Asa 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.
  • dsa B-length list of vectors, indexed by the bootstrap index b, with each vector containing the singular values of the corresponding bootstrap sample.
  • Usa B-length list, indexed by the bootstrap index b, of the ($n$ by $n$) matrices $U^b$.
  • timeThe 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

Run this code
#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=200,n=dim(DUt)[2])
bootSVD_LD_output<-bootSVD_LD(DUt=DUt,bInds=bInds,K=3,talk=TRUE)

Run the code above in your browser using DataLab