the FitnEss, the Relatedness, and other MetrIcs
Project description
fermi
The FitnEss, The Relatedness and The other MetrIcs
fermi is a modular Python framework for analyzing the main Economic Complexity metrics and features.
It provides tools to explore the hidden structure of economies through:
- 📊 Matrix preprocessing: raw cleaning, sparse conversion, Comparative advantage RCA/ICA, transformation and thresholding.
- 🧠 Fitness & complexity: compute Fitness, Complexity ECI, PCI and other metrics via multiple methods.
- 🌐 Relatedness metrics: product space, taxonomy, assist matrix.
- 📈 Prediction models: GDP forecasting, density models, XGBoost.
- ✅ Validation metrics: AUC, confusion matrix, prediction@k.
📦 Getting Started
Requirements
⚠️ Requires Python ≥ 3.0 To correnctly install and use the package, you need to have
numpy ≥ 1.24
pandas ≥ 1.5
scikit-learn ≥ 1.2
scipy ≥ 1.9
matplotlib ≥ 3.5
seaborn
bokeh ≥ 2.4
tqdm
networkx ≥ 2.6
bicm ≥ 3.3.1
Quick Installation (Recommended)
To install fermi directly from PyPI in a virtual environment:
python -m venv fermi-env
source fermi-env/bin/activate # or fermi-env\Scripts\activate on Windows
pip install fermi-cref
Using fermi-cref on Google Colab
To use fermi on Colab, you can install it directly from PyPI with:
!pip install fermi-cref
🚀 Basic functionalities
Fitness and Complexity module
The main module to generate an Economic Complexity object and initialize it (with a biadjacency matrix):
import fermi
myefc = fermi.efc()
myefc.load(my_biadjacency_matrix, *possible kwargs*)
To compute the Revealed Comparative Advantage (Balassa index) and binarize its value
myefc.compute_rca().binarize()
To compute the Fitness and the Complexity (using the original [Tacchella2012] algorithm)
fitness, complexity = myefc.get_fitness_complexity()
To compute the diversification and the ubiquity
div, ubi = myefc.get_diversification_ubiquity()
To compute the ECI index (using the eigenvalue method)
eci, pci = myefc.get_eci_pci()
Relatedness module
The module to generate cooccurrences and similar relatedness measures is
myproj = fermi.RelatednessMetrics()
myproj.load(my_biadjacency_matrix, *possible kwargs*)
The cooccurrence can be evaluated using
relatedness = myproj.get_projection(projection_method="cooccurrence")
validated_relatedness, validated_values = myproj.get_bicm_projection(projection_method="cooccurrence", validation_method="fdr")
See a more detailed description in the API in the documentation.
🌐 How to cite
If you use the fermi modules, please cite its location on Github
https://github.com/EFC-data/fermi
References
[Tacchella2018] Tacchella A., Mazzilli D., Pietronero L. A dynamical systems approach to gross domestic product forecasting. Nature Phys 14, 861–865 (2018)
Credits
Authors: CREF Team
Acknowledgements
We gratefully acknowledge the invaluable contributions, support, and foundational code provided by Andrea Tacchella, Emanuele Pugliese, Dario Mazzilli, and Andrea Zaccaria.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fermi_cref-0.2.0.tar.gz.
File metadata
- Download URL: fermi_cref-0.2.0.tar.gz
- Upload date:
- Size: 52.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b54a4eae0baff9ab2fb4114feea6674a69b19c87f85982503070cd08aa8d0ae
|
|
| MD5 |
4c835d5f4c6b69bc1df74e4314fd8d74
|
|
| BLAKE2b-256 |
43773279b013cb4ea1e9c8e0f4b82a490a784b3884b2a66e480ea6cd0d2e0e99
|
File details
Details for the file fermi_cref-0.2.0-py3-none-any.whl.
File metadata
- Download URL: fermi_cref-0.2.0-py3-none-any.whl
- Upload date:
- Size: 53.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
524f3d847f96fa81f21fc9671ba7b82848acffd4d33bbe91e97a4ac9b18104f6
|
|
| MD5 |
7bcbeb79636486b3932f10278b5a0e51
|
|
| BLAKE2b-256 |
190180be8cf7ead8a996fc0be5098625313c4d14579e4d5c7c8475f45f12fee0
|