- nobs_per_subj
The number of observations per subject. Each element of it must be greater than 3.
It could also be a vector to indicate that the number of observation for each is randomly varying
between the elements of the vector, or a scalar to ensure that the number of observations are same
for each subject. See examples.
- obs.design
The sampling design of the observations. Must be provided as
a list with the following elements. If the design is longitudinal (e.g. a clinical trial
where there is pre-specified schedule of visit for the participants) it must be
a named list with elements design, visit.schedule and visit.window, where
obs.design$design must be specified as 'longitudinal', visit.schedule
specifying schedule of visits (in months or days or any unit of time), other than the baseline visit
and visit.window denoting the maximum time window for every visit.
For functional design (where the observation points are either densely observed within a
compact interval or under a sparse random design), the argument must be provided
as a named list with elements design and fun.domain, where
obs.design$design must be specified as 'functional' and obs.design$fun.domain
must be specified as a two length vector indicating the domain of the function.
See Details on the specification of arguments section below more details.
- mean_diff_fnm
The name of the function that output of the difference of the mean between the
two groups at any given time. It must be supplied as character, so that match.fun(mean_diff_fnm)
returns a valid function, that takes a vector input, and returns a vector of the same length of the input.
- cov.type
The type of the covariance structure of the data, must be either of 'ST' (stationary) or
'NS' (non-stationary). This argument along with the cov.par argument must be
specified compatibly to ensure that the function does not return an error. See the details
of cov.par argument.
- cov.par
The covariance structure of the latent response trajectory.
If cov.type == 'ST' then, cov.par
must be specified a named list of two elements, var and cor,
where var is the common variance of the observations, which must be a
positive number; and cor specifies the correlation structure between
the observations. cov.par$cor must be specified in the form of the
nlme::corClasses specified in R package nlme.
Check the package documentation for more details for each of the correlation classes.
The cov.par$cor must be a corStruct class so it can be
passed onto the nlme::corMatrix() to extract the subject-specific covariance matrix.
If cov.type='NS' then, cov.par
must be a named list of two elements, cov.obj and eigen.comp,
where only one of the cov.par$cov.obj or cov.par$eigen.comp
must be non-null. This is to specify that the covariance structure of the
latent trajectory can be either provided in the form of covariance function or
in the form of eigenfunction and eigenvalues (Spectral decomposition).
If the cov.par$cov.obj is specified, then it must be a bivariate function,
with two arguments. Alternatively, if the true eigenfunctions are known,
then the user can specify that by specifying cov.par$eigen.comp.
In this case, the cov.par$eigen.comp must be a named list with two elements,
eig.obj and eig.val, where cov.par$eigen.comp$eig.val
must be positive vector and cov.par$eigen.comp$eig.obj
must be a vectorized function so that its evaluation at a vector of time points
returns a matrix of dimension r by length(cov.par$eigen.comp$eig.val),
with r being the length of time points.
- sigma2.e
Measurement error variance, should be set as zero or a very small number
if the measurement error is not significant.
- missing_type
The type of missing in the number of observations of the subjects. Can be one of
'nomiss' for no missing observations
or 'constant' for constant
missing percentage at every time point. The current version of package only supports
missing_type = 'constant'.
- missing_percent
The percentage of missing at each observation points for each subject.
Must be supplied as number between [0, 0.8], as missing percentage more than 80% is not practical.
If nobs_per_subj is supplied as vector, then missing_type
is forced to set as 'nomiss' and missing_percent = 0, because
the missing_type = 'constant' has no meaning if the number of observations are
varying between the subject at the first, typically considered in
the case of sparse random functional design.
- eval_SS
The sample size based on which the eigencomponents will be estimated from data.
To compute the theoretical power of the test we must make sure that we use a large enough sample size
to generate the data such that the estimated eigenfunctions are very close to the true eigenfunctions
and that the sampling design will not have much effect on the loss of precision. Default value 5000.
- alloc.ratio
The allocation ratio of samples in the each group. Note that the eigenfunctions
will still be estimated based on the total sample_size, however, the variance
of the shrinkage scores (which is required to compute the power function) will be
estimated based on the allocation of the samples in each group. Must be given as vector of
length 2. Default value is set at c(1, 1), indicating equal sample size.
- fpca_method
The method by which the FPCA is computed. Must be one of
'fpca.sc' and 'face'. If fpca_method == 'fpca.sc' then the eigencomponents
are estimated using the function refund::fpca.sc(). However, since the refund::fpca.sc()
function fails to estimate the correct shrinkage scores, and throws NA values
when the measurement errors is estimated to be zero, we wrote out a similar function
where we corrected those error in current version of refund::fpca.sc(). Check out
the fpca_sc() function for details. If fpca_method == 'face', then
the eigencomponents are estimated using face::face.sparse() function.
- work.grid
The working grid in the domain of the functions, where the eigenfunctions
and other covariance components will be estimated. Default is NULL, then, a equidistant
grid points of length nWgrid will be internally created to as the default work.grid.
- nWgrid
The length of the work.grid in the domain of the function based on which
the eigenfunctions will be estimated. Default value is 101. If work.grid
is specified, then nWgrid must be null, and vice-versa.
- data.driven.scores
Indicates whether the scores are estimated from the full data, WITHOUT
assuming the mean function is unknown, rather the mean function is estimated using
mgcv::gam() function.
- mean_diff_add_args
Additional arguments to be passed to group difference
function specified in the argument mean_diff_fnm.
- fpca_optns
Additional options to be passed onto either of fpca_sc()
or face::face.sparse() function in order
to estimate the eigencomponents. It must be a named list with elements
to be passed onto the respective function, depending on the fpca_method.
The names of the list must not match either of
c('data', 'newdata', 'argvals.new')
for fpca_method == 'face' and must not match either of
c('ydata', 'Y.pred') for fpca_method == 'fpca.sc'.