Description Usage Arguments Details Value Note Examples
Estimate the envelope subspace based on R package "ManifoldOptim".
1 | manifoldFG(M, U, d, G_ini, 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. |
G_ini |
The initial value for mannifold optimization. |
params |
Option structure with fields:
The default values are: |
Estimating M
-envelope contains span(U)
where M > 0
and is symmetric and the
dimension of the envelope is d
.
G_hat |
The orthogonal basis of the envelope subspace. |
ManifoldOptim_module
should be loaded first before using function manifoldFG
.
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 39 40 | 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)
Ghat_FG <- manifoldFG(Mhat, Uhat, u, Ghat_1D)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.