Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ fermi Public
forked from EFC-data/fermi

The Fitness. The Relatedness. The other Metrics. fermi is a flexible and rigorous toolkit for economic complexity and matrix-driven analysis

License

lbuffa/fermi

 
 

Repository files navigation

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.

About

The Fitness. The Relatedness. The other Metrics. fermi is a flexible and rigorous toolkit for economic complexity and matrix-driven analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%