R: Sparse Constrained Regression Quantile Fitting

rq.fit.sfnc {quantreg} | R Documentation

## Sparse Constrained Regression Quantile Fitting

### Description

Fit constrained regression quantiles using a sparse implementation of the Frisch-Newton Interior-point algorithm.

### Usage

    rq.fit.sfnc(x, y, R, r, tau = 0.5,
                rhs = (1-tau)*c(t(x) %*% rep(1,length(y))),control)

### Arguments

`x` | structure of the design matrix X stored in csr format
`y` | response vector
`R` | constraint matrix stored in csr format
`r` | right-hand-side of the constraint
`tau` | desired quantile
`rhs` | the right-hand-side of the dual problem; regular users shouldn't need to specify this.
`control` | control paramters for fitting see `sfn.control`

### Details

This is a sparse implementation of the Frisch-Newton algorithm for constrained quantile regression described in Koenker and Portnoy (1996). The sparse matrix linear algebra is implemented through the functions available in the R package SparseM.

### Value

`coef` | Regression quantile coefficients
`ierr` | Error code for the internal Fortran routine `srqfn`: 1: insufficient work space in call to `extract` 3: insufficient storage in iwork when calling ordmmd 4: insufficient storage in iwork when calling sfinit 5: nnzl > nnzlmax when calling sfinit 6: nsub > nsubmax when calling sfinit 7: insufficient work space in iwork when calling symfct 8: inconsistancy in input when calling symfct 9: tmpsiz > tmpmax when calling symfct; increase tmpmax 10: nonpositive diagonal encountered when calling blkfct 11: insufficient work storage in tmpvec when calling blkfct 12: insufficient work storage in iwork when calling blkfct 13: nnzd > nnzdmax in e,je when calling amub 14: nnzd > nnzdmax in g,jg when calling amub 15: nnzd > nnzdmax in h,jh when calling aplb 15: tiny diagonals replaced with Inf when calling blkfct
`it` | Iteration count
`time` | Amount of time used in the computation

### Author(s)

Pin Ng

### References

Koenker, R and Ng, P. (2002). SparseM: A Sparse Matrix Package for R;
http://www.econ.uiuc.edu/~roger/research/

Koenker, R. and P. Ng(2005). Inequality Constrained Quantile Regression, Sankya, 418-440.

### See Also

`rq.fit.sfn` for the unconstrained version, SparseM for the underlying sparse matrix R package.

### Examples

    ## An artificial example :
    n <- 200
    p <- 50
    set.seed(17)
    X <- rnorm(n*p)
    X[abs(X) < 2.0] <- 0
    X <- cbind(1,matrix(X,n,p))
    y <- 0.5 * apply(X,1,sum) + rnorm(n) ## true beta = (0.5, 0.5, ...)
    R <- rbind(diag(p+1), -diag(p+1))
    r <- c(rep( 0, p+1), rep(-1, p+1))

    sX <- as.matrix.csr(X)
    sR <- as.matrix.csr(R)
    try(rq.o <- rq.fit.sfnc(sX, y, sR, r)) #-> not enough tmp memory

    (tmpmax <- floor(1e5 + exp(-12.1)*(sX@ia[p+1]-1)^2.35))
    ## now ok:
    rq.o <- rq.fit.sfnc(sX, y, sR, r, control = list(tmpmax = tmpmax))

[Package quantreg version 5.83 Index]