Skip to main content

ccrvam

Python implementation of Checkerboard Copula Regression-based Visualization and Association Measure (CCRVAM)

PyPI version build Documentation Status Coverage Status Built with PyPi Template PyPI Downloads

Overview

CCRVAM is a Python package for analyzing associations between categorical variables using Checkerboard Copula Regression. It provides tools for:

  • Construction of CCRVAM objects from three forms of categorical data (case form, frequency form, table form)
  • Calculation of marginal distributions and CDFs of categorical variables
  • Computation of Checkerboard Copula Regression (CCR), its Prediction and Visualization
  • Implementation of Checkerboard Copula Regression Association Measure (CCRAM) and Scaled CCRAM (SCCRAM)
  • Bootstrap functionality for CCR-based prediction, CCRAM and SCCRAM
  • Permutation testing functionality for CCRAM & SCCRAM
  • Vectorized implementations for improved performance
  • Rigorous Edge-case Handling & Unit Testing with Pytest

Authors

  • Dhyey Mavani
  • Daeyoung Kim
  • Shu-Min Liao

Installation

Usage in Jupyter Notebook:

This package (ccrvam) is hosted on PyPi, so for installation add the following line at the top of your Jupyter notebook!

%pip install --upgrade ccrvam

Now, you should be all set to use it in a Jupyter Notebook!

Note: You might need to restart your kernel after installation in order to use the package. This is because of the way Jupyter handles package installations.

Usage in a Software Project Through Terminal (Virtual Environment):

Alternatively, if you would like to use it in a project, we recommend you to have a virtual environment for your use of this package, then follow the following workflow:

  1. First, create and activate a virtual environment (Python 3.10+ recommended):
# Create virtual environment
$ python -m venv ccrvam-env

# Activate virtual environment (Mac/Linux)
$ source ccrvam-env/bin/activate

# Verify you're in the virtual environment
$ which python
  1. Install package
$ pip install ccrvam
  1. To deactivate the virtual environment, when done:
$ deactivate

Documentation Structure

Visit Read the Docs for the full documentation, including overviews and several examples.

Examples

For detailed examples in Jupyter Notebooks and beyond (organized by functionality) please refer to our GitHub repository's examples folder.

Project Structure

This diagram illustrates the main components of the ccrvam package. Understanding this structure can help package users and developers navigate the codebase, locate specific functionalities (like data processing in utils.py or the core CCRVAM logic in genccrvam.py), and understand how different modules interact. The examples/ and tests/ directories provide practical usage scenarios and verification tests, respectively.

graph TD
    A[ccrvam] --> B[checkerboard]
    B --> B1[genccrvam.py<br/>GenericCCRVAM]
    B --> B2[genstatsim.py<br/>Bootstrap/Permutation]
    B --> B3[utils.py<br/>DataProcessor]

    A --> F[docs/]
    B1 --> F
    B2 --> F
    B3 --> F

    A --> D[examples/]
    A --> E[tests/]
    E --> E1[test_genccrvam.py]
    E --> E2[test_genstatsim.py]
    E --> E3[test_utils.py]

User Workflow Overview

This flowchart outlines the typical steps involved when using the ccrvam package, from loading data to performing analyses like calculating CCRAM or generating predictions, and utilizing bootstrap/permutation functionalities. It provides a high-level view of how different functions connect and the expected data flow through the package.

flowchart TD
    A[Raw Data / File Input] --> B[DataProcessor.load_data]
    B --> C[Contingency Table]

    C --> D[GenericCCRVAM.from_contingency_table]
    C --> E[GenericCCRVAM.from_cases]

    D --> F[GenericCCRVAM Instance]
    E --> F

    F --> G[calculate_CCRAM]
    F --> H[get_predictions_ccr]
    F --> I[plot_ccr_predictions]
    F --> J[calculate_ccs]
    F --> K[get_prediction_under_indep]

    C --> L[bootstrap_ccram]
    C --> M[permutation_test_ccram]
    C --> N[bootstrap_predict_ccr_summary]

    L --> O[CustomBootstrapResult]
    M --> P[CustomPermutationResult]
    N --> Q[Predictions Summary]

    Q --> R[plot_prediction_heatmap]
    Q --> S[save_predictions]

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation Guide

