sofar {rrpack} | R Documentation |
Sparse orthogonal factor regression
Description
Compute solution paths of sparse orthogonal factor regression
Usage
sofar(
Y,
X,
nrank = 1,
su = NULL,
sv = NULL,
ic.type = c("GIC", "BIC", "AIC", "GCV"),
modstr = list(),
control = list(),
screening = FALSE
)
Arguments
Y |
response matrix |
X |
covariate matrix |
nrank |
an integer specifying the desired rank/number of factors |
su |
a scaling vector for U such that |
sv |
a scaling vector for V such that |
ic.type |
select tuning method; the default is GIC |
modstr |
a list of internal model parameters controlling the model fitting |
control |
a list of internal computation parameters controlling optimization |
screening |
If TRUE, marginal screening via lasso is performed before sofar fitting. |
Details
The model parameters can be specified through argument modstr
.
The available elements include
mu: parameter in the augmented Lagrangian function.
mugamma: increament of mu along iterations to speed up computation.
WA: weight matrix for A.
WB: weight matrix for B.
Wd: weight matrix for d.
wgamma: power parameter in constructing adaptive weights.
The model fitting can be controled through argument control
.
The avilable elements include
nlam: number of lambda triplets to be used.
lam.min.factor: set the smallest lambda triplets as a fraction of the estimation lambda.max triplets.
lam.max.factor: set the largest lambda triplets as a multiple of the estimation lambda.max triplets.
lam.AB.factor: set the relative penalty level between A/B and D.
penA,penB,penD: if TRUE, penalty is applied.
lamA: sequence of tuning parameters for A.
lamB: sequence of tuning parameters for B.
lamD: sequence of tuning parameters for d.
methodA: penalty for penalizing A.
methodB: penalty for penalizing B.
epsilon: convergence tolerance.
maxit: maximum number of iterations.
innerEpsilon: convergence tolerance for inner subroutines.
innerMaxit: maximum number of iterations for inner subroutines.
sv.tol: tolerance for singular values.
Value
A sofar
object containing
call |
original function call |
Y |
input response matrix |
X |
input predictor matrix |
Upath |
solution path of U |
Dpath |
solution path of D |
Vpath |
solution path of D |
Rpath |
path of estimated rank |
icpath |
path of information criteria |
lam.id |
ids of selected lambda for GIC, BIC, AIC and GCV |
p.index |
ids of predictors which passed screening |
q.index |
ids of responses which passed screening |
lamA |
tuning sequence for A |
lamB |
tuning sequence for B |
lamD |
tuning sequence for D |
U |
estimated left singular matrix that is orthogonal (factor weights) |
V |
estimated right singular matrix that is orthogonal (factor loadings) |
D |
estimated singular values |
rank |
estimated rank |
References
Uematsu, Y., Fan, Y., Chen, K., Lv, J., & Lin, W. (2019). SOFAR: large-scale association network learning. IEEE Transactions on Information Theory, 65(8), 4924–4939.
Examples
## Not run:
library(rrpack)
## Simulate data from a sparse factor regression model
p <- 100; q <- 50; n <- 100; nrank <- 3
mydata <- rrr.sim1(n, p, q, nrank, s2n = 1,
sigma = NULL, rho_X = 0.5, rho_E = 0.3)
Y <- mydata$Y
X <- mydata$X
fit1 <- sofar(Y, X, ic.type = "GIC", nrank = nrank + 2,
control = list(methodA = "adlasso", methodB = "adlasso"))
summary(fit1)
plot(fit1)
fit1$U
crossprod(fit1$U) #check orthogonality
fit1$V
crossprod(fit1$V) #check orthogonality
## End(Not run)