Description Usage Arguments Details Value Note References Examples
The 1D algorithm to estimate the envelope subspace with specified dimension based on R package "ManifoldOptim".
1 | manifold1D(M, U, d, params=NULL)
|
M |
M matrix in the envelope objective function. An r-by-r positive semi-definite matrix. |
U |
U matrix in the envelope objective function. An r-by-r positive semi-definite matrix. |
d |
Dimension of the envelope. An integer between 0 and r. |
params |
Option structure with fields:
The default values are: |
Estimate M
-envelope contains span(U)
where M > 0
and is symmetric. The
dimension of the envelope is d
.
Gammahat |
The orthogonal basis of the envelope subspace. |
ManifoldOptim_module
should be loaded first before using function manifold1D
.
Huang, W., Absil, P. A., Gallivan, K. A., & Hand, P. (2018). ROPTLIB: an object-oriented C++ library for optimization on Riemannian manifolds. ACM Transactions on Mathematical Software (TOMS), 44(4), 43.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | mod <- Module("ManifoldOptim_module", PACKAGE = "ManifoldOptim")
mani.params <- get.manifold.params(IsCheckParams = TRUE)
##simulate two matrices M and U with an envelope structure#
p <- 20
u <- 5
##randomly generate a semi-orthogonal p-by-u basis matrix (Gamma) for the
##envelope and its orthogonal completion (Gamma0) of dimension p-by-(p-u)
Gamma <- matrix(runif(p*u), p, u)
###make Gamma semi-orthogonal
Gamma <- qr.Q(qr(Gamma))
Gamma0 <- qr.Q(qr(Gamma),complete=TRUE)[,(u+1):p]
## randomly generated symmetric positive definite matrices, M and U, to have
## an exact u-dimensional envelope structure
Phi <- matrix(runif(u^2), u, u)
Phi <- Phi %*% t(Phi)
Omega <- matrix(runif(u^2), u, u)
Omega <- Omega %*% t(Omega)
Omega0 <- matrix(runif((p-u)^2),p-u,p-u)
Omega0 <- Omega0 %*% t(Omega0)
M <- Gamma %*% Omega %*% t(Gamma) + Gamma0 %*% Omega0 %*% t(Gamma0)
U <- Gamma %*% Phi %*% t(Gamma)
# randomly generate symmetric positive definite matrices, Mhat and Uhat, as
# root-n consistent sample estimators for M and U
n=200
X <- mvrnorm(n, mu = rep(0, p), Sigma = M)
Y <- mvrnorm(n, mu = rep(0, p), Sigma = U)
Mhat <- (t(X) %*% X)/n
Uhat <- (t(Y) %*% Y)/n
Ghat_1D <- manifold1D(Mhat, Uhat, u, params=NULL)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.