moderndid.prodspline#
- moderndid.prodspline(x, K, z=None, indicator=None, xeval=None, zeval=None, knots='quantiles', basis='additive', x_min=None, x_max=None, deriv_index=1, deriv=0)[source]#
Create multivariate spline basis with B-spline components.
Constructs additive, tensor product, or generalized linear product (GLP) basis functions for multivariate continuous and discrete predictors.
- Parameters:
- x
numpy.ndarray Continuous predictor matrix of shape (n, p).
- K
numpy.ndarray Matrix of shape (p, 2) containing spline specifications:
Column 0: degree for each continuous variable
Column 1: number of segments - 1 for each variable
- z
numpy.ndarray, optional Discrete predictor matrix of shape (n, q).
- indicator
numpy.ndarray, optional Indicator vector of length q for discrete variables (1 to include).
- xeval
numpy.ndarray, optional Evaluation points for continuous variables. If None, uses x.
- zeval
numpy.ndarray, optional Evaluation points for discrete variables. If None, uses z.
- knots{“quantiles”, “uniform”}, default=”quantiles”
Method for knot placement: - “quantiles”: Knots at data quantiles - “uniform”: Uniformly spaced knots
- basis{“additive”, “tensor”, “glp”}, default=”additive”
Type of basis construction:
“additive”: Sum of univariate bases
“tensor”: Full tensor product of all bases
“glp”: Generalized linear product (hierarchical interactions)
- x_min
numpy.ndarray, optional Minimum values for each continuous variable.
- x_max
numpy.ndarray, optional Maximum values for each continuous variable.
- deriv_index
int, default=1 Index (1-based) of variable for derivative computation.
- deriv
int, default=0 Order of derivative to compute.
- x
- Returns:
MultivariateBasisNamedTuple containing:
basis: Complete basis matrix
dim_no_tensor: Number of columns before tensor product
degree_matrix: Copy of K matrix
n_segments: Number of segments for each variable
basis_type: Type of basis used
References
[1]Wood, S. N. (2017). Generalized Additive Models: An Introduction with R. Chapman and Hall/CRC.