When using this package in your research, please follow these citation guidelines:

Software Citation

For citing the software package itself, use:

@software{ccrvam2025,
  author = {Mavani, Dhyey and Kim, Daeyoung and Liao, Shu-Min},
  title = {ccrvam: Checkerboard Copula Regression-based Visualization and Association Measure},
  year = {2025},
  publisher = {GitHub},
  url = {https://github.com/DhyeyMavani2003/ccrvam}
}

Method Citations

For citing the underlying methodology, please cite both papers:

@article{wei2021exploratory,
  title={On exploratory analytic method for multi-way contingency tables with an ordinal response variable and categorical explanatory variables},
  author={Wei, Zheng and Kim, Daeyoung},
  journal={Journal of Multivariate Analysis},
  volume={186},
  pages={104793},
  year={2021},
  publisher={Elsevier},
  doi={10.1016/j.jmva.2021.104793}
}

@incollection{liao2024visualization,
  title={Visualization of Dependence in Multidimensional Contingency Tables with an Ordinal Dependent Variable via Copula Regression},
  author={Liao, Shu-Min and Wang, Li and Kim, Daeyoung},
  booktitle={Dependent Data in Social Sciences Research: Forms, Issues, and Methods of Analysis},
  edition={Second},
  editor={Stemmler, Mark and Wiedermann, Wolfgang and Huang, Francis L.},
  publisher={Springer New York LLC},
  pages={517--538},
  year={2024}
}

Citation in Text

When referring to the methodology in your text, you can use:

  • For the original methodology: "Wei and Kim (2021) proposed the Checkerboard Copula Regression..."
  • For the visualization extension: "Liao et al. (2024) extended the methodology to include visualization capabilities..."
1. Zheng Wei and Daeyoung Kim (2021). On exploratory analytic method for multi-way contingency tables with an ordinal response variable and categorical explanatory variables. *Journal of Multivariate Analysis*, 186, 104793. https://doi.org/10.1016/j.jmva.2021.104793

2. Shu-Min Liao, Li Wang, Daeyoung Kim (2024). Visualization of Dependence in Multidimensional Contingency Tables with an Ordinal Dependent Variable via Copula Regression. In *Dependent Data in Social Sciences Research: Forms, Issues, and Methods of Analysis*, Second edition, Mark Stemmler, Wolfgang Wiedermann, and Francis L. Huang, eds. Springer New York LLC, pp. 517-538

Version Information

When citing specific versions of the software, please include the version number and DOI (if available) in your citation.

Metadata

Release files for ccrvam 1.2.5

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

Source distribution (sdist)

Source distribution for ccrvam 1.2.5
File Size Uploaded
ccrvam-1.2.5.tar.gz 76.1 kB Details

Built distribution (wheel)

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

Total release size: 149.3 kB

Release files / ccrvam-1.2.5.tar.gz

Download URL ccrvam-1.2.5.tar.gz
Size 76.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d50586aaf63cc52baa9bd0f0252ab7ebe6039d737de5e83ac72cb885422bf6a8
BLAKE2b-256 checksum
How to use checksums
8531fb3c432741108f3f390440b3b3c1decfa73f3608a436aec48ce26d1262b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.

Transparency log

Release files / ccrvam-1.2.5-py3-none-any.whl

Download URL ccrvam-1.2.5-py3-none-any.whl
Size 73.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ec92c311b4995865c8cbbc737a1e0898c4ff6e91adf563d9df961b1ce97b606
BLAKE2b-256 checksum
How to use checksums
a8744582862ec62def7817c09c1fdca5fbb31d652e32632307eec88ecc20eaf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.5 This release

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.4

2 release files

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