statsmodels.gam.smooth_basis.BSplines¶

class
statsmodels.gam.smooth_basis.
BSplines
(x, df, degree, include_intercept=False, constraints=None, variable_names=None, knot_kwds=None)[source]¶ additive smooth components using BSplines
This creates and holds the BSpline basis function for several components.
 Parameters
 xarray_like, 1D or 2D
underlying explanatory variable for smooth terms. If 2dimensional, then observations should be in rows and explanatory variables in columns.
 df
int
numer of basis functions or degrees of freedom
 degree
int
degree of the spline
 include_interceptbool
If False, then the basis functions are transformed so that they do not include a constant. This avoids perfect collinearity if a constant or several components are included in the model.
 constraints{
None
,str
,array
} Constraints are used to transform the basis functions to satisfy those constraints. constraints = ‘center’ applies a linear transform to remove the constant and center the basis functions.
 variable_names{
list
[str
],None
} The names for the underlying explanatory variables, x used in for creating the column and parameter names for the basis functions. If
x
is a pandas object, then the names will be taken from it. knot_kwds
None
orlist
of
dict
option for the knot selection. By default knots are selected in the same way as in patsy, however the number of knots is independent of keeping or removing the constant. Interior knot selection is based on quantiles of the data and is the same in patsy and mgcv. Boundary points are at the limits of the data range. The available options use with get_knots_bsplines are
knots : None or array interior knots
spacing : ‘quantile’ or ‘equal’
lower_bound : None or float location of lower boundary knots, all boundary knots are at the same point
upper_bound : None or float location of upper boundary knots, all boundary knots are at the same point
all_knots : None or array If all knots are provided, then those will be taken as given and all other options will be ignored.
Notes
A constant in the spline basis function can be removed in two different ways. The first is by dropping one basis column and normalizing the remaining columns. This is obtained by the default
include_intercept=False, constraints=None
The second option is by using the centering transform which is a linear transformation of all basis functions. As a consequence of the transformation, the Bspline basis functions do not have locally bounded support anymore. This is obtainedconstraints='center'
. In this caseinclude_intercept
will be automatically set to True to avoid dropping an additional column. Attributes
 smoothers
list
of
univariate
smooth
component
instances
 basis
design
matrix
,array
of
spline
bases
columns
for
all
components
 penalty_matrices
list
of
penalty
matrices
,one
for
each
smooth
term
 dim_basis
number
of
columns
in
the
basis
 k_variables
number
of
smooth
components
 col_names
created
names
for
the
basis
columns
 There are additional attributes about the specification of the splines
 and some attributes mainly for internal use.
 smoothers
Methods
transform
(x_new)create the spline basis for new observations