R: Cubic spline interpolation

splint {fields} | R Documentation

## Cubic spline interpolation

### Description

A fast, FORTRAN based function for cubic spline interpolation.

### Usage

    splint(x, y, xgrid, wt=NULL, derivative=0,lam=0, df=NA, lambda=NULL, nx=NULL)

### Arguments

`x` | The x values that define the curve or a two column matrix of x and y values.
`y` | The y values that are paired with the x's.
`xgrid` | The grid to evaluate the fitted cubic interpolating curve.
`derivative` | Indicates whether the function or a a first or second derivative should be evaluated.
`wt` | Weights for different obsrevations in the scale of reciprocal variance.
`lam` | Value for smoothing parameter. Default value is zero giving interpolation.
`lambda` | Same as `lam` just to make this easier to remember.
`df` | Effective degrees of freedom. Default is to use lambda =0 or a df equal to the number of observations.
`nx` | If not NULL this should be the number of points to evaluate on an equally spaced grid in the range of `x`

### Details

Fits a piecewise interpolating or smoothing cubic polynomial to the x and y values. This code is designed to be fast but does not many options in `sreg` or other more statistical implementations. To make the solution well posed the the second and third derivatives are set to zero at the limits of the x values. Extrapolation outside the range of the x values will be a linear function.

It is assumed that there are no repeated x values; use sreg followed by predict if you do have replicated data.

### Value

A vector consisting of the spline evaluated at the grid values in `xgrid`.

### References

See Additive Models by Hastie and Tibshriani.

### See Also

sreg, Tps

### Examples

    x<- seq( 0, 120,,200)

    # an interpolation
    splint(rat.diet$t, rat.diet$trt,x )-> y

    plot( rat.diet$t, rat.diet$trt)
    lines( x,y)
    #( this is weird and not appropriate!)

    # the following two smooths should be the same

    splint( rat.diet$t, rat.diet$con,x, df= 7)-> y1

    # sreg function has more flexibility than splint but will
    # be slower for larger data sets.

    sreg( rat.diet$t, rat.diet$con, df= 7)-> obj
    predict(obj, x)-> y2

    # in fact predict.sreg interpolates the predicted values using splint!

    # the two predicted lines (should) coincide
    lines( x,y1, col="red",lwd=2)
    lines(x,y2, col="blue", lty=2,lwd=2)

[Package fields version 9.6.1 Index]