Skip to main content

A Python Toolbox for Mapping Evolving Relationship Data

Project description

evomap - A Toolbox for Dynamic Mapping in Python

evomap is a comprehensive Python toolbox for creating, exploring, and analyzing spatial representations ('maps') from complex data, including high-dimensional feature vectors and pairwise relationship matrices. Such spatial representations find frequent applications in Marketing (e.g., market structure or positioning analysis), Network Analysis (e.g., social, economic, bibliographic, or biological networks), Political Science (e.g., ideological scaling), and High-Dimensional Data Analysis.

A key use case of evomap is creating such maps from time-evolving data by processing longitudinal sequences of relationship matrices or high-dimensional feature vectors. The resultant maps allow users to track changes in complex systems, such as evolving markets or networks, and visualize their underlying evolution.

evomap offers an all-in-one solution by integrating several essential steps into an easy-to-use API, including:

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

For any bug reports or feature requests, please get in touch.

Installation

evomap is available via PyPi.

To install evomap run

pip install evomap

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

conda create -n evomap python
conda activate evomap
pip install evomap

Usage

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

For a simple introduction to a typical market structure application, see
Open in Colab

If you want to explore more of what evomap has to offer, check out the following examples:

  • Static Mapping
    Open in Colab

  • Dynamic Mapping
    Open in Colab

A more detailed tutorial is available here:
Open in Colab

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] Torgerson, W. S. (1952). Multidimensional Scaling: I. Theory and method. Psychometrika, 17(4), 401-419.

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

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

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

[6] 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.

If you use any of the methods implemented in 'evomap', please consider citing the original references alongside this package.

Contributing

Interested in contributing? Get in touch!

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.5.1.tar.gz (6.6 MB view details)

Uploaded Source

Built Distribution

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

evomap-0.5.1-py3-none-any.whl (6.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: evomap-0.5.1.tar.gz
  • Upload date:
  • Size: 6.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for evomap-0.5.1.tar.gz
Algorithm Hash digest
SHA256 5a7b447dc29a317ae3e85743682c646d6438c0551c3a372f109599fdce417f95
MD5 52c32c1d9c11860b027529c839e2e08a
BLAKE2b-256 fdbc38a52b7d1a019e30f4721086dde7b07ae5bdcf6cb40f655caa7da69ffe70

See more details on using hashes here.

File details

Details for the file evomap-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: evomap-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for evomap-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aa2ae577c6b0096708b555ff0b65d3ef67ff044d3936812594943275534d4fdd
MD5 589d9d40f9b5b446a10752a89a3dcb0b
BLAKE2b-256 7f52226e1d369d03be2f188724f94380483040c4b12ede08bc09c4da129a061d

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