Decomposes functional observations using functional principal components analysis. A mixed model framework is used to estimate scores and obtain variance estimates.

```
mfpca.sc(
Y = NULL,
id = NULL,
visit = NULL,
twoway = FALSE,
argvals = NULL,
nbasis = 10,
pve = 0.99,
npc = NULL,
makePD = FALSE,
center = TRUE,
cov.est.method = 2,
integration = "trapezoidal"
)
```

Y,

The user must supply a matrix of functions on a regular grid

id

Must be supplied, a vector containing the id information used to identify clusters

visit

A vector containing information used to identify visits. Defaults to `NULL`

.

twoway

logical, indicating whether to carry out twoway ANOVA and calculate visit-specific means. Defaults to `FALSE`

.

argvals

function argument.

nbasis

number of B-spline basis functions used for estimation of the mean function and bivariate smoothing of the covariance surface.

pve

proportion of variance explained: used to choose the number of principal components.

npc

prespecified value for the number of principal components (if
given, this overrides `pve`

).

makePD

logical: should positive definiteness be enforced for the
covariance surface estimate? Defaults to `FALSE`

Only `FALSE`

is currently supported.

center

logical: should an estimated mean function be subtracted from
`Y`

? Set to `FALSE`

if you have already demeaned the data using
your favorite mean function estimate.

cov.est.method

covariance estimation method. If set to `1`

, a
one-step method that applies a bivariate smooth to the \(y(s_1)y(s_2)\)
values. This can be very slow. If set to `2`

(the default), a two-step
method that obtains a naive covariance estimate which is then smoothed. `2`

is currently supported.

integration

quadrature method for numerical integration; only
`"trapezoidal"`

is currently supported.

An object of class `mfpca`

containing:

FPC approximation (projection onto leading components)
of `Y`

, estimated curves for all subjects and visits

estimated subject specific curves for all subjects

the observed data

\(n \times npc\) matrix of estimated FPC scores for level1 and level2.

estimated mean
function (or a vector of zeroes if `center==FALSE`

).

\(d \times npc\) matrix of estimated eigenfunctions of the functional covariance, i.e., the FPC basis functions for levels 1 and 2.

estimated eigenvalues of the covariance operator, i.e., variances of FPC scores for levels 1 and 2.

number of FPCs: either the supplied `npc`

, or the minimum
number of basis functions needed to explain proportion `pve`

of the
variance in the observed curves for levels 1 and 2.

estimated measurement error variance.

the estimated visit specific shifts from overall mean.

This function computes a multilevel FPC decomposition for a set of observed curves, which may be sparsely observed and/or measured with error. A mixed model framework is used to estimate level 1 and level 2 scores.

MFPCA was proposed in Di et al. (2009), with variations for
MFPCA with sparse data in Di et al. (2014).
`mfpca.sc`

uses penalized splines to smooth the covariance functions, as
Described in Di et al. (2009) and Goldsmith et al. (2013).

Di, C., Crainiceanu, C., Caffo, B., and Punjabi, N. (2009).
Multilevel functional principal component analysis. *Annals of Applied
Statistics*, 3, 458--488.

Di, C., Crainiceanu, C., Caffo, B., and Punjabi, N. (2014).
Multilevel sparse functional principal component analysis. *Stat*, 3, 126--143.

Goldsmith, J., Greven, S., and Crainiceanu, C. (2013). Corrected confidence
bands for functional data using principal components. *Biometrics*,
69(1), 41--51.

# NOT RUN { # } # NOT RUN { data(DTI) DTI = subset(DTI, Nscans < 6) ## example where all subjects have 6 or fewer visits id = DTI$ID Y = DTI$cca mfpca.DTI = mfpca.sc(Y=Y, id = id, twoway = TRUE) # }