exp_mixture_model
Maximum likelihood estimation and model selection for the exponential mixture model (i.e., mixture of exponential distributions)
When you use this code, please cite the following paper:
Makoto Okada, Kenji Yamanishi, Naoki Masuda. Long-tailed distributions of inter-event times as mixtures of exponential distributions. arXiv:19xx.xxxxx
Installation
exp_mixture_model is hosted on PyPI. So, one can install it by running
pip install exp_mixture_model
If you want to install from source, clone the exp_mixture_model git repository by running
git clone https://github.com/naokimas/exp_mixture_model.git
Then, navigate to the top-level of the cloned directory and run
python setup.py install
You can test our code by running
python setup.py test
If you use Anaconda, you may install required packages by running
conda install --file requirements.txt
Quick Use
Fit an EMM to data stored in a file (e.g. sample.dat) by running
python emmfit.py -f sample.dat -k 10
- '10' is the initial number of components.
- 'sample.dat' is provided as part of this package. It is synthetic data that we generated by running
from emm import generate_emm
x = generate_emm(1000, 10)
To select the best model among EMMs with different numbers of components, don't specify 'k' and instead specify the model selection criterion using '-c' as follows.
python emmfit.py -f sample.dat -c DNML
- One can specify either 'marginal_log_likelihood', 'joint_log_likelihood', 'AIC', 'BIC', 'AIC_LVC', 'BIC_LVC', 'NML_LVC', or 'DNML' as the argument of '-c'.
- Default is 'DNML'.
Check details of the usage by running
python emmfit.py --help
Usage
Fit an EMM to data by running
from exp_mixture_model import EMM
x = [1.5, 2.3, ...] # data can be either a list or numpy array
#
# Alternatively, one can load data from a file using numpy as follows.
#
# import numpy as np
# x = np.loadtxt("sample.dat")
#
model = EMM()
pi, mu = model.fit(x) # estimate the parameters
model.print_result() # print 'k_final' (i.e., the estimated effective number of components) and the estimated parameters
model.plot_survival_probability() # plot the survival probability (= cumulative complementary distribution function) for the estimated EMM and the given data 'x'.
Select the number of components based on a model selection criterion by running
from exp_mixture_model import EMMs
x = [1.5, 2.3, ...]
emms = EMMs()
emms.fit(x) # fit EMMs with different values of 'k', i.e., the number of components. The default uses 13 values of 'k'. This process is computationally heavy.
best_model = emms.select('DNML') # select the best number of components under the 'DNML' criterion. One can specify either 'marginal_log_likelihood', 'joint_log_likelihood', 'AIC', 'BIC', 'AIC_LVC', 'BIC_LVC', 'NML_LVC', or 'DNML' as the argument of 'emms.select'.
emms.print_result_table() # print the values of 'k_final', likelihoods, and 'DNML' for each 'k' value
best_model.print_result() # print 'k_final' and the estimated parameter values of the selected EMM
Metadata
Release files for exp-mixture-model 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| exp_mixture_model-1.0.0.tar.gz | 11.1 kB | Without provenance | Details for exp_mixture_model-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| exp_mixture_model-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for exp_mixture_model-1.0.0-py3-none-any.whl |
Total release size: 22.4 kB
Release files / exp_mixture_model-1.0.0.tar.gz
| Download URL | exp_mixture_model-1.0.0.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d43d96c70abe36be44e6c40d77f36459a79d9539bf02282c552c563b052f5f2
|
|
BLAKE2b-256 checksum How to use checksums |
2184521daba1ccd2b357580b4bb5c730de54ee72780d3f61b9d854b01e4348f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1
|
Release files / exp_mixture_model-1.0.0-py3-none-any.whl
| Download URL | exp_mixture_model-1.0.0-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
304745fbe04a64158b0756c5879f673bb95f4c80ce22c71d5eefdbbac4cec1b5
|
|
BLAKE2b-256 checksum How to use checksums |
471c6c1245beb4fae5b7ccb08f26099962e24537922ec3b430c6251ea86e12ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1
|
Security for exp-mixture-model 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.