This function samples second-order multivariate Gaussian knockoff variables. First, a multivariate Gaussian distribution is fitted to the observations of X. Then, Gaussian knockoffs are generated according to the estimated model.

create.second_order(X, method = c("asdp", "equi", "sdp"), shrink = F)

Arguments

X

n-by-p matrix of original variables.

method

either "equi", "sdp" or "asdp" (default: "asdp"). This determines the method that will be used to minimize the correlation between the original variables and the knockoffs.

shrink

whether to shrink the estimated covariance matrix (default: F).

Value

A n-by-p matrix of knockoff variables.

Details

If the argument shrink is set to T, a James-Stein-type shrinkage estimator for the covariance matrix is used instead of the traditional maximum-likelihood estimate. This option requires the package corpcor. See corpcor::cov.shrink() for more details.

Even if the argument shrink is set to F, in the case that the estimated covariance matrix is not positive-definite, this function will apply some shrinkage.

References

Candes et al., Panning for Gold: Model-free Knockoffs for High-dimensional Controlled Variable Selection, arXiv:1610.02351 (2016). https://web.stanford.edu/group/candes/knockoffs/index.html