Skip to main content

the FitnEss, the Relatedness, and other MetrIcs

Project description

fermi

The FitnEss, The Relatedness and The other MetrIcs

License: MIT Python Build Tests


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

[Tacchella2012] A. Tacchella, M. Cristelli, G. Caldarelli, A. Gabrielli, L. Pietronero , A New Metrics for Countries' Fitness and Products' Complexity, SciRep vol. 2, 723 (2012)

[Zaccaria2014] Zaccaria A, Cristelli M, Tacchella A, Pietronero L, How the Taxonomy of Products Drives the Economic Development of Countries, PLoS ONE, (2014), 9(12): e113770

[Tacchella2018] Tacchella A., Mazzilli D., Pietronero L. A dynamical systems approach to gross domestic product forecasting. Nature Phys 14, 861–865 (2018)

[Pugliese2019] Pugliese E., Cimini G., Patelli A. et al. Unfolding the innovation system for the development of countries: coevolution of Science, Technology and Production. Sci Rep vol. 9, 16440 (2019)

[Mazzilli2024] D Mazzilli, M S Mariani, F Morone and A Patelli, Equivalence between the Fitness-Complexity and the Sinkhorn-Knopp algorithms, J. Phys. Complex. 5 015010 (2024)

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fermi_cref-0.2.0.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fermi_cref-0.2.0-py3-none-any.whl (53.5 kB view details)

Uploaded Python 3

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

Hashes for fermi_cref-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8b54a4eae0baff9ab2fb4114feea6674a69b19c87f85982503070cd08aa8d0ae
MD5 4c835d5f4c6b69bc1df74e4314fd8d74
BLAKE2b-256 43773279b013cb4ea1e9c8e0f4b82a490a784b3884b2a66e480ea6cd0d2e0e99

See more details on using hashes here.

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

Hashes for fermi_cref-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 524f3d847f96fa81f21fc9671ba7b82848acffd4d33bbe91e97a4ac9b18104f6
MD5 7bcbeb79636486b3932f10278b5a0e51
BLAKE2b-256 190180be8cf7ead8a996fc0be5098625313c4d14579e4d5c7c8475f45f12fee0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page