generate_gauss_fdata generates a dataset of univariate functional data with a desired mean and covariance function.

generate_gauss_fdata(N, centerline, Cov = NULL, CholCov = NULL)

Arguments

N

the number of distinct functional observations to generate.

centerline

the centerline of the distribution, represented as a one- dimensional data structure of length \(P\) containing the measurement of the centerline on grid points.

Cov

the covariance operator (provided in form of a \(P \times P\) matrix) that has to be used in the generation of \(\epsilon(t)\). At least one argument between Cov and CholCov should be different from NULL.

CholCov

the Cholesky factor of the covariance operator (provided in form of a \(P \times P\) matrix) that has to be used in the generation of observations from the process \(\epsilon(t)\). At least one argument between Cov and CholCov should be different from NULL.

Value

The function returns a matrix containing the discretized values of the generated observations (in form of an \(N \times P\)matrix).

Details

In particular, the following model is considered for the generation of data:

$$X(t) = m( t ) + \epsilon( t ), \quad t \in I = [a, b]$$

where \(m(t)\) is the center and \(\epsilon(t)\) is a centered gaussian process with covariance function \(C_i\). That is to say:

$$Cov( \epsilon(s), \epsilon(t) ) = C( s, t ), \quad \forall s, t \in I$$

All the functions are supposed to be observed on an evenly-spaced, one- dimensional grid of P points: \([a = t_0, t_1, \ldots, t_{P-1} = b] \subset I \).

Examples


N = 30
P = 1e2

t0 = 0
tP = 1

time_grid = seq( t0, tP, length.out = P )

C = exp_cov_function( time_grid, alpha = 0.1, beta = 0.2 )

CholC = chol( C )

centerline = sin( 2 * pi * time_grid )

invisible(generate_gauss_fdata( N, centerline, Cov = C ))

invisible(generate_gauss_fdata( N, centerline, CholCov = CholC ))