Skip to main content

Coefficient of Variation (CV) and Coefficient of Quartile Variation (CQV) with Confidence Intervals (CI)

Project description

pycvcqv

PyPI Python Version Build status coverage report Downloads "Buy Me A Coffee" static analysis dependencies vulnerabilities maintainability complexity lint report docstring Code style: black Security: bandit Pre-commit License

Find homogeneity with confidence.

Python port of cvcqv

Introduction

pycvcqv provides some easy-to-use functions to calculate the Coefficient of Variation (cv) and Coefficient of Quartile Variation (cqv) with confidence intervals provided with all available methods.

Install

pip install pycvcqv

Usage

import pandas as pd
from pycvcqv import coefficient_of_variation, cqv

coefficient_of_variation(
    data=[
        0.2, 0.5, 1.1, 1.4, 1.8, 2.3, 2.5, 2.7, 3.5, 4.4,
        4.6, 5.4, 5.4, 5.7, 5.8, 5.9, 6.0, 6.6, 7.1, 7.9
    ],
    multiplier=100,
    ndigits=2
)
# {'cv': 57.77, 'lower': 41.43, 'upper': 98.38}
cqv(
    data=[0.2, 0.5, 1.1, 1.4, 1.8, 2.3, 2.5, 2.7, 3.5, 4.4, 4.6, 5.4, 5.4],
    multiplier=100,
)
# 51.7241
data = pd.DataFrame(
    {
        "col-1": pd.Series([0.2, 0.5, 1.1, 1.4, 1.8, 2.3, 2.5, 2.7, 3.5]),
        "col-2": pd.Series([5.4, 5.4, 5.7, 5.8, 5.9, 6.0, 6.6, 7.1, 7.9]),
    }
)
coefficient_of_variation(data=data, num_threads=3)
#   columns      cv      lower      upper
# 0   col-1  0.6076     0.3770     1.6667
# 1   col-2  0.1359     0.0913     0.2651
cqv(data=data, num_threads=-1)
#   columns      cqv
# 0   col-1  0.3889
# 1   col-2  0.0732

Confidence-interval methods for cv

coefficient_of_variation accepts a method argument that selects the confidence-interval estimator. The closed-form methods listed below are ported math-for-math from the R cvcqv package.

from pycvcqv import coefficient_of_variation

x = [
    0.2, 0.5, 1.1, 1.4, 1.8, 2.3, 2.5, 2.7, 3.5, 4.4,
    4.6, 5.4, 5.4, 5.7, 5.8, 5.9, 6.0, 6.6, 7.1, 7.9,
]

for method in (
    "kelley", "mckay", "miller", "vangel",
    "mahmoudvand_hassani", "equal_tailed",
    "shortest_length", "normal_approximation",
):
    print(method, coefficient_of_variation(
        data=x, method=method, multiplier=100, ndigits=3,
    ))

The output (95% CI, multiplier=100, ndigits=3):

method est lower upper description
kelley 57.774 41.303 97.950 cv with Kelley 95% CI
mckay 57.774 41.441 108.483 cv with McKay 95% CI
miller 57.774 34.053 81.495 cv with Miller 95% CI
vangel 57.774 40.955 103.931 cv with Vangel 95% CI
mahmoudvand_hassani 57.774 43.476 82.857 cv with Mahmoudvand-Hassani 95% CI
equal_tailed 57.774 43.937 84.383 cv with Equal-Tailed 95% CI
shortest_length 57.774 42.015 81.013 cv with Shortest-Length 95% CI
normal_approximation 57.774 44.533 85.272 cv with Normal Approximation 95% CI

The bootstrap-based methods (norm, basic, perc, bca) are not yet ported.

Credits

🚀 Your next Python package needs a bleeding-edge project structure. This project was generated with python-package-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

pycvcqv-0.4.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

pycvcqv-0.4.0-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file pycvcqv-0.4.0.tar.gz.

File metadata

  • Download URL: pycvcqv-0.4.0.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pycvcqv-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fe1f2bbfa29953570d89fa359d8da78261bb2fc1d16b255e0b515eb755b95b38
MD5 7222b6462ecdf49580c2069b60e61a0a
BLAKE2b-256 9909eb497bee83dfec9d2afd956515ecf89907e2458696e51e1d74667ea618f8

See more details on using hashes here.

File details

Details for the file pycvcqv-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pycvcqv-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pycvcqv-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cbe129735788025e95ca825225f406bd459e19cfd7419d48c73318abef99db77
MD5 ecc94c47d1587a5e1f02f2c1b1b1c314
BLAKE2b-256 a9273ad3a184edf61a5b3dc9527d0e2933d631636f04fad8558c0a48aa843f08

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