# pcscorebootstrapdata: Bootstrap independent and identically distributed functional... In ftsa: Functional Time Series Analysis

## Description

Computes bootstrap or smoothed bootstrap samples based on either independent and identically distributed functional data or functional time series.

## Usage

 ```1 2``` ```pcscorebootstrapdata(dat, bootrep, statistic, bootmethod = c("st", "sm", "mvn", "stiefel", "meboot"), smo) ```

## Arguments

 `dat` An object of class `matrix`. `bootrep` Number of bootstrap samples. `statistic` Summary statistics. `bootmethod` Bootstrap method. When `bootmethod = "st"`, the sampling with replacement is implemented. To avoid the repeated bootstrap samples, the smoothed boostrap method can be implemented by adding multivariate Gaussian random noise. When `bootmethod = "mvn"`, the bootstrapped principal component scores are drawn from a multivariate Gaussian distribution with the mean and covariance matrices of the original principal component scores. When `bootmethod = "stiefel"`, the bootstrapped principal component scores are drawn from a Stiefel manifold with the mean and covariance matrices of the original principal component scores. When `bootmethod = "meboot"`, the bootstrapped principal component scores are drawn from a maximum entropy algorithm of Vinod (2004). `smo` Smoothing parameter.

## Details

We will presume that each curve is observed on a grid of T points with 0≤q t_1<t_2…<t_T≤q τ. Thus, the raw data set (X_1,X_2,…,X_n) of n observations will consist of an n by T data matrix. By applying the singular value decomposition, X_1,X_2,…,X_n can be decomposed into X = ULR^{\top}, where the crossproduct of U and R is identity matrix.

Holding the mean and L and R fixed at their realized values, there are four re-sampling methods that differ mainly by the ways of re-sampling U.

(a) Obtain the re-sampled singular column matrix by randomly sampling with replacement from the original principal component scores.

(b) To avoid the appearance of repeated values in bootstrapped principal component scores, we adapt a smooth bootstrap procedure by adding a white noise component to the bootstrap.

(c) Because principal component scores follow a standard multivariate normal distribution asymptotically, we can randomly draw principal component scores from a multivariate normal distribution with mean vector and covariance matrix of original principal component scores.

(d) Because the crossproduct of U is identitiy matrix, U is considered as a point on the Stiefel manifold, that is the space of n orthogonal vectors, thus we can randomly draw principal component scores from the Stiefel manifold.

## Value

 `bootdata` Bootstrap samples. If the original data matrix is p by n, then the bootstrapped data are p by n by bootrep. `meanfunction` Bootstrap summary statistics. If the original data matrix is p by n, then the bootstrapped summary statistics is p by bootrep.

Han Lin Shang

## References

H. D. Vinod (2004), "Ranking mutual funds using unconventional utility theory and stochastic dominance", Journal of Empirical Finance, 11(3), 353-377.

A. Cuevas, M. Febrero, R. Fraiman (2006), "On the use of the bootstrap for estimating functions with functional data", Computational Statistics and Data Analysis, 51(2), 1063-1074.

D. S. Poskitt and A. Sengarapillai (2013), "Description length and dimensionality reduction in functional data analysis", Computational Statistics and Data Analysis, 58, 98-113.

H. L. Shang (2015), "Re-sampling techniques for estimating the distribution of descriptive statistics of functional data", Communications in Statistics–Simulation and Computation, 44(3), 614-635.

`fbootstrap`
 ```1 2 3 4 5 6``` ```# Bootstrapping the distribution of a summary statistics of functional data. boot1 = pcscorebootstrapdata(ElNino\$y, 400, "mean", bootmethod = "st") boot2 = pcscorebootstrapdata(ElNino\$y, 400, "mean", bootmethod = "sm", smo = 0.05) boot3 = pcscorebootstrapdata(ElNino\$y, 400, "mean", bootmethod = "mvn") boot4 = pcscorebootstrapdata(ElNino\$y, 400, "mean", bootmethod = "stiefel") boot5 = pcscorebootstrapdata(ElNino\$y, 400, "mean", bootmethod = "meboot") ```