sofar: Sparse orthogonal factor regression

View source: R/sofar.R

sofarR 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 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.

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)


rrpack documentation built on June 16, 2022, 9:05 a.m.

Related to sofar in rrpack...