classic_estimators Package

classic_estimators Package

Package providing some well-known parametric and non-parametric regression estimators. The interface providedis similar to the deep learning based methods, thus enabling a consistent usage of different estimators within the SDE calibration package.

linear_regressor Module

class sde_calibration.classic_estimators.linear_regressor.LinearRegressionEstimator(data, stabilizer=1e-08, feature_transformation_type='polynomial', num_basis_functions=2, logger=None, **preprocessor_arguments)

Bases: sde_calibration.estimators.RegressionEstimator

Standard linear regression interface including a feature transformation into a different input space.

Parameters
  • data (pd.DataFrame) – The time series data that should be used for the estimation. The DataFrame needs to have the fields ‘t’ and ‘X’.

  • stabilizer (float, optional) –

    Regularization parameter in order to stabilize the inversion arising in the exact solution to the linear regression problem.

    |default| 1e-08

  • feature_transformation_type (str, optional) –

    Gives the type of feature transformation that should be performed. Possible values are:

  • num_basis_functions (int, optional) –

    Specifies the number of basis functions that should be used in the feature transformation.

  • logger (logging.Logger, optional) –

    A logger that should be used for logging and/or displaying intermediate resutls.

    |default| None

  • **preprocessor_arguments

    Keyword arguments that are further passed to the preprocessor class.

Return type

None

Raises

ValueError – If the type of feature transformation is not valid.

__call__(x)

Calls the model behind the estimator. Transforms the input according to the scaling provided, predicts using the fitted model and finally applies the inverse transform to the outputs of the fitted model.

Parameters

x (np.ndarray) – Array of points of prediciton.

Returns

Array containing the model predictions.

Return type

np.ndarray

Raises

NotCompiledError: If the model is not compiled, the estimator does not know whether the drift or diffusion coefficient should be approximated.

compile(mode='drift')

Method used to compile the model. For every regression estimator. It is crucial to specify whether the drift or diffusion coefficient should be approximated before the estimator can be fit or called.

Parameters

mode (str, optional) –

A string giving the mode of estimation. Possible options are:

Return type

None

Raises

ValueError – If the provided string for the mode is invalid.

fit()

Fits the model to the provided data for the mode that the estimator is compiled in.

Return type

None

Raises

NotCompiledError – If the fit function is called before the model is compiled.

get_num_parameters()

Returns the number of parameters in the model that is used by a certain estimator.

Returns

Number of parameters.

Return type

int

local_polynomial_estimator Module

class sde_calibration.classic_estimators.local_polynomial_estimator.LocalPolynomialEstimator(data, polynomial_degree=0, bandwidth=None, logger=None, **preprocessor_arguments)

Bases: sde_calibration.estimators.RegressionEstimator

Interface for a standard non-parametric regression estimator, that is the local polynomial regression.

Parameters
  • data (pd.DataFrame) – The time series data that should be used for the estimation. The DataFrame needs to have the fields ‘t’ and ‘X’.

  • polynomial_degree (int, optional) –

    Determines the degree of the local polynomial that should be used for the local approximation. If 0 is provided this is equivalent to the Nadaraya-Watson estimator.

  • bandwidth (float, optional) –

    Bandwidth that should be used for the kernel function in the approximation. If no bandwidth is provided, it is computed using Scott’s rule.

    |default| None

  • logger (logging.Logger, optional) –

    A logger that should be used for logging and/or displaying intermediate resutls.

    |default| None

  • **preprocessor_arguments

    Keyword arguments that are further passed to the preprocessor class.

Return type

None

See also

For more information on non-parametric regression estimators see e.g. these Notes for Predictive Modeling.

__call__(x, uncertainty=False, show_progress=True)

Calls the model behind the estimator. Transforms the input according to the scaling provided, predicts by fitting a polynomial model locally and finally applies the inverse transform to the outputs of the fitted model.

Parameters
  • x (np.ndarray) – Array of points of prediciton.

  • uncertainty (bool, optional) –

    Specifies whether the bias and the variance should be approximated.

    |default| False

  • show_progress (bool, optional) –

    Specifies whether the computation progress should be displayed or not.

    |default| True

Returns

Array containing the model predictions, the estimated biases, and the estimated standard deviations.

Return type

tuple (np.ndarray, np.ndarray, np.ndarray)

Raises

NotCompiledError: If the model is not compiled, the estimator does not know whether the drift or diffusion coefficient should be approximated.

Warning

Note that if the uncertainty parameter is set to True, the runtime will be significantly higher!

compile(mode='drift')

Method used to compile the model. For every regression estimator. It is crucial to specify whether the drift or diffusion coefficient should be approximated before the estimator can be fit or called.

Parameters

mode (str, optional) –

A string giving the mode of estimation. Possible options are:

Return type

None

Raises

ValueError – If the provided string for the mode is invalid.

fit()

Fits the model to the provided data for the mode that the estimator is compiled in. In this case this means setting up the kernel density estimator, since the whole fitting part is integrated into the prediciton. This is because for every point a polynomial model has to be fit.

Return type

None

Raises

NotCompiledError – If the fit function is called before the model is compiled.

get_num_parameters()

Returns the number of parameters in the model that is used by a certain estimator.

Returns

Number of parameters.

Return type

int

prob(x)

Estimated probability density function at the specified points by using the kernel density estimator.

Parameters

x (np.ndarray) – Array of points at which the probability density funciton should be approximated.

Returns

Estimated probability density at the points \(x\).

Return type

np.ndarray