sofar | R Documentation |
Compute solution paths of sparse orthogonal factor regression
sofar( Y, X, nrank = 1, su = NULL, sv = NULL, ic.type = c("GIC", "BIC", "AIC", "GCV"), modstr = list(), control = list(), screening = FALSE )
Y |
response matrix |
X |
covariate matrix |
nrank |
an integer specifying the desired rank/number of factors |
su |
a scaling vector for U such that U^TU = diag(s_u). |
sv |
a scaling vector for V such that V^TV = diag(s_v). |
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. |
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.
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 |
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.
## 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.