OptMFG: Estimate the envelope subspace ('OptM' FG)

Description Usage Arguments Details Value References See Also Examples

View source: R/OptMFG.R

Description

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

Usage

1
OptMFG(M, U, u, Gamma_init = NULL, ...)

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. Ignored if Gamma_init is provided.

Gamma_init

Initial envelope subspace basis. The default value is the estimator from OptM1D(M, U, u).

...

Additional user-defined arguments for the curvilinear search algorithm:

  • maxiter: The maximal number of iterations.

  • xtol: The convergence tolerance for Γ, e.g., ||Γ^{(k)} - Γ^{(k-1)}||_F/√{p}

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

  • ftol: The convergence tolerance for objective function 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

If Gamma_init is provided, then the envelope dimension u = ncol(Gamma_init).

The function OptMFG calls the function OptStiefelGBB internally which implements the curvilinear search algorithm.

The objective function F(Γ) and its gradient G(Γ) in curvilinear search algorithm are:

F(Γ)=\log|Γ^T M Γ|+\log| Γ^T(M+U)^{-1}Γ|

G(Γ) = dF/d Γ = 2 M Γ (Γ^T M Γ)^{-1} + 2 (M + U)^{-1} Γ (Γ^T (M + U)^{-1} Γ)^{-1}

Value

Return the estimated orthogonal basis of the envelope subspace.

References

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

See Also

OptStiefelGBB

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_FG <- OptMFG(M, U, u=5)
subspace(Gamma_FG, G)

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