Description Usage Arguments Details Value Author(s) References See Also Examples
Performs the testing procedures for the oneway analysis of variance for (univariate) functional data (FANOVA). See Section 2.1 of the vignette file (vignette("fdANOVA", package = "fdANOVA")
), for details of the tests.
We consider the l groups of independent random functions X_{ij}(t), i=1,…,l, j=1,…,n_i defined over a closed and bounded interval I=[a,b]. Let n=n_1+…+n_l. These groups may differ in mean functions, i.e., we assume that X_{ij}(t), j=1,…,n_i are stochastic processes with mean function μ_i(t), t\in I and covariance function γ(s, t), s,t\in I, for i=1,…,l. Of interest is to test the following null hypothesis
H_0:μ_1(t)=…=μ_l(t),\ t\in I.
The alternative is the negation of the null hypothesis. We assume that each functional observation is observed on a common grid of \mathcal{T} design time points equally spaced in I (see Section 3.1 of the vignette file, vignette("fdANOVA", package = "fdANOVA")
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  fanova.tests(x = NULL, group.label, test = "ALL",
params = NULL,
parallel = FALSE, nslaves = NULL)
# more detailed usage of params:
# params = list(paramFP = list(int, B.FP = 1000,
# basis = c("Fourier", "bspline", "own"),
# own.basis, own.cross.prod.mat,
# criterion = c("BIC", "eBIC", "AIC", "AICc", "NO"),
# commonK = c("mode", "min", "max", "mean"),
# minK = NULL, maxK = NULL, norder = 4, gamma.eBIC = 0.5)
# paramCH = 10000,
# paramCS = 10000,
# paramL2b = 10000,
# paramFb = 10000,
# paramFmaxb = 10000,
# paramTRP = list(k = 30, projection = c("GAUSS", "BM"),
# permutation = FALSE, B.TRP = 10000,
# independent.projection.tests = TRUE))

x 
a \mathcal{T}\times n matrix of data, whose each column is a discretized version of a function and rows correspond to design time points. Its default values is 
group.label 
a vector containing group labels. 
test 
a kind of indicator which establishes a choice of FANOVA tests to be performed. Its default value means that all testing procedures of Section 2.1 of the vignette file will be used. When we want to use only some tests, the parameter 
params 
a list of additional parameters for the FP, CH, CS, L^2b, Fb, Fmaxb tests and the tests based on random projections. It can contain all or a part of the elements 
paramFP 
a list containing the parameters for the FP test. 
int 
a vector of two elements representing the interval I=[a,b]. When it is not specified, it is determined by a number of design time points. 
B.FP 
a number of permutation replicates for the FP tests. 
basis 
a choice of basis of functions used in the basis function representation of the data. 
own.basis 
if 
own.cross.prod.mat 
if 
criterion 
a choice of information criterion for selecting the optimum value of K.
\code{BIC}(X_{ij})=\mathcal{T}\log(\mathbf{e}_{ij}^{\top}\mathbf{e}_{ij}/\mathcal{T})+K\log\mathcal{T}, \code{eBIC}(X_{ij})=\mathcal{T}\log(\mathbf{e}_{ij}^{\top}\mathbf{e}_{ij}/\mathcal{T})+K[\log\mathcal{T}+2γ\log(K_{\max})], \code{AIC}(X_{ij})=\mathcal{T}\log(\mathbf{e}_{ij}^{\top}\mathbf{e}_{ij}/\mathcal{T})+2K and \code{AICc}(X_{ij})=\code{AIC}(X_{ij})+2K(K + 1)/(nK1), where \mathbf{e}_{ij}=(e_{ij1},…,e_{ij\mathcal{T}})^{\top}, e_{ijr}=X_{ij}(t_r)∑_{m=1}^K\hat{c}_{ijm}\varphi_m(t_r), t_1,…,t_{\mathcal{T}} are the design time points, γ\in[0,1], K_{\max} is a maximum K considered and \log denotes the natural logarithm. 
commonK 
a choice of method for selecting the common value for all observations from the values of K corresponding to all processes. 
minK 
a minimum value of K. When 
maxK 
a maximum value of K. When 
norder 
if 
gamma.eBIC 
a γ\in[0,1] parameter in the eBIC. 
paramCH 
a number of discretized artificial trajectories for generating Gaussian processes for the CH test. 
paramCS 
a number of discretized artificial trajectories for generating Gaussian processes for the CS test. 
paramL2b 
a number of bootstrap samples for the L^2b test. 
paramFb 
a number of bootstrap samples for the Fb test. 
paramFmaxb 
a number of bootstrap samples for the Fmaxb test. 
paramTRP 
a list containing the parameters of the tests based on random projections. 
k 
a vector of numbers of projections. 
projection 
a method of generating Gaussian processes in step 1 of the tests based on random projections presented in Section 2 of the vignette file. If 
permutation 
a logical indicating whether to compute pvalues of the tests based on random projections by permutation method. 
B.TRP 
a number of permutation replicates for the tests based on random projections. 
independent.projection.tests 
a logical indicating whether to generate the random projections independently or dependently for different elements of vector 
parallel 
a logical indicating whether to use parallelization. 
nslaves 
if 
To perform step 3 of the projection procedure given in Section 2.1 of the vignette file, we use five tests: the standard (paramTRP$permutation = FALSE
) and permutation (paramTRP$permutation
= TRUE
) tests based on ANOVA Ftest statistic and ANOVAtype statistic (ATS) proposed by Brunner et al. (1997), as well as the testing procedure based on Waldtype permutation statistic (WTPS) of Pauly et al. (2015).
A list with class "fanovatests" containing the following components (k
 denotes the length of vector k
):
FP 
a list containing value of test statistic 
CH 
a list containing value of test statistic 
CS 
a list containing value of test statistic 
L2N 
a list containing value of test statistic 
L2B 
a list containing value of test statistic 
L2b 
a list containing value of test statistic 
FN 
a list containing value of test statistic 
FB 
a list containing value of test statistic 
Fb 
a list containing value of test statistic 
GPF 
a list containing value of test statistic 
Fmaxb 
a list containing value of test statistic 
TRP 
a list containing the following elements: vectors 
and the values of other used parameters: data = x
, group.label
, etc.
Tomasz Gorecki, Lukasz Smaga
Brunner E, Dette H, Munk A (1997). BoxType Approximations in Nonparametric Factorial Designs. Journal of the American Statistical Association 92, 14941502.
CuestaAlbertos JA, FebreroBande M (2010). A Simple Multiway ANOVA for Functional Data. Test 19, 537557.
Cuevas A, Febrero M, Fraiman R (2004). An Anova Test for Functional Data. Computational Statistics & Data Analysis 47, 111122.
Faraway J (1997). Regression Analysis for a Functional Response. Technometrics 39, 254261.
Gorecki T, Smaga L (2015). A Comparison of Tests for the OneWay ANOVA Problem for Functional Data. Computational Statistics 30, 9871010.
Gorecki T, Smaga L (2017). Multivariate Analysis of Variance for Functional Data. Journal of Applied Statistics 44, 21722189.
Pauly M, Brunner E, Konietschke F (2015). Asymptotic Permutation Tests in General Factorial Designs. Journal of the Royal Statistical Society Series B 77, 461473.
Shen Q, Faraway J (2004). An F Test for Linear Models with Functional Responses. Statistica Sinica 14, 12391257.
Zhang JT (2011). Statistical Inferences for Linear Models with Functional Responses. Statistica Sinica 21, 14311451.
Zhang JT (2013). Analysis of Variance for Functional Data. Chapman & Hall, London.
Zhang JT, Chen JW (2007). Statistical Inferences for Functional Data. The Annals of Statistics 35, 10521079.
Zhang JT, Cheng MY, Wu HT, Zhou B (2018). A New Test for Functional Oneway ANOVA with Applications to Ischemic Heart Screening. Computational Statistics and Data Analysis https://doi.org/10.1016/j.csda.2018.05.004
Zhang JT, Liang X (2014). OneWay ANOVA for Functional Data via Globalizing the Pointwise FTest. Scandinavian Journal of Statistics 41, 5171.
fmanova.ptbfr
, fmanova.trp
, plotFANOVA
, plot.fanovatests
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68  # Some of the examples may run some time.
# gait data (the first feature)
library(fda)
gait.data.frame < as.data.frame(gait)
x.gait < as.matrix(gait.data.frame[, 1:39])
# vector of group labels
group.label.gait < rep(1:3, each = 13)
# all FANOVA tests with default parameters
set.seed(123)
(fanova1 < fanova.tests(x = x.gait, group.label = group.label.gait))
summary(fanova1)
# data projections generated in the test based on random projections
fanova1$TRP$data.projections
# only three tests with nondefault parameters
set.seed(123)
fanova2 < fanova.tests(x.gait, group.label.gait,
test = c("FP", "GPF", "Fmaxb"),
params = list(paramFP = list(int = c(0.025, 0.975),
B.FP = 1000, basis = "bspline",
criterion = "eBIC",
commonK = "mean",
minK = 5, maxK = 20,
norder = 4, gamma.eBIC = 0.7),
paramFmaxb = 1000))
summary(fanova2)
# the FP test with predefined basis function representation
library(fda)
fbasis < create.bspline.basis(rangeval = c(0.025, 0.975), 19, norder = 4)
own.basis < Data2fd(seq(0.025, 0.975, length = 20), x.gait, fbasis)$coefs
own.cross.prod.mat < inprod(fbasis, fbasis)
set.seed(123)
fanova3 < fanova.tests(group.label = group.label.gait, test = "FP",
params = list(paramFP = list(B.FP = 1000, basis = "own",
own.basis = own.basis,
own.cross.prod.mat = own.cross.prod.mat)))
summary(fanova3)
# the tests based on random projections with the Gaussian white noise generated for projections
set.seed(123)
fanova4 < fanova.tests(x.gait, group.label.gait, test = "TRP",
parallel = TRUE, nslaves = 2,
params = list(paramTRP = list(k = c(10, 20, 30), B.TRP = 1000)))
summary(fanova4)
set.seed(123)
fanova5 < fanova.tests(x.gait, group.label.gait, test = "TRP",
parallel = TRUE, nslaves = 2,
params = list(paramTRP = list(k = c(10, 20, 30),
permutation = TRUE, B.TRP = 1000)))
summary(fanova5)
# the tests based on random projections with the Brownian motion generated for projections
set.seed(123)
fanova6 < fanova.tests(x.gait, group.label.gait, test = "TRP",
parallel = TRUE, nslaves = 2,
params = list(paramTRP = list(k = c(10, 20, 30), projection = "BM",
B.TRP = 1000)))
summary(fanova6)
set.seed(123)
fanova7 < fanova.tests(x.gait, group.label.gait, test = "TRP",
parallel = TRUE, nslaves = 2,
params = list(paramTRP = list(k = c(10, 20, 30), projection = "BM",
permutation = TRUE, B.TRP = 1000)))
summary(fanova7)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.