resampleC function

Resample with Specified Rank Correlation

Resample with Specified Rank Correlation

Resample with replacement from a number of vectors; the sample will have a specified rank correlation.

resampleC(..., size, cormat)

Arguments

  • ...: numeric vectors; they need not have the same length.
  • size: an integer: the number of samples to draw
  • cormat: the rank correlation matrix

Details

See Gilli, Maringer and Schumann (2011), Section 7.1.2. The function samples with replacement from the vectors passed through .... The resulting samples will have an (approximate) rank correlation as specified in cormat.

The function uses the eigenvalue decomposition to generate the correlation; it will not break down in case of a semidefinite matrix. If an eigenvalue of cormat is smaller than zero, a warning is issued (but the function proceeds).

Returns

a numeric matrix with size rows. The columns contain the samples; hence, there will be as many columns as vectors passed through ....

References

Gilli, M., Maringer, D. and Schumann, E. (2019) Numerical Methods and Optimization in Finance. 2nd edition. Elsevier. tools:::Rd_expr_doi("10.1016/C2017-0-01621-X")

Schumann, E. (2023) Financial Optimisation with R (NMOF Manual). https://enricoschumann.net/NMOF.htm#NMOFmanual

Author(s)

Enrico Schumann

See Also

repairMatrix

Examples

## a sample v1 <- rnorm(20) v2 <- runif(50) v3 <- rbinom(100, size = 50, prob = 0.4) ## a correlation matrix cormat <- array(0.5, dim = c(3, 3)) diag(cormat) <- 1 cor(resampleC(a = v1, b = v2, v3, size = 100, cormat = cormat), method = "spearman")