Rev 26000 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{predict.smooth.spline}\alias{predict.smooth.spline}%\alias{predict.smooth.spline.fit}\title{Predict from Smoothing Spline Fit}\description{Predict a smoothing spline fit at new points, return the derivative ifdesired. The predicted fit is linear beyond the original data.}\usage{\method{predict}{smooth.spline}(object, x, deriv = 0, \dots)}\arguments{\item{object}{a fit from \code{smooth.spline}.}\item{x}{the new values of x.}\item{deriv}{integer; the order of the derivative required.}\item{\dots}{further arguments passed to or from other methods.}}\value{A list with components\item{x}{The input \code{x}.}\item{y}{The fitted values or derivatives at \code{x}.}}\seealso{\code{\link{smooth.spline}}}\examples{data(cars)attach(cars)cars.spl <- smooth.spline(speed, dist, df=6.4)\dontshow{print.default(cars.spl)}## "Proof" that the derivatives are okay, by comparing with approximationdiff.quot <- function(x,y) {## Difference quotient (central differences where available)n <- length(x); i1 <- 1:2; i2 <- (n-1):nc(diff(y[i1]) / diff(x[i1]), (y[-i1] - y[-i2]) / (x[-i1] - x[-i2]),diff(y[i2]) / diff(x[i2]))}xx <- unique(sort(c(seq(0,30, by = .2), kn <- unique(speed))))i.kn <- match(kn, xx)# indices of knots within xxop <- par(mfrow = c(2,2))plot(speed, dist, xlim = range(xx), main = "Smooth.spline & derivatives")lines(pp <- predict(cars.spl, xx), col = "red")points(kn, pp$y[i.kn], pch = 3, col="dark red")mtext("s(x)", col = "red")for(d in 1:3){n <- length(pp$x)plot(pp$x, diff.quot(pp$x,pp$y), type = 'l', xlab="x", ylab="",col = "blue", col.main = "red",main= paste("s",paste(rep("'",d), collapse=""),"(x)", sep=""))mtext("Difference quotient approx.(last)", col = "blue")lines(pp <- predict(cars.spl, xx, deriv = d), col = "red")\dontshow{print(pp)}points(kn, pp$y[i.kn], pch = 3, col="dark red")abline(h=0, lty = 3, col = "gray")}detach(); par(op)}\keyword{smooth}