OptM1D: Estimate the envelope subspace ('OptM' 1D)

Description Usage Arguments Details Value References Examples

View source: R/OptM1D.R

Description

The 1D algorithm to estimate the envelope subspace based on the line search algorithm for optimization on manifold. The line search algorithm is developed by Wen and Yin (2013) and the Matlab version is implemented in the Matlab package OptM.

Usage

1
OptM1D(M, U, u, ...)

Arguments

M

The p-by-p positive definite matrix M in the envelope objective function.

U

The p-by-p positive semi-definite matrix U in the envelope objective function.

u

An integer between 0 and n representing the envelope dimension.

...

Additional user-defined arguments for the line search algorithm:

  • maxiter: The maximal number of iterations.

  • xtol: The convergence tolerance for the relative changes of the consecutive iterates w, e.g., ||w^{(k)} - w^{(k-1)}||_F/√{p}

  • gtol: The convergence tolerance for the gradient of Lagrangian, e.g., ||G^{(k)} - w^{(k)} (G^{(t)})^T w^{(t)}||_F

  • ftol: The convergence tolerance for relative changes of the consecutive objective function values F, e.g., |F^{(k)} - F^{(k-1)}|/(1+|F^{(k-1)}|). Usually, max{xtol, gtol} > ftol

The default values are: maxiter=500; xtol=1e-08; gtol=1e-08; ftol=1e-12.

Details

The objective function F(w) and its gradient G(w) in line search algorithm are:

F(w)=\log|w^T M_k w|+\log|w^T(M_k+U_k)^{-1}w|

G(w) = dF/dw = 2 (w^T M_k w)^{-1} M_k w + 2 (w^T (M_k + U_k)^{-1} w)^{-1}(M_k + U_k)^{-1} w

See Cook, R. D., & Zhang, X. (2016) for more details of the 1D algorithm.

Value

Return the estimated orthogonal basis of the envelope subspace.

References

Cook, R.D. and Zhang, X., 2016. Algorithms for envelope estimation. Journal of Computational and Graphical Statistics, 25(1), pp.284-300.

Wen, Z. and Yin, W., 2013. A feasible method for optimization with orthogonality constraints. Mathematical Programming, 142(1-2), pp.397-434.

Examples

1
2
3
4
5
6
7
## Simulate two matrices M and U with an envelope structure
data <- MenvU_sim(p = 20, u = 5, wishart = TRUE, n = 200)
M <- data$M
U <- data$U
G <- data$Gamma
Gamma_1D <- OptM1D(M, U, u = 5)
subspace(Gamma_1D, G)

TRES documentation built on Oct. 20, 2021, 9:06 a.m.