59 |
59 |
|
#' different (dimensional) domains |
60 |
60 |
|
#' |
61 |
61 |
|
#' This function calculates a multivariate functional principal component |
62 |
|
- |
#' analysis (MFPCA) based on i.i.d. observations \eqn{x_1, \ldots, x_N} of |
63 |
|
- |
#' a multivariate functional data-generating process \eqn{X = (X^{(1)}, |
64 |
|
- |
#' \ldots X^{(p)})}{X = X^(1), \ldots, X^(p)} with elements \eqn{X^{(j)} |
65 |
|
- |
#' \in L^2(\mathcal{T}_j)}{X^(j) in L^2(calT_j)} defined on a domain |
66 |
|
- |
#' \eqn{\mathcal{T}_j \subset IR^{d_j}}{calT_j of IR^{d_j}}. In |
67 |
|
- |
#' particular, the elements can be defined on different (dimensional) |
68 |
|
- |
#' domains. The results contain the mean function, the estimated |
69 |
|
- |
#' multivariate functional principal components \eqn{\hat \psi_1, \ldots, |
70 |
|
- |
#' \hat \psi_M} (having the same structure as \eqn{x_i}), the associated |
71 |
|
- |
#' eigenvalues \eqn{\hat \nu_1 \geq \ldots \geq \hat \nu_M > 0} and the |
72 |
|
- |
#' individual scores \eqn{\hat \rho_{im} = \widehat{<x_i, \psi_m>}}{\hat |
73 |
|
- |
#' \rho_{im} = \hat{<x_i, \psi_m>}}. Moreover, estimated trajectories for |
74 |
|
- |
#' each observation based on the truncated Karhunen-Loeve representation |
75 |
|
- |
#' \deqn{\hat x_i = \sum_{m = 1}^M \hat \rho_{im} \hat \psi_m}{\hat x_i = |
76 |
|
- |
#' \sum_{m = 1}^M \hat \rho_{im} \hat \psi_m} are given if desired |
77 |
|
- |
#' (\code{fit = TRUE}). The implementation of the observations \eqn{x_i = |
78 |
|
- |
#' (x_i^{(1)}, \ldots , x_i^{(p)}),~ i = 1 , \ldots, N}{x_i = (x_i^(1), |
79 |
|
- |
#' \ldots , x_i^(p)), i = 1 , \ldots, N}, the mean function and |
80 |
|
- |
#' multivariate functional principal components \eqn{\hat \psi_1, \ldots, |
81 |
|
- |
#' \hat \psi_M} uses the \code{\link[funData]{multiFunData}} class, which |
82 |
|
- |
#' is defined in the package \pkg{funData}. |
|
62 |
+ |
#' analysis (MFPCA) based on i.i.d. observations \eqn{x_1, \ldots, x_N} of a |
|
63 |
+ |
#' multivariate functional data-generating process \eqn{X = (X^{(1)}, \ldots |
|
64 |
+ |
#' X^{(p)})}{X = X^(1), \ldots, X^(p)} with elements \eqn{X^{(j)} \in |
|
65 |
+ |
#' L^2(\mathcal{T}_j)}{X^(j) in L^2(calT_j)} defined on a domain |
|
66 |
+ |
#' \eqn{\mathcal{T}_j \subset IR^{d_j}}{calT_j of IR^{d_j}}. In particular, the |
|
67 |
+ |
#' elements can be defined on different (dimensional) domains. The results |
|
68 |
+ |
#' contain the mean function, the estimated multivariate functional principal |
|
69 |
+ |
#' components \eqn{\hat \psi_1, \ldots, \hat \psi_M} (having the same structure |
|
70 |
+ |
#' as \eqn{x_i}), the associated eigenvalues \eqn{\hat \nu_1 \geq \ldots \geq |
|
71 |
+ |
#' \hat \nu_M > 0} and the individual scores \eqn{\hat \rho_{im} = |
|
72 |
+ |
#' \widehat{<x_i, \psi_m>}}{\hat \rho_{im} = \hat{<x_i, \psi_m>}}. Moreover, |
|
73 |
+ |
#' estimated trajectories for each observation based on the truncated |
|
74 |
+ |
#' Karhunen-Loeve representation \deqn{\hat x_i = \sum_{m = 1}^M \hat \rho_{im} |
|
75 |
+ |
#' \hat \psi_m}{\hat x_i = \sum_{m = 1}^M \hat \rho_{im} \hat \psi_m} are given |
|
76 |
+ |
#' if desired (\code{fit = TRUE}). The implementation of the observations |
|
77 |
+ |
#' \eqn{x_i = (x_i^{(1)}, \ldots , x_i^{(p)}),~ i = 1 , \ldots, N}{x_i = |
|
78 |
+ |
#' (x_i^(1), \ldots , x_i^(p)), i = 1 , \ldots, N}, the mean function and |
|
79 |
+ |
#' multivariate functional principal components \eqn{\hat \psi_1, \ldots, \hat |
|
80 |
+ |
#' \psi_M} uses the \code{\link[funData]{multiFunData}} class, which is defined |
|
81 |
+ |
#' in the package \pkg{funData}. |
83 |
82 |
|
#' |
84 |
|
- |
#' \subsection{Weighted MFPCA}{If the elements vary considerably in |
85 |
|
- |
#' domain, range or variation, a weight vector \eqn{w_1 , \ldots, w_p} can |
86 |
|
- |
#' be supplied and the MFPCA is based on the weighted scalar product |
87 |
|
- |
#' \deqn{<<f,g>>_w = \sum_{j = 1}^p w_j \int_{\mathcal{T}_j} f^{(j)}(t) |
88 |
|
- |
#' g^{(j)}(t) \mathrm{d} t}{<<f,g>>_w = \sum_{j = 1}^p w_j \int_\calT_j |
89 |
|
- |
#' f^(j)(t) g^(j)(t) d t} and the corresponding weighted covariance |
90 |
|
- |
#' operator \eqn{\Gamma_w}.} |
|
83 |
+ |
#' \subsection{Weighted MFPCA}{If the elements vary considerably in domain, |
|
84 |
+ |
#' range or variation, a weight vector \eqn{w_1 , \ldots, w_p} can be supplied |
|
85 |
+ |
#' and the MFPCA is based on the weighted scalar product \deqn{<<f,g>>_w = |
|
86 |
+ |
#' \sum_{j = 1}^p w_j \int_{\mathcal{T}_j} f^{(j)}(t) g^{(j)}(t) \mathrm{d} |
|
87 |
+ |
#' t}{<<f,g>>_w = \sum_{j = 1}^p w_j \int_\calT_j f^(j)(t) g^(j)(t) d t} and the |
|
88 |
+ |
#' corresponding weighted covariance operator \eqn{\Gamma_w}.} |
91 |
89 |
|
#' |
92 |
90 |
|
#' \subsection{Bootstrap}{If \code{bootstrap = TRUE}, pointwise bootstrap |
93 |
|
- |
#' confidence bands are generated for the multivariate eigenvalues |
94 |
|
- |
#' \eqn{\hat \nu_1, \ldots, \hat \nu_M } as well as for multivariate |
95 |
|
- |
#' functional principal components \eqn{\hat \psi_1, \ldots, \hat |
96 |
|
- |
#' \psi_M}{\hat \psi_1, \ldots, \hat \psi_M}. The parameter |
97 |
|
- |
#' \code{nBootstrap} gives the number of bootstrap iterations. In each |
98 |
|
- |
#' iteration, the observations are resampled on the level of |
99 |
|
- |
#' (multivariate) functions and the whole MFPCA is recalculated. In |
100 |
|
- |
#' particular, if the univariate basis depends on the data (FPCA |
101 |
|
- |
#' approaches), basis functions and scores are both re-estimated. If the |
102 |
|
- |
#' basis functions are fixed (e.g. splines), the scores from the original |
103 |
|
- |
#' estimate are used to speed up the calculations. The confidence bands |
104 |
|
- |
#' for the eigenfunctions are calculated separately for each element as |
105 |
|
- |
#' pointwise percentile bootstrap confidence intervals. Analogously, the |
106 |
|
- |
#' confidence bands for the eigenvalues are also percentile bootstrap |
107 |
|
- |
#' confidence bands. The significance level(s) can be defined by the |
108 |
|
- |
#' \code{bootstrapAlpha} parameter, which defaults to 5\%. As a result, |
109 |
|
- |
#' the \code{MFPCA} function returns a list \code{CI} of the same length |
|
91 |
+ |
#' confidence bands are generated for the multivariate eigenvalues \eqn{\hat |
|
92 |
+ |
#' \nu_1, \ldots, \hat \nu_M } as well as for multivariate functional principal |
|
93 |
+ |
#' components \eqn{\hat \psi_1, \ldots, \hat \psi_M}{\hat \psi_1, \ldots, \hat |
|
94 |
+ |
#' \psi_M}. The parameter \code{nBootstrap} gives the number of bootstrap |
|
95 |
+ |
#' iterations. In each iteration, the observations are resampled on the level of |
|
96 |
+ |
#' (multivariate) functions and the whole MFPCA is recalculated. In particular, |
|
97 |
+ |
#' if the univariate basis depends on the data (FPCA approaches), basis |
|
98 |
+ |
#' functions and scores are both re-estimated. If the basis functions are fixed |
|
99 |
+ |
#' (e.g. splines), the scores from the original estimate are used to speed up |
|
100 |
+ |
#' the calculations. The confidence bands for the eigenfunctions are calculated |
|
101 |
+ |
#' separately for each element as pointwise percentile bootstrap confidence |
|
102 |
+ |
#' intervals. Analogously, the confidence bands for the eigenvalues are also |
|
103 |
+ |
#' percentile bootstrap confidence bands. The significance level(s) can be |
|
104 |
+ |
#' defined by the \code{bootstrapAlpha} parameter, which defaults to 5\%. As a |
|
105 |
+ |
#' result, the \code{MFPCA} function returns a list \code{CI} of the same length |
110 |
106 |
|
#' as \code{bootstrapAlpha}, containing the lower and upper bounds of the |
111 |
|
- |
#' confidence bands for the principal components as \code{multiFunData} |
112 |
|
- |
#' objects of the same structure as \code{mFData}. The confidence bands |
113 |
|
- |
#' for the eigenvalues are returned in a list \code{CIvalues}, containing |
114 |
|
- |
#' the upper and lower bounds for each significance level.} |
|
107 |
+ |
#' confidence bands for the principal components as \code{multiFunData} objects |
|
108 |
+ |
#' of the same structure as \code{mFData}. The confidence bands for the |
|
109 |
+ |
#' eigenvalues are returned in a list \code{CIvalues}, containing the upper and |
|
110 |
+ |
#' lower bounds for each significance level.} |
115 |
111 |
|
#' |
116 |
112 |
|
#' |
117 |
|
- |
#' \subsection{Univariate Expansions}{The multivariate functional |
118 |
|
- |
#' principal component analysis relies on a univariate basis expansion for |
119 |
|
- |
#' each element \eqn{X^{(j)}}{X^(j)}. The univariate basis representation |
120 |
|
- |
#' is calculated using the \code{\link{univDecomp}} function, that passes |
121 |
|
- |
#' the univariate functional observations and optional parameters to the |
122 |
|
- |
#' specific function. The univariate decompositions are specified via the |
123 |
|
- |
#' \code{uniExpansions} argument in the \code{MFPCA} function. It is a |
124 |
|
- |
#' list of the same length as the \code{mFData} object, i.e. having one |
125 |
|
- |
#' entry for each element of the multivariate functional data. For each |
126 |
|
- |
#' element, \code{uniExpansion} must specify at least the type of basis |
127 |
|
- |
#' functions to use. Additionally, one may add further parameters. The |
128 |
|
- |
#' following basis representations are supported: \itemize{\item Given |
129 |
|
- |
#' basis functions. Then \code{uniExpansions[[j]] = list(type = "given", |
130 |
|
- |
#' functions, scores, ortho)}, where \code{functions} is a \code{funData} |
131 |
|
- |
#' object on the same domain as \code{mFData}, containing the given basis |
132 |
|
- |
#' functions. The parameters \code{scores} and \code{ortho} are optional. |
133 |
|
- |
#' \code{scores} is an \code{N x K} matrix containing the scores (or |
134 |
|
- |
#' coefficients) of the observed functions for the given basis functions, |
135 |
|
- |
#' where \code{N} is the number of observed functions and \code{K} is the |
136 |
|
- |
#' number of basis functions. If this is not supplied, the scores are |
137 |
|
- |
#' calculated. The parameter \code{ortho} specifies whether the given |
138 |
|
- |
#' basis functions are orthonormal \code{orhto = TRUE} or not \code{ortho |
139 |
|
- |
#' = FALSE}. If \code{ortho} is not supplied, the functions are treated as |
140 |
|
- |
#' non-orthogonal. \code{scores} and \code{ortho} are not checked for |
141 |
|
- |
#' plausibility, use them on your own risk! \item Univariate functional |
142 |
|
- |
#' principal component analysis. Then \code{uniExpansions[[j]] = list(type |
143 |
|
- |
#' = "uFPCA", nbasis, pve, npc, makePD)}, where |
144 |
|
- |
#' \code{nbasis,pve,npc,makePD} are parameters passed to the |
|
113 |
+ |
#' \subsection{Univariate Expansions}{The multivariate functional principal |
|
114 |
+ |
#' component analysis relies on a univariate basis expansion for each element |
|
115 |
+ |
#' \eqn{X^{(j)}}{X^(j)}. The univariate basis representation is calculated using |
|
116 |
+ |
#' the \code{\link{univDecomp}} function, that passes the univariate functional |
|
117 |
+ |
#' observations and optional parameters to the specific function. The univariate |
|
118 |
+ |
#' decompositions are specified via the \code{uniExpansions} argument in the |
|
119 |
+ |
#' \code{MFPCA} function. It is a list of the same length as the \code{mFData} |
|
120 |
+ |
#' object, i.e. having one entry for each element of the multivariate functional |
|
121 |
+ |
#' data. For each element, \code{uniExpansion} must specify at least the type of |
|
122 |
+ |
#' basis functions to use. Additionally, one may add further parameters. The |
|
123 |
+ |
#' following basis representations are supported: \itemize{\item Given basis |
|
124 |
+ |
#' functions. Then \code{uniExpansions[[j]] = list(type = "given", functions, |
|
125 |
+ |
#' scores, ortho)}, where \code{functions} is a \code{funData} object on the |
|
126 |
+ |
#' same domain as \code{mFData}, containing the given basis functions. The |
|
127 |
+ |
#' parameters \code{scores} and \code{ortho} are optional. \code{scores} is an |
|
128 |
+ |
#' \code{N x K} matrix containing the scores (or coefficients) of the observed |
|
129 |
+ |
#' functions for the given basis functions, where \code{N} is the number of |
|
130 |
+ |
#' observed functions and \code{K} is the number of basis functions. Note that |
|
131 |
+ |
#' the scores need to be demeaned to give meaningful results. If scores are not |
|
132 |
+ |
#' supplied, they are calculated using the given basis functions. The parameter |
|
133 |
+ |
#' \code{ortho} specifies whether the given basis functions are orthonormal |
|
134 |
+ |
#' \code{orhto = TRUE} or not \code{ortho = FALSE}. If \code{ortho} is not |
|
135 |
+ |
#' supplied, the functions are treated as non-orthogonal. \code{scores} and |
|
136 |
+ |
#' \code{ortho} are not checked for plausibility, use them at your own risk! |
|
137 |
+ |
#' \item Univariate functional principal component analysis. Then |
|
138 |
+ |
#' \code{uniExpansions[[j]] = list(type = "uFPCA", nbasis, pve, npc, makePD)}, |
|
139 |
+ |
#' where \code{nbasis,pve,npc,makePD} are parameters passed to the |
145 |
140 |
|
#' \code{\link{PACE}} function for calculating the univariate functional |
146 |
141 |
|
#' principal component analysis. \item Basis functions expansions from the |
147 |
|
- |
#' package \pkg{fda}. Then \code{uniExpansions[[j]] = list(type = "fda", |
148 |
|
- |
#' ...)}, where \code{...} are passed to |
149 |
|
- |
#' \code{\link[funData]{funData2fd}}, which heavily builds on |
150 |
|
- |
#' \code{\link[fda]{eval.fd}}. If \pkg{fda} is not available, a warning is |
151 |
|
- |
#' thrown. \item Spline basis functions (not penalized). Then |
|
142 |
+ |
#' package \pkg{fda}. Then \code{uniExpansions[[j]] = list(type = "fda", ...)}, |
|
143 |
+ |
#' where \code{...} are passed to \code{\link[funData]{funData2fd}}, which |
|
144 |
+ |
#' heavily builds on \code{\link[fda]{eval.fd}}. If \pkg{fda} is not available, |
|
145 |
+ |
#' a warning is thrown. \item Spline basis functions (not penalized). Then |
152 |
146 |
|
#' \code{uniExpansions[[j]] = list(type = "splines1D", bs, m, k)}, where |
153 |
147 |
|
#' \code{bs,m,k} are passed to the functions \code{\link{univDecomp}} and |
154 |
|
- |
#' \code{\link{univExpansion}}. For two-dimensional tensor product |
155 |
|
- |
#' splines, use \code{type = "splines2D"}. \item Spline basis functions |
156 |
|
- |
#' (with smoothness penalty). Then \code{uniExpansions[[j]] = list(type = |
157 |
|
- |
#' "splines1Dpen", bs, m, k)}, where \code{bs,m,k} are passed to the |
158 |
|
- |
#' functions \code{\link{univDecomp}} and \code{\link{univExpansion}}. |
159 |
|
- |
#' Analogously to the unpenalized case, use \code{type = "splines2Dpen"} |
160 |
|
- |
#' for 2D penalized tensor product splines. \item Cosine basis functions. |
161 |
|
- |
#' Use \code{uniExpansions[[j]] = list(type = "DCT2D", qThresh, parallel)} |
162 |
|
- |
#' for functions one two-dimensional domains (images) and \code{type = |
163 |
|
- |
#' "DCT3D"} for 3D images. The calculation is based on the discrete cosine |
164 |
|
- |
#' transform (DCT) implemented in the C-library \code{fftw3}. If this |
165 |
|
- |
#' library is not available, the function will throw a warning. |
166 |
|
- |
#' \code{qThresh} gives the quantile for hard thresholding the basis |
167 |
|
- |
#' coefficients based on their absolute value. If \code{parallel = TRUE}, |
168 |
|
- |
#' the coefficients for different images are calculated in parallel.} See |
169 |
|
- |
#' \code{\link{univDecomp}} and \code{\link{univExpansion}} for details.} |
|
148 |
+ |
#' \code{\link{univExpansion}}. For two-dimensional tensor product splines, use |
|
149 |
+ |
#' \code{type = "splines2D"}. \item Spline basis functions (with smoothness |
|
150 |
+ |
#' penalty). Then \code{uniExpansions[[j]] = list(type = "splines1Dpen", bs, m, |
|
151 |
+ |
#' k)}, where \code{bs,m,k} are passed to the functions \code{\link{univDecomp}} |
|
152 |
+ |
#' and \code{\link{univExpansion}}. Analogously to the unpenalized case, use |
|
153 |
+ |
#' \code{type = "splines2Dpen"} for 2D penalized tensor product splines. \item |
|
154 |
+ |
#' Cosine basis functions. Use \code{uniExpansions[[j]] = list(type = "DCT2D", |
|
155 |
+ |
#' qThresh, parallel)} for functions one two-dimensional domains (images) and |
|
156 |
+ |
#' \code{type = "DCT3D"} for 3D images. The calculation is based on the discrete |
|
157 |
+ |
#' cosine transform (DCT) implemented in the C-library \code{fftw3}. If this |
|
158 |
+ |
#' library is not available, the function will throw a warning. \code{qThresh} |
|
159 |
+ |
#' gives the quantile for hard thresholding the basis coefficients based on |
|
160 |
+ |
#' their absolute value. If \code{parallel = TRUE}, the coefficients for |
|
161 |
+ |
#' different images are calculated in parallel.} See \code{\link{univDecomp}} |
|
162 |
+ |
#' and \code{\link{univExpansion}} for details.} |
170 |
163 |
|
#' |
171 |
|
- |
#' @param mFData A \code{\link[funData]{multiFunData}} object containing |
172 |
|
- |
#' the \code{N} observations. |
|
164 |
+ |
#' @param mFData A \code{\link[funData]{multiFunData}} object containing the |
|
165 |
+ |
#' \code{N} observations. |
173 |
166 |
|
#' @param M The number of multivariate functional principal components to |
174 |
167 |
|
#' calculate. |
175 |
|
- |
#' @param uniExpansions A list characterizing the (univariate) expansion |
176 |
|
- |
#' that is calculated for each element. See Details. |
177 |
|
- |
#' @param weights An optional vector of weights, defaults to \code{1} for |
178 |
|
- |
#' each element. See Details. |
179 |
|
- |
#' @param fit Logical. If \code{TRUE}, a truncated multivariate |
180 |
|
- |
#' Karhunen-Loeve representation for the data is calculated based on the |
181 |
|
- |
#' estimated scores and eigenfunctions. |
182 |
|
- |
#' @param approx.eigen Logical. If \code{TRUE}, the eigenanalysis problem |
183 |
|
- |
#' for the estimated covariance matrix is solved approximately using the |
|
168 |
+ |
#' @param uniExpansions A list characterizing the (univariate) expansion that is |
|
169 |
+ |
#' calculated for each element. See Details. |
|
170 |
+ |
#' @param weights An optional vector of weights, defaults to \code{1} for each |
|
171 |
+ |
#' element. See Details. |
|
172 |
+ |
#' @param fit Logical. If \code{TRUE}, a truncated multivariate Karhunen-Loeve |
|
173 |
+ |
#' representation for the data is calculated based on the estimated scores and |
|
174 |
+ |
#' eigenfunctions. |
|
175 |
+ |
#' @param approx.eigen Logical. If \code{TRUE}, the eigenanalysis problem for |
|
176 |
+ |
#' the estimated covariance matrix is solved approximately using the |
184 |
177 |
|
#' \pkg{irlba} package, which is much faster. If the number \code{M} of |
185 |
|
- |
#' eigenvalues to calculate is high with respect to the number of |
186 |
|
- |
#' observations in \code{mFData} or the number of estimated univariate |
187 |
|
- |
#' eigenfunctions, the approximation may be inappropriate. In this case, |
188 |
|
- |
#' approx.eigen is set to \code{FALSE} and the function throws a |
189 |
|
- |
#' warning. Defaults to \code{FALSE}. |
190 |
|
- |
#' @param bootstrap Logical. If \code{TRUE}, pointwise bootstrap |
191 |
|
- |
#' confidence bands are calculated for the multivariate functional |
192 |
|
- |
#' principal components. Defaults to \code{FALSE}. See Details. |
193 |
|
- |
#' @param nBootstrap The number of bootstrap iterations to use. Defaults |
194 |
|
- |
#' to \code{NULL}, which leads to an error, if \code{bootstrap = TRUE}. |
195 |
|
- |
#' @param bootstrapAlpha A vector of numerics (or a single number) giving |
196 |
|
- |
#' the significance level for bootstrap intervals. Defaults to |
197 |
|
- |
#' \code{0.05}. |
198 |
|
- |
#' @param bootstrapStrat A stratification variable for bootstrap. Must be |
199 |
|
- |
#' a factor of length \code{nObs(mFData)} or \code{NULL} (default). If |
200 |
|
- |
#' \code{NULL}, no stratification is made in the bootstrap resampling, |
201 |
|
- |
#' i.e. the curves are sampled with replacement. If |
202 |
|
- |
#' \code{bootstrapStrat} is not \code{NULL}, the curves are resampled |
203 |
|
- |
#' with replacement within the groups defined by \code{bootstrapStrat}, |
204 |
|
- |
#' hence keeping the group proportions fixed. |
|
178 |
+ |
#' eigenvalues to calculate is high with respect to the number of observations |
|
179 |
+ |
#' in \code{mFData} or the number of estimated univariate eigenfunctions, the |
|
180 |
+ |
#' approximation may be inappropriate. In this case, approx.eigen is set to |
|
181 |
+ |
#' \code{FALSE} and the function throws a warning. Defaults to \code{FALSE}. |
|
182 |
+ |
#' @param bootstrap Logical. If \code{TRUE}, pointwise bootstrap confidence |
|
183 |
+ |
#' bands are calculated for the multivariate functional principal components. |
|
184 |
+ |
#' Defaults to \code{FALSE}. See Details. |
|
185 |
+ |
#' @param nBootstrap The number of bootstrap iterations to use. Defaults to |
|
186 |
+ |
#' \code{NULL}, which leads to an error, if \code{bootstrap = TRUE}. |
|
187 |
+ |
#' @param bootstrapAlpha A vector of numerics (or a single number) giving the |
|
188 |
+ |
#' significance level for bootstrap intervals. Defaults to \code{0.05}. |
|
189 |
+ |
#' @param bootstrapStrat A stratification variable for bootstrap. Must be a |
|
190 |
+ |
#' factor of length \code{nObs(mFData)} or \code{NULL} (default). If |
|
191 |
+ |
#' \code{NULL}, no stratification is made in the bootstrap resampling, i.e. |
|
192 |
+ |
#' the curves are sampled with replacement. If \code{bootstrapStrat} is not |
|
193 |
+ |
#' \code{NULL}, the curves are resampled with replacement within the groups |
|
194 |
+ |
#' defined by \code{bootstrapStrat}, hence keeping the group proportions |
|
195 |
+ |
#' fixed. |
205 |
196 |
|
#' @param verbose Logical. If \code{TRUE}, the function reports |
206 |
197 |
|
#' extra-information about the progress (incl. timestamps). Defaults to |
207 |
198 |
|
#' \code{options()$verbose}. |
208 |
199 |
|
#' |
209 |
200 |
|
#' @return An object of class \code{MFPCAfit} containing the following |
210 |
|
- |
#' components: \item{values}{A vector of estimated eigenvalues \eqn{\hat |
211 |
|
- |
#' \nu_1 , \ldots , \hat \nu_M}.} \item{functions}{A |
|
201 |
+ |
#' components: \item{values}{A vector of estimated eigenvalues \eqn{\hat \nu_1 |
|
202 |
+ |
#' , \ldots , \hat \nu_M}.} \item{functions}{A |
212 |
203 |
|
#' \code{\link[funData]{multiFunData}} object containing the estimated |
213 |
|
- |
#' multivariate functional principal components \eqn{\hat \psi_1, |
214 |
|
- |
#' \ldots, \hat \psi_M}.} \item{scores}{ A matrix of dimension \code{N x |
215 |
|
- |
#' M} containing the estimated scores \eqn{\hat \rho_{im}}.} |
216 |
|
- |
#' \item{vectors}{A matrix representing the eigenvectors associated with |
217 |
|
- |
#' the combined univariate score vectors. This might be helpful for |
218 |
|
- |
#' calculating predictions.} \item{normFactors}{The normalizing factors |
219 |
|
- |
#' used for calculating the multivariate eigenfunctions and scores. This |
220 |
|
- |
#' might be helpful when calculation predictions.} \item{meanFunction}{A |
221 |
|
- |
#' multivariate functional data object, corresponding to the mean |
222 |
|
- |
#' function. The MFPCA is applied to the de-meaned functions in |
223 |
|
- |
#' \code{mFData}.}\item{fit}{A \code{\link[funData]{multiFunData}} |
224 |
|
- |
#' object containing estimated trajectories for each observation based |
225 |
|
- |
#' on the truncated Karhunen-Loeve representation and the estimated |
226 |
|
- |
#' scores and eigenfunctions.} \item{CI}{A list of the same length as |
227 |
|
- |
#' \code{bootstrapAlpha}, containing the pointwise lower and upper |
228 |
|
- |
#' bootstrap confidence bands for each eigenfunction and each |
229 |
|
- |
#' significance level in form of \code{\link[funData]{multiFunData}} |
230 |
|
- |
#' objects (only if \code{bootstrap = TRUE}).} \item{CIvalues}{A list of |
231 |
|
- |
#' the same length as \code{bootstrapAlpha}, containing the lower and |
232 |
|
- |
#' upper bootstrap confidence bands for each eigenvalue and each |
233 |
|
- |
#' significance level (only if \code{bootstrap = TRUE}).} |
|
204 |
+ |
#' multivariate functional principal components \eqn{\hat \psi_1, \ldots, \hat |
|
205 |
+ |
#' \psi_M}.} \item{scores}{ A matrix of dimension \code{N x M} containing the |
|
206 |
+ |
#' estimated scores \eqn{\hat \rho_{im}}.} \item{vectors}{A matrix |
|
207 |
+ |
#' representing the eigenvectors associated with the combined univariate score |
|
208 |
+ |
#' vectors. This might be helpful for calculating predictions.} |
|
209 |
+ |
#' \item{normFactors}{The normalizing factors used for calculating the |
|
210 |
+ |
#' multivariate eigenfunctions and scores. This might be helpful when |
|
211 |
+ |
#' calculation predictions.} \item{meanFunction}{A multivariate functional |
|
212 |
+ |
#' data object, corresponding to the mean function. The MFPCA is applied to |
|
213 |
+ |
#' the de-meaned functions in \code{mFData}.}\item{fit}{A |
|
214 |
+ |
#' \code{\link[funData]{multiFunData}} object containing estimated |
|
215 |
+ |
#' trajectories for each observation based on the truncated Karhunen-Loeve |
|
216 |
+ |
#' representation and the estimated scores and eigenfunctions.} \item{CI}{A |
|
217 |
+ |
#' list of the same length as \code{bootstrapAlpha}, containing the pointwise |
|
218 |
+ |
#' lower and upper bootstrap confidence bands for each eigenfunction and each |
|
219 |
+ |
#' significance level in form of \code{\link[funData]{multiFunData}} objects |
|
220 |
+ |
#' (only if \code{bootstrap = TRUE}).} \item{CIvalues}{A list of the same |
|
221 |
+ |
#' length as \code{bootstrapAlpha}, containing the lower and upper bootstrap |
|
222 |
+ |
#' confidence bands for each eigenvalue and each significance level (only if |
|
223 |
+ |
#' \code{bootstrap = TRUE}).} |
234 |
224 |
|
#' |
235 |
225 |
|
#' @export MFPCA |
236 |
226 |
|
#' |
237 |
227 |
|
#' @importFrom foreach %do% |
238 |
228 |
|
#' @importFrom utils packageVersion |
239 |
229 |
|
#' |
240 |
|
- |
#' @references C. Happ, S. Greven (2018): Multivariate Functional |
241 |
|
- |
#' Principal Component Analysis for Data Observed on Different |
242 |
|
- |
#' (Dimensional) Domains. Journal of the American Statistical |
243 |
|
- |
#' Association, 113(522): 649-659. DOI: |
|
230 |
+ |
#' @references C. Happ, S. Greven (2018): Multivariate Functional Principal |
|
231 |
+ |
#' Component Analysis for Data Observed on Different (Dimensional) Domains. |
|
232 |
+ |
#' Journal of the American Statistical Association, 113(522): 649-659. DOI: |
244 |
233 |
|
#' \doi{10.1080/01621459.2016.1273115} |
245 |
234 |
|
#' |
246 |
235 |
|
#' @references C. Happ-Kurz (2020): Object-Oriented Software for Functional |
9c50ac8
ce103f9
879ec24
3f859b1
f24de22
5d58717
4d3fff9
ba51955
90b8979
25bc2d8
345b77c
7788185