# gsl-bs: GSL (GNU Scientific Library) B-spline/B-spline Derivatives In crs: Categorical Regression Splines

## Description

`gsl.bs` generates the B-spline basis matrix for a polynomial spline and (optionally) the B-spline basis matrix derivative of a specified order with respect to each predictor

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```gsl.bs(...) ## Default S3 method: gsl.bs(x, degree = 3, nbreak = 2, deriv = 0, x.min = NULL, x.max = NULL, intercept = FALSE, knots = NULL, ...) ```

## Arguments

 `x` the predictor variable. Missing values are not allowed `degree` degree of the piecewise polynomial - default is ‘3’ (cubic spline) `nbreak` number of breaks in each interval - default is ‘2’ `deriv` the order of the derivative to be computed-default if `0` `x.min` the lower bound on which to construct the spline - defaults to `min(x)` `x.max` the upper bound on which to construct the spline - defaults to `max(x)` `intercept` if ‘TRUE’, an intercept is included in the basis; default is ‘FALSE’ `knots` a vector (default `knots="NULL"`) specifying knots for the spline basis (default enables uniform knots, otherwise those provided are used) `...` optional arguments

## Details

Typical usages are (see below for a list of options and also the examples at the end of this help file)

 ```1 2 3``` ``` B <- gsl.bs(x,degree=10) B.predict <- predict(gsl.bs(x,degree=10),newx=xeval) ```

## Value

`gsl.bs` returns a `gsl.bs` object. A matrix of dimension ‘c(length(x), degree+nbreak-1)’. The generic function `predict` extracts (or generates) predictions from the returned object.

A primary use is in modelling formulas to directly specify a piecewise polynomial term in a model. See https://www.gnu.org/software/gsl/ for further details.

## Author(s)

Jeffrey S. Racine racinej@mcmaster.ca

## References

Li, Q. and J.S. Racine (2007), Nonparametric Econometrics: Theory and Practice, Princeton University Press.

Ma, S. and J.S. Racine and L. Yang (2015), “Spline Regression in the Presence of Categorical Predictors,” Journal of Applied Econometrics, Volume 30, 705-717.

Ma, S. and J.S. Racine (2013), “Additive Regression Splines with Irrelevant Categorical and Continuous Regressors,” Statistica Sinica, Volume 23, 515-541.

`bs`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12``` ```## Plot the spline bases and their first order derivatives x <- seq(0,1,length=100) matplot(x,gsl.bs(x,degree=5),type="l") matplot(x,gsl.bs(x,degree=5,deriv=1),type="l") ## Regression example n <- 1000 x <- sort(runif(n)) y <- cos(2*pi*x) + rnorm(n,sd=.25) B <- gsl.bs(x,degree=5,intercept=FALSE) plot(x,y,cex=.5,col="grey") lines(x,fitted(lm(y~B))) ```