This function generates the I-spline (integral of M-spline) basis matrix for
a polynomial spline or its derivatives of given order..

iSpline(x, df = NULL, knots = NULL, degree = 3L, intercept = FALSE,
Boundary.knots = range(x, na.rm = TRUE), derivs = 0L, ...)

## Arguments

x |
The predictor variable. Missing values are allowed and will be
returned as they were. |

df |
Degrees of freedom. One can specify `df` rather than
`knots` , then the function chooses "df - degree" (minus one if
there is an intercept) knots at suitable quantiles of `x` (which
will ignore missing values). The default, `NULL` , corresponds to
no inner knots, i.e., "degree - intercept". |

knots |
The internal breakpoints that define the spline. The default
is `NULL` , which results in a basis for ordinary polynomial
regression. Typical values are the mean or median for one knot,
quantiles for more knots. See also `Boundary.knots` . |

degree |
Non-negative integer degree of the piecewise polynomial. The
default value is 3 for cubic splines. Note that the degree of I-spline
is defined to be the degree of the associated M-spline instead of actual
polynomial degree. In other words, I-spline basis of degree 2 is defined
as the integral of associated M-spline basis of degree 2. |

intercept |
If `TRUE` , an intercept is included in the basis;
Default is `FALSE` . |

Boundary.knots |
Boundary points at which to anchor the I-spline basis.
By default, they are the range of the non-`NA` data. If both
`knots` and `Boundary.knots` are supplied, the basis
parameters do not depend on `x` . Data can extend beyond
`Boundary.knots` . |

derivs |
A non-negative integer specifying the order of derivatives of
I-splines. |

... |
Optional arguments for future usage. |

## Value

A matrix of dimension `length(x)`

by
`df = degree + length(knots)`

(plus on if intercept is included).
Attributes that correspond to the arguments specified are returned
for usage of other functions in this package.

## Details

It is an implementation of the close form I-spline basis based on the
recursion formula of B-spline basis. Internally, it calls
`mSpline`

and `bSpline`

, and generates a basis
matrix for representing the family of piecewise polynomials and their
corresponding integrals with the specified interior knots and degree,
evaluated at the values of `x`

.

## References

Ramsay, J. O. (1988). Monotone regression splines in action.
*Statistical science*, 3(4), 425--441.

## See also

## Examples