Title: | Data Transformation or Simulation with Empirical Covariance Matrix |
---|---|
Description: | Transforms or simulates data with a target empirical covariance matrix supplied by the user. The method to obtain the data with the target empirical covariance matrix is described in Section 5.1 of Christidis, Van Aelst and Zamar (2019) <arXiv:1812.05678>. |
Authors: | Anthony Christidis <[email protected]>, Stefan Van Aelst <[email protected]>, Ruben Zamar <[email protected]> |
Maintainer: | Anthony Christidis <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.0.1 |
Built: | 2025-01-30 03:51:50 UTC |
Source: | https://github.com/anthonychristidis/simtargetcov |
simTargetCov
transforms or simulates data with a target empirical covariance matrix supplied by the user.
simTargetCov(n, p, target, X = NULL)
simTargetCov(n, p, target, X = NULL)
n |
Number of observations for data matrix output. |
p |
Number of variables for data matrix output. |
target |
Target empirical covariance for data matrix output. |
X |
Data matrix for transformation. |
Anthony-Alexander Christidis, [email protected]
# Function to create target covariance matrix with kernel set to r target_cor <- function(r, p){ Gamma <- diag(p) for(i in 1:(p-1)){ for(j in (i+1):p){ Gamma[i,j] <- Gamma[j,i] <- r^(abs(i-j)) } } return(Gamma) } # Transformation of data to target empirical covariance dat.target.cov <- simTargetCov(X = MASS::mvrnorm(30, mu = rep(0,6), Sigma = target_cor(0.5,6)), target = target_cor(0.5,6)) round(cov(dat.target.cov), 2) # Simulation of data with target empirical covariance sim.target.cov <- simTargetCov(n = 30, p = 6, target = target_cor(0.5,6)) round(cov(sim.target.cov), 2)
# Function to create target covariance matrix with kernel set to r target_cor <- function(r, p){ Gamma <- diag(p) for(i in 1:(p-1)){ for(j in (i+1):p){ Gamma[i,j] <- Gamma[j,i] <- r^(abs(i-j)) } } return(Gamma) } # Transformation of data to target empirical covariance dat.target.cov <- simTargetCov(X = MASS::mvrnorm(30, mu = rep(0,6), Sigma = target_cor(0.5,6)), target = target_cor(0.5,6)) round(cov(dat.target.cov), 2) # Simulation of data with target empirical covariance sim.target.cov <- simTargetCov(n = 30, p = 6, target = target_cor(0.5,6)) round(cov(sim.target.cov), 2)