Learn R Programming

TRES (version 1.1.5)

OptM1D: Estimate the envelope subspace (OptM 1D)

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

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/\sqrt{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.

Value

Return the estimated orthogonal basis of the envelope subspace.

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.

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

Run this code
# NOT RUN {
## 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)

# }

Run the code above in your browser using DataLab