Rev 7188 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{cSplineDes}\alias{cSplineDes}%- Also NEED an `\alias' for EACH other topic documented here.\title{Evaluate cyclic B spline basis}\description{ Uses \code{splineDesign} to set up the model matrix for a cyclic B-spline basis.}\usage{cSplineDes(x, knots, ord = 4, derivs=0,sparse=FALSE)}%- maybe also `usage' for other objects documented here.\arguments{\item{x}{ covariate values for smooth.}\item{knots}{The knot locations: the range of these must include all the data.}\item{ord}{ order of the basis. 4 is a cubic spline basis. Must be >1.}\item{derivs}{ order of derivative of the spline to evaluate, between 0 and \code{ord}-1. Recycled to length of \code{x}. }\item{sparse}{set to \code{TRUE} to generate a sparse model matrix.}}\details{ The routine is a wrapper that sets up a B-spline basis, where the basis functions wrap at the first andlast knot locations.}\value{ A matrix with \code{length(x)} rows and \code{length(knots)-1} columns.}\author{ Simon N. Wood \email{simon.wood@r-project.org}}\seealso{\code{\link{cyclic.p.spline}}}\examples{require(mgcv)## create some x's and knots...n <- 200x <- 0:(n-1)/(n-1);k<- 0:5/5X <- cSplineDes(x,k) ## cyclic spline design matrix## plot evaluated basis functions...plot(x,X[,1],type="l"); for (i in 2:5) lines(x,X[,i],col=i)## check that the ends match up....ee <- X[1,]-X[n,];eetol <- .Machine$double.eps^.75if (all.equal(ee,ee*0,tolerance=tol)!=TRUE)stop("cyclic spline ends don't match!")## similar with uneven data spacing...x <- sort(runif(n)) + 1 ## sorting just makes end checking easyk <- seq(min(x),max(x),length=8) ## create knotsX <- cSplineDes(x,k) ## get cyclic spline model matrixplot(x,X[,1],type="l"); for (i in 2:ncol(X)) lines(x,X[,i],col=i)ee <- X[1,]-X[n,];ee ## do ends match??tol <- .Machine$double.eps^.75if (all.equal(ee,ee*0,tolerance=tol)!=TRUE)stop("cyclic spline ends don't match!")}\keyword{models} \keyword{smooth} \keyword{regression}%-- one or more ..