Is there a python implementation of multidimensional ECDFs?

Looking for a package that implements the multivariate version of statsmodels.distributions.ECDF

If one doesn’t exist I will implement it for inclusion in statsmodels (if accepted), but don’t want to reinvent the wheel.

I see this: https://gitlab.com/stochastic-control/StOpt

It has pybind11 bindings, but not sure if there is a wheel in pip already making this available.

Answer

The upcoming release of statsmodels 0.13 includes basic support for copulas.

Empirical and non-parametric copula and multivariate distributions have mainly experimental code, that is currently not public, and not sufficiently tested and verified.

For example _ecdf_mv (*) is currently a multivariate rankdata function. It needs to be divided by the number of observations or converted to plotting positions to make it into a ECDF. Because copulas require continuous uniform margins, ties are randomly or arbitrarily broken.

(*)
https://github.com/statsmodels/statsmodels/blob/main/statsmodels/distributions/tools.py#L424