/pydftools

A pure-python port of the R dftools package

Primary LanguageJupyter NotebookMIT LicenseMIT

pydftools

Documentation Status Code Coverage

A pure-python port of the dftools R package.

This package attempts to imitate the dftools package (repo: https://github.com/obreschkow/dftools ) quite closely, while being as Pythonic as possible. Do note that 2D+ models are not yet implemented in this Python port, and neither are non-parametric models. Hopefully they will be along soon.

From dftool's description:

This package can find the most likely P parameters of a D-dimensional distribution function (DF) generating N objects, where each object is specified by D observables with measurement uncertainties. For instance, if the objects are galaxies, it can fit a MF (P=1), a mass-size distribution (P=2) or the mass-spin-morphology distribution (P=3). Unlike most common fitting approaches, this method accurately accounts for measurement is uncertainties and complex selection functions. A full description of the algorithm can be found in Obreschkow et al. (2017).

In short, clean out Eddington bias from your fits:

https://user-images.githubusercontent.com/1272030/31757852-60cb6ebc-b4dd-11e7-8ce9-32b3232e8f94.png

Acknowledging

If you use this software, please consider starring the repository. The methods and algorithms used by the software were developed in the paper "Eddington's Demon: Inferring Galaxy Mass Functions and other Distributions from Uncertain Data", so please consult it and cite it if you use pydftools!

Features

  • Simple and fast parameter fitting for generative distribution functions
  • Several examples (with astronomical applications in mind)
  • Several plotting routines so that you can go from nothing to a plot in minutes
  • A mockdata() function which can produce data to fit.
  • Support for arbitrary 1D models, several kinds of selection functions, jackknife and bootstrap resampling, Gaussian error estimation and more.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.