Learn R Programming

rrpack (version 0.1-14)

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
)

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

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.

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