simulate_cMTS {mvDFA}R Documentation

Approximate correlated time series with given Hurst Exponent

Description

Approximation of correlated time series with given "Hurst" exponents. Internally longmemo::simFGN0 or longmemo::simFGN.fft are used which simulate Gaussian series by generating fractional ARIMA(0,h,0) models (with $h=H-1/2$, longmemo::FGN0), or fractional Gaussian noise longmemo::FGN.fft. We cautiously note that we use empirical scaling (i.e., the variances are scaled to be 1 in the sample not the population), hence the between sample variance may be underrepresented. We further note that the covariance estimates for correlated time series (not using increments) is unstable.

Usage

simulate_cMTS(
  N,
  H,
  Sigma,
  simulation_process = "FGN0",
  decomposition = "chol",
  cor_increments = TRUE,
  X0 = rep(0, ncol(Sigma))
)

Arguments

N

Length of Times Series

H

Hurst Exponents for d time series. These are then mixed using one of two different decompositions of the given covariance matrix Sigma.

Sigma

Positive semi definite covariance matrix of desired multi-dimensional time series.

simulation_process

The simulation process passed to the longmemo::sim... function. Can either be longmemo::simFGN.fft (using FFT) or longmemo::simFGN0 (using fractional gaussian processes). FGN0 looks more like rnorm, when H=0.5. DEFAULT to "FGN0". Use simulation_process="FGN.fft" to use the FFT based version.

decomposition

Character whether the Cholesky decomposition "chol" (or "cholesky") should be used or whether the eigen decomposition should be used (decomposition = "eigen"). DEFAULT to "chol".

cor_increments

Logical, whether to correlate the increments or the time series themselves. Default to TRUE.

X0

Starting values for the time series if increments are correlated. Default to rep(0, ncol(Sigma)), i.e., the zero vector of required length.

Value

Returns a multivariate correlated time series with covariance matrix Sigma. The Hurst exponents are only approximating the univariate ones, since they result from mixed time series. Uncorrelated time series keep their univariate Hurst exponents H.

Examples

Sigma <- matrix(.5, 3, 3); diag(Sigma) <- c(1,2,3)
data <- simulate_cMTS(N = 10^5, Sigma = Sigma, H = c(.2, .5, .7),
                      cor_increments = TRUE)
cov(data)
cov(apply(data,2,diff))

[Package mvDFA version 0.0.4 Index]