fpca_gauss {registr} | R Documentation |
Functional principal components analysis via variational EM
Description
Function used in the FPCA step for registering functional data,
called by register_fpca
when family = "gaussian"
.
Parameters estimated based on probabilistic PCA framework originally
introduced by Tipping and Bishop in 1999.
The number of functional principal components (FPCs) can either be specified
directly (argument npc
) or chosen based on the explained share of
variance (npc_varExplained
). In the latter case, the explained share of
variance and accordingly the number of FPCs is estimated before the main
estimation step by once running the FPCA with npc = 20
(and
correspondingly Kt = 20
). Doing so, we approximate the overall
variance in the data Y
with the variance represented by the FPC basis
with 20 FPCs.
Usage
fpca_gauss(
Y,
npc = NULL,
npc_varExplained = NULL,
Kt = 8,
maxiter = 20,
t_min = NULL,
t_max = NULL,
print.iter = FALSE,
row_obj = NULL,
seed = 1988,
periodic = FALSE,
error_thresh = 1e-04,
subsample = TRUE,
verbose = 1,
...
)
Arguments
Y |
Dataframe. Should have variables id, value, index. |
npc , npc_varExplained |
The number of functional principal components (FPCs)
has to be specified either directly as |
Kt |
Number of B-spline basis functions used to estimate mean functions
and functional principal components. Default is 8. If |
maxiter |
Maximum number of iterations to perform for EM algorithm. Default is 50. |
t_min |
Minimum value to be evaluated on the time domain. |
t_max |
Maximum value to be evaluated on the time domain. |
print.iter |
Prints current error and iteration |
row_obj |
If NULL, the function cleans the data and calculates row indices.
Keep this NULL if you are using standalone |
seed |
Set seed for reproducibility. Defaults to 1988. |
periodic |
If TRUE, uses periodic b-spline basis functions. Default is FALSE. |
error_thresh |
Error threshold to end iterations. Defaults to 0.0001. |
subsample |
if the number of rows of the data is greater than 10 million rows, the 'id' values are subsampled to get the mean coefficients. |
verbose |
Can be set to integers between 0 and 4 to control the level of detail of the printed diagnostic messages. Higher numbers lead to more detailed messages. Defaults to 1. |
... |
Additional arguments passed to or from other functions |
Value
An object of class fpca
containing:
fpca_type |
Information that FPCA was performed with the 'variationEM' approach, in contrast to registr::gfpca_twoStep. |
t_vec |
Time vector over which the mean |
knots |
Cutpoints for B-spline basis used to rebuild |
efunctions |
|
evalues |
Estimated variance of the FPC scores. |
evalues_sum |
Approximation of the overall variance in |
npc |
number of FPCs. |
scores |
|
alpha |
Estimated population-level mean. |
mu |
Estimated population-level mean. Same value as |
subject_coefs |
B-spline basis coefficients used to construct subject-specific means.
For use in |
Yhat |
FPC approximation of subject-specific means. |
Y |
The observed data. |
family |
|
sigma2 |
Estimated error variance |
Author(s)
Julia Wrobel julia.wrobel@cuanschutz.edu, Jeff Goldsmith ajg2202@cumc.columbia.edu, Alexander Bauer alexander.bauer@stat.uni-muenchen.de
References
Tipping, M. E. and Bishop, C (1999). Probabilistic Principal Component Analysis. Journal of the Royal Statistical Society Series B,, 592–598.
Examples
data(growth_incomplete)
# estimate 2 FPCs
fpca_obj = fpca_gauss(Y = growth_incomplete, npc = 2)
plot(fpca_obj)
# estimate npc adaptively, to explain 90% of the overall variation
fpca_obj2 = fpca_gauss(Y = growth_incomplete, npc_varExplained = 0.9)
plot(fpca_obj, plot_FPCs = 1:2)