pcntoolkit.math_functions.basis_function#

Classes#

BasisFunction

Helper class that provides a standard way to create an ABC using

BsplineBasisFunction

Helper class that provides a standard way to create an ABC using

CompositeBasisFunction

Helper class that provides a standard way to create an ABC using

FractionalPolynomialBasisFunction

Fractional polynomial basis function for modelling smooth nonlinear

LinearBasisFunction

Helper class that provides a standard way to create an ABC using

PolynomialBasisFunction

Helper class that provides a standard way to create an ABC using

Functions#

create_basis_function(→ BasisFunction)

Module Contents#

class BasisFunction(basis_column: int = 0, **kwargs)#

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

fit(X: numpy.ndarray) None#
classmethod from_args(name: str, args: dict) BasisFunction#
classmethod from_dict(my_dict: dict, version: str | None = None) BasisFunction#
to_dict() dict#
transform(X: numpy.ndarray) numpy.ndarray#
basis_column = 0#
basis_name: str#
compute_max: bool#
compute_min: bool#
abstract property dimension#
is_fitted: bool#
max: float | None#
min: float | None#
class BsplineBasisFunction(basis_column: int = 0, degree: int = 3, nknots: int = 5, left_expand: float = 0.05, right_expand: float = 0.05, knot_method: str = 'uniform', knots: numpy.ndarray | list = None, **kwargs)#

Bases: BasisFunction

Helper class that provides a standard way to create an ABC using inheritance.

to_dict() dict#
basis_name = 'bspline'#
degree = 3#
property dimension#
knot_method = 'uniform'#
left_expand = 0.05#
nknots = 5#
right_expand = 0.05#
class CompositeBasisFunction(parts)#

Bases: BasisFunction

Helper class that provides a standard way to create an ABC using inheritance.

fit(X)#
to_dict()#
transform(X)#
property dimension#
parts#
class FractionalPolynomialBasisFunction(basis_column: int = 0, order: int = 3, powers: list | tuple | str | None = 'default', power_set: list | tuple | None = None, eps: float = 1e-08, **kwargs)#

Bases: BasisFunction

Fractional polynomial basis function for modelling smooth nonlinear effects.

The input must be strictly positive (do not standardize the covariates). Power convention:

p = 0 -> log(x) p != 0 -> x**p

Repeated powers:

[p, p, p] -> x**p, x**p * log(x), x**p * log(x)**2

Initialise the fractional polynomial basis function.

Parameters:
  • basis_column (int, default 0) – Column index to transform.

  • order (int, default 3) – Fractional polynomial order. Must be 1, 2, or 3.

  • powers (list, tuple, str, or None, default "default")

  • power_set (list, tuple, or None, default None) – Allowed fractional polynomial powers.

  • eps (float, default 1e-8) – Numerical stability constant.

to_dict() dict#

Serialize the basis function configuration.

AGE_FP_POWER_PRESETS#
DEFAULT_POWER_SET#
basis_name = 'fractional_polynomial'#
property dimension: int#

Number of generated basis columns.

eps#
order = 3#
power_set#
class LinearBasisFunction(basis_column: int = 0, **kwargs)#

Bases: BasisFunction

Helper class that provides a standard way to create an ABC using inheritance.

basis_name = 'linear'#
property dimension#
class PolynomialBasisFunction(basis_column: int = 0, degree: int = 3, **kwargs)#

Bases: BasisFunction

Helper class that provides a standard way to create an ABC using inheritance.

basis_name = 'poly'#
degree = 3#
property dimension#
create_basis_function(basis_type: str | dict | None, basis_column: int = 0, **kwargs) BasisFunction#