# qbsks: Quantile B-Spline with Fixed Knots In cobs: Constrained B-Splines (Sparse Matrix Based)

## Description

Compute B-spline coefficients for regression quantile B-spline with stepwise knots selection and quantile B-spline with fixed knots regression spline, using Ng (1996)'s algorithm.

## Usage

 ```1 2 3 4 5``` ```qbsks2(x,y,w,pw, knots,nknots, degree,Tlambda, constraint, ptConstr, maxiter, trace, nrq,nl1, neqc, tau, select.lambda, ks, do.select, knots.add, repeat.delete.add, ic, print.mesg, give.pseudo.x = TRUE, rq.tol = 1e-8, tol.kn = 1e-6, tol.0res = 1e-6, print.warn, nk.start) ```

## Arguments

 `x` numeric vector, sorted increasingly, the abscissa values `y` numeric, same length as `x`, the observations. `w` numeric vector of weights, same length as `x`, as in `cobs`. `pw` penalty weights vector ... ...
 `knots` numeric vector of knots of which `nknots` will be used. `nknots` number of `knots` to be used.
 `degree` integer specifying polynomial degree; must be 1 or 2. `Tlambda` (vector of) smoothing parameter(s) λ, see `drqssbc2`. `constraint` string (or empty) specifying the global constraints; see `cobs`. `ptConstr` `list` of pointwise constraints. `maxiter` non-negative integer: maximal number of iterations, passed to `drqssbc2`. `trace` integer or logical indicating the tracing level of the underlying algorithms; not implemented (due to lack of trace in quantreg ...) `nrq,nl1,neqc` integers specifying dimensionalities, directly passed to `drqssbc2`, see there. `tau` desired quantile level (in interval (0,1)). `select.lambda` passed to `drqssbc2`, see there. `ks` number used as offset in SIC/AIC/BIC. `do.select` logical indicating if knots shall be selected (instead of used as specified). `knots.add, repeat.delete.add` logicals, see `cobs`. `ic` information criterion to use, see `cobs`. `print.mesg` an integer indicating how `qbsks2()` should print message about its current stages. `give.pseudo.x` logical indicating if the pseudo design matrix X\~ should be returned (as sparse matrix). `rq.tol` numeric convergence tolerance for the interior point algorithm called from `rq.fit.sfnc()` or `rq.fit.sfn()`. `tol.kn` “tolerance” for shifting the outer knots. `tol.0res` tolerance passed to `drqssbc2`. `print.warn` flag indicating if and how much warnings and information is to be printed; currently just passed to `drqssbc2`. `nk.start` number of starting knots used in automatic knot selection.

## Details

This is an auxiliary function for `cobs(*, lambda = 0)`, possibly interesting on its own. This documentation is currently sparse; read the source code!

## Value

a list with components

 `coef` .. `fidel` .. `k` dimensionality of model fit. `ifl` integer “flag”; the return code. `icyc` integer of length 2, see `cobs`. `knots` the vector of inner knots. `nknots` the number of inner knots. `nvar` the number of “variables”, i.e. unknowns including constraints. `lambda` the penalty factor, chosen or given. `pseudo.x` the pseudo design matrix X, as returned from `drqssbc2`.

## Author(s)

Pin Ng; this help page: Martin Maechler.

## References

Ng, P. (1996) An Algorithm for Quantile Smoothing Splines, Computational Statistics \& Data Analysis 22, 99–118.

See also the references in `cobs`.

the main function `cobs`; further `drqssbc2` which is called from `qbsks2()`.