create.solve_asdp {knockoff} | R Documentation |
Relaxed optimization for fixed-X and Gaussian knockoffs
Description
This function solves the optimization problem needed to create fixed-X and Gaussian SDP knockoffs
on a block-diagonal approximation of the covariance matrix. This will be less
powerful than create.solve_sdp
, but more computationally efficient.
Usage
create.solve_asdp(
Sigma,
max.size = 500,
gaptol = 1e-06,
maxit = 1000,
verbose = FALSE
)
Arguments
Sigma |
positive-definite p-by-p covariance matrix. |
max.size |
size of the largest block in the block-diagonal approximation of Sigma (default: 500). See Details. |
gaptol |
tolerance for duality gap as a fraction of the value of the objective functions (default: 1e-6). |
maxit |
the maximum number of iterations for the solver (default: 1000). |
verbose |
whether to display progress (default: FALSE). |
Details
Solves the following two-step semidefinite program:
(step 1)
\mathrm{maximize} \; \mathrm{sum}(s) \quad
\mathrm{subject} \; \mathrm{to:} \; 0 \leq s \leq 1, \;
2 \Sigma_{\mathrm{approx}} - \mathrm{diag}(s) \geq 0
(step 2)
\mathrm{maximize} \; \gamma \quad
\mathrm{subject} \; \mathrm{to:} \; \mathrm{diag}(\gamma s) \leq 2 \Sigma
Each smaller SDP is solved using the interior-point method implemented in dsdp
.
The parameter max.size controls the size of the largest semidefinite program that needs to be solved. A larger value of max.size will increase the computation cost, while yielding a solution closer to that of the original semidefinite program.
If the matrix Sigma supplied by the user is a non-scaled covariance matrix (i.e. its diagonal entries are not all equal to 1), then the appropriate scaling is applied before solving the SDP defined above. The result is then scaled back before being returned, as to match the original scaling of the covariance matrix supplied by the user.
Value
The solution s
to the semidefinite program defined above.
See Also
Other optimization:
create.solve_equi()
,
create.solve_sdp()