View source: R/create_second_order.R

create.second_order | R Documentation |

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)

`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). |

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 `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.

A n-by-p matrix of knockoff variables.

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

Other create:
`create.fixed()`

,
`create.gaussian()`

set.seed(2022) p=100; n=80; k=15 rho = 0.4 Sigma = toeplitz(rho^(0:(p-1))) X = matrix(rnorm(n*p),n) %*% chol(Sigma) nonzero = sample(p, k) beta = 3.5 * (1:p %in% nonzero) y = X %*% beta + rnorm(n) # Basic usage with default arguments result = knockoff.filter(X, y, knockoffs=create.second_order) print(result$selected) # Advanced usage with custom arguments knockoffs = function(X) create.second_order(X, method='equi') result = knockoff.filter(X, y, knockoffs=knockoffs) print(result$selected)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.