Skip to main content

A Python Toolbox for Mapping Evolving Relationship Data

Project description

evomap - A Toolbox for Dynamic Mapping in Python

evomap offers a comprehensive toolbox to create, explore and analyze spatial representations ('maps') from relationship data. Common applications include Marketing (market structure analysis), Network Analysis (e.g., social, economic, or biological networks), Political Science, or High-Dimensional Data Analysis in general.

Often, relationship data is retrievable over time, as markets and networks tend to evolve. evomap provides all necessary tools to analyze such data in maps either in static snapshots at a single point in time, or in evolving maps across multiple periods. evomap provides an all-in-one solution and integrates many steps of the analysis into an easy-to-use API. Specifically, evomap includes modules for

  • preprocessing
  • mapping (static/dynamic)
  • evaluation
  • plotting

Note: As of now, evomap is available as a pre-release version and parts of evomap are still under active development. For any bug reports or feature requests, please get in touch.

Installation

This pre-release is available via GitHub. Stay tuned for a release on PyPi, which is coming soon!

To install evomap run

pip install git+https://github.com/mpmatthe/evomap

evomap requires Python version 3.9. We recommend using Python within a virtual environment, for instance via conda:

conda create -n evomap python=3.9
conda activate evomap
pip install git+https://github.com/mpmatthe/evomap

Note: Currently, evomap builds its C extensions upon installation on the system. Thus, it requires a C compiler to be present. The right C compiler depends upon your system, e.g. GCC on Linux or MSVC on Windows. For details, see the Cython documentation. In future versions, extensions will be pre-compiled.

Usage

The following tutorials provide a good starting point for using evomap.

For a simple introduction to a typical market structure application, see this example.

If you want to dive deaper into what evomap has to offer, check out the following examples on

  1. Static Mapping
  2. Dynamic Mapping

Updated versions of these examples will be available as new features are released.

Mapping Methods

As of now, evomap provides implementations of the following mapping methods:

  • MDS (Multidimensional Scaling)
  • Sammon Mapping (non-linear MDS)
  • t-SNE (t-distributed Stochastic Neighbor Embedding)

You can apply all methods statically and dynamically. Moreover, evomap follows the syntax conventions of scikit-learn, such that other machine-learning techniques (such as LLE, Isomap, ... ) can easily be integrated. For more background, see here.

References

This package is based on the authors' work in

[1] Matthe, M., Ringel, D. M., Skiera, B. (2023), Mapping Market Structure Evolution. Marketing Science, Vol. 42, Issue 3, 589-613.

Read the full paper here (open access): https://doi.org/10.1287/mksc.2022.1385

Please cite our paper if you use this package or part of its code

evomap also builds upon the work of others, including

[2] Ringel, D. M., & Skiera, B. (2016). Visualizing asymmetric competition among more than 1,000 products using big search data. Marketing Science, 35(3), 511-534.

[3] Torgerson, W. S. (1952). Multidimensional Scaling: I. Theory and method. Psychometrika, 17(4), 401-419.

[4] Van der Maaten, L., & Hinton, G. (2008). Visualizing data using t-SNE. Journal of Machine Learning Research, 9(11).

[5] Sammon, J. W. (1969). A nonlinear mapping for data structure analysis. IEEE Transactions on computers, 100(5), 401-409.

[6] Kruskal, J. B. (1964). Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis. Psychometrika, 29(1), 1-27.

If you use the respective methods implemented in evomap, consider also citing the original references.

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

evomap is licensed under the terms of the MIT license. It is free to use, however, please cite our work.

Credits

evomap was created with cookiecutter and the py-pkgs-cookiecutter template.

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

evomap-0.3.0.tar.gz (6.6 MB view details)

Uploaded Source

Built Distribution

evomap-0.3.0-cp39-cp39-macosx_13_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 13.0+ ARM64

File details

Details for the file evomap-0.3.0.tar.gz.

File metadata

  • Download URL: evomap-0.3.0.tar.gz
  • Upload date:
  • Size: 6.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Darwin/22.6.0

File hashes

Hashes for evomap-0.3.0.tar.gz
Algorithm Hash digest
SHA256 821d5705f45e06e46250d8662f8ffb3299f1c7a8a5e7aae7f537db082e5d0da1
MD5 6e1a98ad330b621320dafe5b3609e547
BLAKE2b-256 6b4d2bf780c9702b6261d36ee568e149653b18c567c7894c137233f1d3c6da1c

See more details on using hashes here.

File details

Details for the file evomap-0.3.0-cp39-cp39-macosx_13_0_arm64.whl.

File metadata

  • Download URL: evomap-0.3.0-cp39-cp39-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.9, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Darwin/22.6.0

File hashes

Hashes for evomap-0.3.0-cp39-cp39-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0f52aa858e9543a5eca6b733fcb1828fa6327e5cf6289d9367c80c7e9ed1dee7
MD5 adccfa8619fb48382c82d512d269a2ae
BLAKE2b-256 368a2b6ac943d62695beb5ce92488f2a8d6287d34d8365c9865390a1b66e5e6f

See more details on using hashes here.

Supported by

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