Getting Started with PACE
For Windows users:
>>addpath(genpath('C:/release2.17/')); %assume you extracted the release2.17.zip under C:/
For Unix or Linux users:
>>addpath(genpath('~/release2.17/')); %assume you extracted the release2.17.bz2 at your home directory
1. The main program for recovering functions is FPCA.m under PACE/.
The input data is assumed to have
measurements that sampled at dense and regular time grids (regular = 2),
dense and regular time grids with missing values (regular = 1) or sparse
and irregular time grids (regular = 0).
Bandwidth choices for the mean and covariance functions can be obtained through leave-one-curve-out
Cross-Validation
(CV) or variants of Generalized Cross-Validation or variants of Generalized Cross-Validation
(GCV).
The number of principal components to be included can be chosen through various
functional AIC or BIC
criteria: i) marginal likelihood based criteria:
AIC1,
BIC1; ii) conditional likelihood based criteria:
AIC2, BIC2;
fraction of variance explained
(FVE), AIC_R (only for functional regression) or specified by the user (see
pcaHELP.txt
and
pc2.pdf for details).
FPCA.m is a driver program for PCA.m. To learn how to use these functions, use
>>help FUNCTION NAME <return> %This is true for important functions from the PACE package
e.g.
>> help FPCA <return> %view function descriptions for FPCA.m
or
>> help PCA <return> %view function descriptions for PCA.m
An example file, example.m, which provides simulated data for using FPCA.m can be found at examples/ directory.
To run this example, run Matlab under examples/ directory, and type
>> example <return>
The first two input arguments for
FPCA.m are always required. Its third input
argument is optional and it can be
defined by using the setOptions.m.
Given an object, either a struct or cell array returned by
the functions from PACE package, such as setOptions.m,
FPCA.m etc, one may access the individual elements
of this object by using functions like getVal.m,
setVal.m or
names.m.
For example:
>> showOptionNames() %Check a list of option names before you call setOptions()
>> p = setOptions() %Set options using default values
>> names(p) %tells you the variable names for object p
>> getVal(p,'bwmu') %retrieve one of the element of object p, namely "bwmu"
>> p = setVal(p,'bwmu',3) %Reset "bwmu" to be 3 rather than the default value 0
>> p = setVal(p, 'regular',2) %Reset "regular" to be 2 rather than the default value 0
>> p_alternative = setOptions('regular',2, 'bwmu',3) % p and p_alternative are the same
>> yy = FPCA(y,t,p)
%assume you had created "y" (1*n cell array) to hold the
%repeated measurements and
"t" (1*n cell array) to hold
%the
corresponding time points.
>> names(yy) %view what possible output names from "yy"
>> phi = getVal(yy,'phi') %extract eigenfunctions from "yy"
>> mu = getVal(yy,'mu') % extract mean function from "yy"
2. The main program
for derivative estimation for functional data through PACE is
FPCder.m
under
PACE/PACE-DER/.
Similar to FPCA.m, the input argument options can
be set through setDerOptions.m. To learn how
to use this
function, type
>> help FPCder <return>
FPCder.m
works the same as
FPCA.m
if the interest is the estimation of the trajectories
themselves.
When derivatives are of interest, and if one does not want to use the default options,
for which it is sufficient
to simply specify the order of derivative
nder, and wants to target
derivatives, then note that in
setDerOptions.m, the first element of
bwmu, bwxcov,
bwmu_gcv,
bwxcov_gcv and npoly, correspond to the
trajectory estimation (more on this in the help file
pcderHELP.txt).
Helpful in getting started is to follow the set-up of input arguments in the exampleDer.m.
3.
The main program for functional regression through PACE is
FPCreg.m
under
PACE/PACE-REG/, where the predictor X is always
a function and
response Y can be either a function or a scalar
(continuous or discrete).
To learn how to use this function, type
>> help FPCreg <return>
The main program for functional regression with diagnostics is
FPCdiag.m
under
PACE/PACE-REG/.
Diagnostic tools involve
functional residual plots, functional leverage plot, functional Cook's
distance,
bootstrap test for significance of functional regression for null hypothesis R2
= 0, construction
of confidence bands for regression parameter function/surface
To learn how to use this function, type
>> help FPCdiag <return>
Helpful in getting started is to follow the similar set-up of input arguments in
4. The main program for functional principal component analysis for generalized
To learn how to use this function, type
>> help FPCgrm <return>
Helpful in getting started is to follow the similar set-up of input arguments in
5.
The main program for functional singular component analysis is
FSVD.m
under
PACE/PACE-SVD/.
To learn how to use this function, type
>> help FSVD <return>
Helpful in getting started is to follow the similar set-up of input arguments in
6. The main program for aligning
time-warped functional data as a preprocessing
step before performing PACE is
WFPCA.m under
PACE/PACE-WARP/.
To learn how to use this function, type
>> help WFPCA <return>
Helpful in getting started is to follow the similar set-up of input arguments in
7. The main program for performing
Generalized Functional Linear Regression (GFLM)
with scalar response is iterGFLM.m under
PACE/PACE-GFLM/.
To learn how to use this function, type
>> help iterGFLM <return>
Helpful in getting started is to follow the similar set-up of input arguments in
8. The main program for estimating
Functional Additive Model (FAM)
is
FPCfam.m under
PACE/PACE-FAM/.
To learn how to use this function, type
>> help FPCfam <return>
Helpful in getting started is to follow the similar set-up of input arguments in
9. The main program for estimating
Functional Variance Process (FVP)
is
FVP.m under
PACE/PACE-FVP/.
To learn how to use this function, type
>> help FVP <return>
Helpful in getting started is to follow the similar set-up of input arguments in
10. The main program for Functional
Quasi-Likelihood Regression (FQR)
is
FQR.m under
PACE/PACE-FQR/.
To learn how to use this function, type
>> help FQR <return>
Helpful in getting started is to follow the similar set-up of input arguments in
11. The main program for Nonlinear
manifold representations for functional data. (Mani)
is
ManiMDS.m under
PACE/PACE-Mani/.
To learn how to use this function, type
>> help ManiMDS <return>
Helpful in getting started is to follow the similar set-up of input arguments in
12. The main program for modeling volatility trajectories for high frequency observations in financial markets. (Fvola)
is
Fvola.m under
PACE/PACE-Fvola/.
To learn how to use this function, type
>> help Fvola<return>
13. The main program for estimating the stickiness coefficient for sparsely observed longitudinal data. (stick)
is
stick.m under
PACE/PACE-stick/.
To learn how to use this function, type
>> help stick<return>
Helpful in getting started is to follow the similar set-up of input arguments in
14. The main program for repeated functional data modeling. (repf)
is
repfFPCA.m under
PACE/PACE-repf/.
To learn how to use this function, type
>> help repf<return>
Helpful in getting started is to follow the similar set-up of input arguments in
15. The main program to obtain data-adaptive nonlinear dynamic differential equations from observed functional data via a simple smoothing-based procedure. (nonlindyn)
is
nonlindyn.m under
PACE/PACE-nonlindyn/.
To learn how to use this function, type
>> help nonlindyn<return>
Helpful in getting started is to follow the similar set-up of input arguments in