Learn R Programming

rrpack (version 0.1-13)

rssvd: Reduced-rank regression with a sparse singular value decomposition

Description

Reduced-rank regression with a sparse singular value decomposition using the iterative exclusive extraction algorithm.

Usage

rssvd(
  Y,
  X,
  nrank,
  ic.type = c("BIC", "BICP", "AIC"),
  orthX = FALSE,
  control = list(),
  screening = FALSE
)

Arguments

Y

response matrix

X

covariate matrix

nrank

integer specification of the desired rank

ic.type

character specifying which information criterion to use to select the best: `BIC', `BICP', and `AIC'

orthX

logical indicating if X is orthogonal, in which case a faster algorithm is used

control

a list of parameters controlling the fitting process

screening

If TRUE, marginal screening via glm is performed before srrr fitting.

Value

S3 rssvd.path object, a list consisting of

Upath

solution path of U

Vpath

solution path of V

Dpath

solution path of D

U

estimated left singular matrix that is orthogonal

V

estimated right singular matrix that is orthogonal

D

estimated singular values such that C=UDVt

rank

estimated rank

Details

The model fitting can be controled through argument control. The available elements include

  • maxit: maximum number of iterations.

  • epsilon: convergence tolerance.

  • innerMaxit: maximum number of iterations for inner steps.

  • innerEpsilon: convergence tolerance for inner steps.

  • nlambda: number of tuning parameters.

  • adaptive: if Ture, use adaptive penalization.

  • gamma0: power parameter for constructing adaptive weights.

  • minLambda: multiplicate factor to determine the minimum lambda.

  • niter.eea: the number of iterations in the iterative exclusive extraction algorithm.

  • df.tol: tolerance.

References

Chen, K., Chan, K.-S. and Stenseth, N. C. (2012) Reduced rank stochastic regression with a sparse singular value decomposition. Journal of the Royal Statistical Society: Series B, 74, 203--221.

Examples

Run this code
# NOT RUN {
library(rrpack)
## Simulate data from a sparse factor regression model
p <- 50; 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)
fit1 <- with(mydata, rssvd(Y, X, nrank = nrank + 1))
summary(fit1)
plot(fit1)
# }

Run the code above in your browser using DataLab