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