pcntoolkit.math_functions.basis_function ======================================== .. py:module:: pcntoolkit.math_functions.basis_function Classes ------- .. autoapisummary:: pcntoolkit.math_functions.basis_function.BasisFunction pcntoolkit.math_functions.basis_function.BsplineBasisFunction pcntoolkit.math_functions.basis_function.CompositeBasisFunction pcntoolkit.math_functions.basis_function.FractionalPolynomialBasisFunction pcntoolkit.math_functions.basis_function.LinearBasisFunction pcntoolkit.math_functions.basis_function.PolynomialBasisFunction Functions --------- .. autoapisummary:: pcntoolkit.math_functions.basis_function.create_basis_function Module Contents --------------- .. py:class:: BasisFunction(basis_column: int = 0, **kwargs) Bases: :py:obj:`abc.ABC` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: fit(X: numpy.ndarray) -> None .. py:method:: from_args(name: str, args: dict) -> BasisFunction :classmethod: .. py:method:: from_dict(my_dict: dict, version: str | None = None) -> BasisFunction :classmethod: .. py:method:: to_dict() -> dict .. py:method:: transform(X: numpy.ndarray) -> numpy.ndarray .. py:attribute:: basis_column :value: 0 .. py:attribute:: basis_name :type: str .. py:attribute:: compute_max :type: bool .. py:attribute:: compute_min :type: bool .. py:property:: dimension :abstractmethod: .. py:attribute:: is_fitted :type: bool .. py:attribute:: max :type: float | None .. py:attribute:: min :type: float | None .. py: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: :py:obj:`BasisFunction` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: to_dict() -> dict .. py:attribute:: basis_name :value: 'bspline' .. py:attribute:: degree :value: 3 .. py:property:: dimension .. py:attribute:: knot_method :value: 'uniform' .. py:attribute:: left_expand :value: 0.05 .. py:attribute:: nknots :value: 5 .. py:attribute:: right_expand :value: 0.05 .. py:class:: CompositeBasisFunction(parts) Bases: :py:obj:`BasisFunction` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: fit(X) .. py:method:: to_dict() .. py:method:: transform(X) .. py:property:: dimension .. py:attribute:: parts .. py: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: :py:obj:`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. :param basis_column: Column index to transform. :type basis_column: :py:class:`int`, *default* ``0`` :param order: Fractional polynomial order. Must be 1, 2, or 3. :type order: :py:class:`int`, *default* ``3`` :param powers: :type powers: :py:class:`list`, :py:class:`tuple`, :py:class:`str`, or :py:obj:`None`, *default* ``"default"`` :param power_set: Allowed fractional polynomial powers. :type power_set: :py:class:`list`, :py:class:`tuple`, or :py:obj:`None`, *default* :py:obj:`None` :param eps: Numerical stability constant. :type eps: :py:class:`float`, *default* ``1e-8`` .. py:method:: to_dict() -> dict Serialize the basis function configuration. .. py:attribute:: AGE_FP_POWER_PRESETS .. py:attribute:: DEFAULT_POWER_SET .. py:attribute:: basis_name :value: 'fractional_polynomial' .. py:property:: dimension :type: int Number of generated basis columns. .. py:attribute:: eps .. py:attribute:: order :value: 3 .. py:attribute:: power_set .. py:class:: LinearBasisFunction(basis_column: int = 0, **kwargs) Bases: :py:obj:`BasisFunction` Helper class that provides a standard way to create an ABC using inheritance. .. py:attribute:: basis_name :value: 'linear' .. py:property:: dimension .. py:class:: PolynomialBasisFunction(basis_column: int = 0, degree: int = 3, **kwargs) Bases: :py:obj:`BasisFunction` Helper class that provides a standard way to create an ABC using inheritance. .. py:attribute:: basis_name :value: 'poly' .. py:attribute:: degree :value: 3 .. py:property:: dimension .. py:function:: create_basis_function(basis_type: str | dict | None, basis_column: int = 0, **kwargs) -> BasisFunction