View source: R/generate_data_kl.R
generate_karhunen_loeve | R Documentation |
generate_karhunen_loeve
generates functional data via an autoregressive
Karhunen-Loeve expansion. The approach easily accomondate change points in
the mean, distribution, eigenvalues, eigenfunctions, and so forth. In a
sense, the function creates m ‘groups’ of discretely observed
functions with similar properties.
generate_karhunen_loeve(
Ns,
eigenvalues,
basis,
means,
distribution,
fparam,
dependence = 0,
burnin = 100,
silent = TRUE,
dof = NULL,
shape = NULL,
prev_eps = NULL
)
Ns |
Vector of Numerics. Each value in Ns is the number of observations for a given group, for m groups. |
eigenvalues |
Vector of eigenvalues, length 1 or m. |
basis |
A list of bases (eigenfunctions), length m. |
means |
A vector of means, length 1 or Ns. |
distribution |
A vector of distributions, length 1 or m. |
fparam |
A vector of points indicating the points to evaluate the functions on. |
dependence |
Numeric [0,1] indicating strength of VAR(1) process. |
burnin |
A numeric value indicating the number of burnin trials. |
silent |
A Boolean that toggles displaying the running status. |
dof |
Numeric for shape with gamma distribution (rate is set to 1). |
shape |
Numeric for degrees of freedom with t-distribution. |
prev_eps |
Previous epsilon for dependence across groups. This is only needed if a separate code was run but the new data should be appended. In general only used in internal functions. |
List with (1) dfts data and (2) the errors of the last iteration.
dat1 <- generate_karhunen_loeve(
Ns = 100, eigenvalues = c(1 / (1:3)), basis = fda::create.bspline.basis(nbasis = 3, norder = 3),
means = 0, distribution = "Normal",
fparam = seq(0, 1, 0.1), dependence = 0, burnin = 100, silent = TRUE, dof = NULL, shape = NULL,
prev_eps = NULL
)
dat2 <- generate_karhunen_loeve(
Ns = 50, eigenvalues = c(1 / (1:4)), basis = fda::create.bspline.basis(nbasis = 4),
means = 5, distribution = "exponential",
fparam = seq(0, 1, 0.1), dependence = 0, burnin = 100, silent = TRUE, dof = NULL, shape = NULL,
prev_eps = dat1$prev_eps
)
dat <- dfts(cbind(dat1$data$data, dat2$data$data), fparam = dat1$data$fparam)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.