Skip to content

Development plan

Thomas Dent edited this page Oct 27, 2023 · 3 revisions

General structure

The majority of code is to be within Python modules and structured by using classes corresponding to the main concepts :

  • density estimator
  • optimization via cross-validation
  • uncertainty estimation via bootstrap iteration
  • reweighting of input measurement samples

Density estimator

Most basic element, can give a density estimate at any point in physical parameter space.

Information required: Physical parameter values for observations/events (n-dimensional), bandwidths (n-dimensional)

  • The bandwidths should either be fixed (1 bw per dimension) or general/adaptive, ie 1 bw per dimension for each observation

Auxiliary information: Parameter names, log parameter flags (is the parameter the log of a physical quantity), units

Initialization: Train base density estimator with the given parameter points and bandwidths

Attributes: Aux information, parameter values, bandwidths, base estimator (ie how the KDE is actually evaluated)

Method: Evaluate density at any parameter point or array of points

Method: Set bandwidths/alpha & retrain

(Method: Get analytic error estimate as in first awKDE pop paper?)

Adaptive density estimator

Subclass of the basic KDE which makes an initial pilot estimate with fixed bw (but still different over each dimension), evaluates it at the observed points and applies an adaptive factor using the adaptive alpha parameter

Additional information: adaptive parameter ('alpha')

Method: Train initial KDE with fixed (non-adaptive) bw

Method: Evaluate/set adaptive bw for each event

Method: Train adaptive KDE

Method: Evaluate adaptive density at any point or array of points

Clone this wiki locally