mvem is a Python package that provides maximum likelihood estimation methods for multivariate probability distributions using expectation–maximization (EM) algorithms. Additionally, it includes some functionality for fitting non-Gaussian multivariate mixture models. For fitting a wide range of univariate probability distributions, we refer to scipy.stats.
Currently included:
- normal (
mvem.stats.multivariate_norm) - skew normal (
mvem.stats.multivariate_skewnorm) - Student's t (
mvem.stats.multivariate_t) - normal-inverse Gaussian (
mvem.stats.multivariate_norminvgauss) - generalised hyperbolic skew Student's t (
mvem.stats.multivariate_genskewt) - generalised hyperbolic (
mvem.stats.multivariate_genhyperbolic) - hyperbolic (
mvem.stats.multivariate_hyperbolic) - variance-gamma (
mvem.stats.multivariate_vargamma)
Multivariate mixture models currently included:
- skew normal (
mvem.mixture.skewnorm)
The source code is currently hosted on GitHub at: https://github.com/krisskul/mvem
Binary installers for the latest released version are available at the Python Package Index (PyPI).
pip install mvemDocumentation and a few introductory notebooks are hosted at readthedocs.
from mvem.stats import multivariate_norminvgauss
# assume p-variate data x
params = multivariate_norminvgauss.fit(x)
Tested on Python 3.6
numpy
scikit-learn
scipy>=1.6.0