# MortSmooth_bbase: Construct B-spline basis In MortalitySmooth: Smoothing and Forecasting Poisson Counts with P-Splines

## Description

This is an internal function of package `MortalitySmooth` which creates equally-spaced B-splines basis over an abscissa of data within the function `Mort1Dsmooth`.

## Usage

 `1` ```MortSmooth_bbase(x, xl, xr, ndx, deg) ```

## Arguments

 `x` vector for the abscissa of data. `xl` left boundary. `xr` right boundary. `ndx` number of internal knots minus one or number of internal intervals. `deg` degree of the splines.

## Details

The function reproduce an algorithm presented by Eilers and Marx (2010) using differences of truncated power functions (see `MortSmooth_tpower`). The final matrix has a single B-spline for each of the [`ndx` + `deg`] columns. The number of rows is equal to the length of `x`.

The function differs from `bs` in the package `splines` since it automatically constructed B-splines with identical shape. This would allow a simple interpretation of coefficients and application of simple differencing.

## Value

A matrix containing equally-spaced B-splines of degree `deg` along `x` for each column.

Carlo G Camarda

## References

Eilers P. H. C. and B. D. Marx (2010). Splines, Knots, and Penalties. Wiley Interdisciplinary Reviews: Computational Statistics. 2, 637-653.

`MortSmooth_tpower`.
 ```1 2 3 4 5 6 7 8 9``` ```x <- seq(0,1,length=500) ## B-splines basis of degree 1 B1 <- MortSmooth_bbase(x=x, xl=min(x), xr=max(x), ndx=10, deg=1) matplot(x, B1, t="l", main="B-splines basis of degree 1") ## B-splines basis of degree 3 B3 <- MortSmooth_bbase(x=x, xl=min(x), xr=max(x), ndx=10, deg=3) matplot(x, B3, t="l", main="B-splines basis of degree 3") ```