Generation of gaussian multivariate functional data

Share:

Description

generate_gauss_mfdata generates a dataset of multivariate functional data with a desired mean and covariance function in each dimension and a desired correlation structure among components.

Usage

1
2
generate_gauss_mfdata(N, L, centerline, correlations, listCov = NULL,
  listCholCov = NULL)

Arguments

N

the number of distinct functional observations to generate.

L

the number of components of the multivariate functional data.

centerline

the centerline of the distribution, represented as a 2-dimensional data structure with L rows (one for each dimension) having the measurements along the grid as columns.

correlations

is the vector containing the 1/2 L (L-1) correlation coefficients ρ_{ij} in the model generating data. They have to be provided in the following order:

(ρ_{1,2},…,ρ_{1,L},ρ_{2,3},…,ρ_{2,L},…, ρ_{L,L-1}),

that is to say, the row-wise, upper triangular part of the correlation matrix without the diagonal.

listCov

a list containing the L covariance operators (provided in form of a P x P matrix), one for each component of the multivariate functional random vairable, that have to be used in the generation of the processes ε_1(t), …, ε_L(t). At least one argument between listCov and listCholCov must be different from NULL.

listCholCov

the Cholesky factor of the L covariance operators (in P x P matrix form), one for each component of the multivariate functional random vairable, that have to be used in the generation of the processes ε_1(t), …, ε_L(t). At least one argument between listCov and listCholCov must be different from NULL.

Details

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

X(t) = ( m_1( t ) + ε_1(t), ..., m_L(t) + ε_L(t) ), for all t in I = [a, b]

where L is the number of components of the multivariate functional random variable, m_i(t) is the i-th component of the center and ε_i(t) is a centered gaussian process with covariance function C_i. That is to say:

Cov( ε_i(s), ε_i(t) ) = C( s, t ), with i = 1, …, L, and with s, t in I

A correlation structure among ε_1(t),…,ε_L(t) is allowed in the following way:

Cor( ε_i(t), ε_j(t) ) = ρ_ij, for all i != j and for all 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, …, t_{P-1} = b] \subset I .

Value

The function returns a list of L matrices, one for each component of the multivariate functional random variable, containing the discretized values of the generated observations (in form of N x P matrices).

See Also

exp_cov_function, mfData, generate_gauss_fdata

Examples

 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
N = 30
P = 1e2
L = 3

time_grid = seq( 0, 1, length.out = P )

C1 = exp_cov_function( time_grid, alpha = 0.1, beta = 0.2 )
C2 = exp_cov_function( time_grid, alpha = 0.2, beta = 0.5 )
C3 = exp_cov_function( time_grid, alpha = 0.3, beta = 1 )


centerline = matrix( c( sin( 2 * pi * time_grid ),
                        sqrt( time_grid ),
                        10 * ( time_grid - 0.5 ) * time_grid ),
                     nrow = 3, byrow = TRUE )

generate_gauss_mfdata( N, L, centerline,
                       correlations = c( 0.5, 0.5, 0.5 ),
                       listCov = list( C1, C2, C3 ) )

CholC1 = chol( C1 )
CholC2 = chol( C2 )
CholC3 = chol( C3 )

generate_gauss_mfdata( N, L, centerline,
                       correlations = c( 0.5, 0.5, 0.5 ),
                      listCholCov = list( CholC1, CholC2, CholC3 ) )

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.