Skip to main content

Economic Complexity and Product Complexity

By the Growth Lab at Harvard's Center for International Development

This package is part of Harvard Growth Lab’s portfolio of software packages, digital products and interactive data visualizations. To browse our entire portfolio, please visit growthlab.app. To learn more about our research, please visit Harvard Growth Lab’s home page.

About

Python package to calculate economic complexity indices.

STATA implementation of the economic complexity index available at: https://github.com/cid-harvard/ecomplexity

Explore complexity and associated data using Harvard CID's Atlas tool: http://atlas.cid.harvard.edu

Tutorial

Installation: For the latest stable version: pip install ecomplexity

Latest version of the package under development (untested and possibly with bugs), install directly from GitHub: pip install git+https://github.com/cid-harvard/py-ecomplexity@develop

Usage:

from ecomplexity import ecomplexity
from ecomplexity import proximity

# Import trade data from CID Atlas
data_url = "https://intl-atlas-downloads.s3.amazonaws.com/country_hsproduct2digit_year.csv.zip"
data = pd.read_csv(data_url, compression="zip", low_memory=False)
data = data[['year','location_code','hs_product_code','export_value']]

# Calculate complexity
trade_cols = {'time':'year', 'loc':'location_code', 'prod':'hs_product_code', 'val':'export_value'}
cdata = ecomplexity(data, trade_cols)

# Calculate proximity matrix
prox_df = proximity(data, trade_cols)

Arguments:

data: pandas dataframe containing production / trade data.
    Including variables indicating time, location, product and value
cols_input: dict of column names for time, location, product and value.
    Example: {'time':'year', 'loc':'origin', 'prod':'hs92', 'val':'export_val'}
presence_test: str for test used for presence of industry in location.
    One of "rca" (default), "rpop", or "manual".
    Determines which values are used for M_cp calculations.
    If "manual", M_cp is taken as given from the "value" column in data
val_errors_flag: {'coerce','ignore','raise'}. Passed to pd.to_numeric
    *default* coerce.
rca_mcp_threshold: numeric indicating RCA threshold beyond which mcp is 1.
    *default* 1.
rpop_mcp_threshold: numeric indicating RPOP threshold beyond which mcp is 1.
    *default* 1. Only used if presence_test is not "rca".
pop: pandas df, with time, location and corresponding population, in that order.
    Not required if presence_test is "rca", which is the default.
continuous: Used to calculate product proximities, indicates whether
    to consider correlation of every product pair (True) or product
    co-occurrence (False). *default* False.
asymmetric: Used to calculate product proximities, indicates whether
    to generate asymmetric proximity matrix (True) or symmetric (False).
    *default* False.
proximity_edgelist: pandas df with cols 'prod1', 'prod2', 'proximity'.
    If None (default), proximity values are calculated from data.
knn: Number of nearest neighbors from proximity matrix to use to calculate
    density. Will use entire proximity matrix if None.
    *default* None.
check_logsupermodularity: If True (default), check log-supermodularity.
    If int, use roughly that many samples to check log-supermodularity.
report_logsupermodularity: If True, print warning if log-supermodularity.
    If False (default), don't.
verbose: Print year being processed

FAQ

  • Why are ECI and PCI are both normalized using ECI's mean and std. dev?
    • This normalization preserves the property that ECI = (mean of PCI of products for which MCP=1)
  • What is log-supermodularity?
    • Refer ecomplexity/log_supermodularity.py for a brief explanation. More at Schetter, U. (2019). A Structural Ranking of Economic Complexity (SSRN Scholarly Paper 3485842). https://doi.org/10.2139/ssrn.3485842.

References

Metadata

Release files for ecomplexity 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ecomplexity 0.5.3
File Size Uploaded Provenance Actions
ecomplexity-0.5.3.tar.gz 15.4 kB Without provenance Details for ecomplexity-0.5.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ecomplexity 0.5.3
File Interpreter ABI Platform Actions
ecomplexity-0.5.3-py3-none-any.whl Python 3 none any Details for ecomplexity-0.5.3-py3-none-any.whl

Total release size: 32.8 kB

Release files / ecomplexity-0.5.3.tar.gz

Download URL ecomplexity-0.5.3.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f9eaed2bf58495de4f8648e05c452edc1dc8ced300b1d99856a19dd38c88b06c
BLAKE2b-256 checksum
How to use checksums
5b5e5efc2dfef2c6fc0e993ad00c02951a11be9b01ab5f32aae0180bf1c38d28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.14

Release files / ecomplexity-0.5.3-py3-none-any.whl

Download URL ecomplexity-0.5.3-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60581b61bd7e4e32174f344a36918c833d83ab5a4892427dd1f8d034a3dedd54
BLAKE2b-256 checksum
How to use checksums
e5abb35b670e7ea69fcfd6f5e015edbb47e0e003fa712c54f3481a21ef87aead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.14

Security for ecomplexity 0.5.3

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page