splineDesign {splines} | R Documentation |

## Design Matrix for B-splines

### Description

Evaluate the design matrix for the B-splines defined by `knots`

at the values in `x`

.

### Usage

splineDesign(knots, x, ord = 4, derivs, outer.ok = FALSE)
spline.des(knots, x, ord = 4, derivs, outer.ok = FALSE)

### Arguments

`knots` |
a numeric vector of knot positions with non-decreasing
values. |

`x` |
a numeric vector of values at which to evaluate the B-spline
functions or derivatives. Unless `outer.ok` is truee, the
values in `x` must be between `knots[ord]` and
`knots[ length(knots) + 1 - ord ]` . |

`ord` |
a positive integer giving the order of the spline function.
This is the number of coefficients in each piecewise polynomial
segment, thus a cubic spline has order 4. Defaults to 4. |

`derivs` |
an integer vector of the same length as `x` and with
values between `0` and `ord - 1` . The derivative of the
given order is evaluated at the `x` positions. Defaults to a
vector of zeroes of the same length as `x` . |

`outer.ok` |
logical indicating if `x` should be allowed
outside the *inner* knots, see the `x` argument. |

### Value

A matrix with `length( x )`

rows and `length( knots ) - ord`

columns. The i'th row of the matrix contains the coefficients of the
B-splines (or the indicated derivative of the B-splines) defined by
the `knot`

vector and evaluated at the i'th value of `x`

.
Each B-spline is defined by a set of `ord`

successive knots so
the total number of B-splines is `length(knots)-ord`

.

### Note

The older `spline.des`

function takes the same arguments but
returns a list with several components including `knots`

,
`ord`

, `derivs`

, and `design`

. The `design`

component is the same as the value of the `splineDesign`

function.

### Author(s)

Douglas Bates and Bill Venables

### Examples

splineDesign(knots = 1:10, x = 4:7)
knots <- c(1,1.8,3:5,6.5,7,8.1,9.2,10)# 10 => 10-4 = 6 Basis splines
x <- seq(min(knots)-1, max(knots)+1, length=501)
bb <- splineDesign(knots, x=x, outer.ok = TRUE)
plot(range(x), c(0,1), type="n", xlab="x", ylab="",
main= "B-splines - sum to 1 inside inner knots")
mtext(expression(B[j](x) *" and "* sum(B[j](x), j==1, 6)), adj=0)
abline(v=knots, lty=3, col="light gray")
abline(v=knots[c(4,length(knots)-3)], lty=3, col="gray10")
lines(x, rowSums(bb), col="gray", lwd=2)
matlines(x, bb, ylim = c(0,1), lty=1)

[Package

*splines* version 2.1.0

Index]