Learn R Programming

TRES (version 1.1.1)

manifoldFG: Estimate the envelope subspace (ManifoldOptim)

Description

The FG algorithm to estimate the envelope subspace with specified dimension based on R package ManifoldOptim.

Usage

manifoldFG(M, U, u, Gamma_init, opts=NULL)

Arguments

M

M matrix in the envelope objective function. A \(p\)-by-\(p\) positive semi-definite matrix.

U

U matrix in the envelope objective function. A \(p\)-by-\(p\) positive semi-definite matrix.

u

Dimension of the envelope. An integer between 0 and \(p\).

Gamma_init

The initial value for manifold optimization.

opts

Option structure with fields: "maxiter" -- max number of iterations. "tol" -- Tolerance used to assess convergence. See Huang et al. (2018) for details on how this is used. "method" -- Name of optimization method supported by R package ManifoldOptim.

  • "LRBFGS": Limited-memory RBFGS

  • "LRTRSR1": Limited-memory RTRSR1

  • "RBFGS": Riemannian BFGS

  • "RBroydenFamily": Riemannian Broyden family

  • "RCG": Riemannian conjugate gradients

  • "RNewton": Riemannian line-search Newton

  • "RSD": Riemannian steepest descent

  • "RTRNewton": Riemannian trust-region Newton

  • "RTRSD": Riemannian trust-region steepest descent

  • "RTRSR1": Riemannian trust-region symmetric rank-one update

  • "RWRBFGS": Riemannian BFGS

"check" -- Should internal manifold object check inputs and print summary message before optimization (TRUE or FALSE).

The default values are: "maxiter"=500; "tol"=1e-08; "method"="RCG"; "check"="False".

Value

Return the orthogonal basis of the envelope subspace.

Details

Estimate M-envelope of span(U) where M > 0. The dimension of the envelope is u.

Examples

Run this code
# NOT RUN {
##simulate two matrices M and U with an envelope structure#
data <- MenvU_sim(n=200, p=20, u=5)
Mhat <- data$Mhat
Uhat <- data$Uhat
G <- data$Gamma

Gamma_1D <- manifold1D(Mhat, Uhat, u=5)
subspace(Gamma_1D, G)

Gamma_FG <- manifoldFG(Mhat, Uhat, u=5, Gamma_1D)
subspace(Gamma_FG, G)
# }

Run the code above in your browser using DataLab