Coefficient of Variation (CV) and Coefficient of Quartile Variation (CQV) with Confidence Intervals (CI)
Project description
pycvcqv
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 a variety of 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.
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",
"norm", "basic", "perc", "bca",
):
print(method, coefficient_of_variation(
data=x,
method=method,
multiplier=100,
ndigits=3,
num_replicates=10000,
random_state=42,
))
Output (95% CI, multiplier=100, ndigits=3, bootstrap methods use
num_replicates=10000, random_state=42):
| 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 |
norm |
57.774 | 38.850 | 78.379 | cv with Normal Approximation Bootstrap 95% CI |
basic |
57.774 | 37.716 | 77.166 | cv with Basic Bootstrap 95% CI |
perc |
57.774 | 38.382 | 77.832 | cv with Bootstrap Percentile 95% CI |
bca |
57.774 | 41.556 | 83.032 | cv with Adjusted Bootstrap Percentile (BCa) 95% CI |
Confidence-interval methods for cqv
cqv accepts a method argument that selects the confidence-interval estimator.
When method is omitted only the point estimate is returned (the legacy behavior).
from pycvcqv import cqv
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 ("bonett", "norm", "basic", "perc", "bca"):
print(method, cqv(
data=x,
method=method,
multiplier=100,
ndigits=3,
num_replicates=10000,
random_state=42,
))
Output (95% CI, multiplier=100, ndigits=3, bootstrap methods use
num_replicates=10000, random_state=42):
| method | est | lower | upper | description |
|---|---|---|---|---|
bonett |
45.625 | 24.785 | 77.329 | cqv with Bonett 95% CI |
norm |
45.625 | 19.937 | 70.403 | cqv with Normal Approximation Bootstrap 95% CI |
basic |
45.625 | 21.081 | 73.923 | cqv with Basic Bootstrap 95% CI |
perc |
45.625 | 17.327 | 70.169 | cqv with Bootstrap Percentile 95% CI |
bca |
45.625 | 22.006 | 76.331 | cqv with Adjusted Bootstrap Percentile (BCa) 95% CI |
Credits
This project was generated with
python-package-template
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycvcqv-0.6.0.tar.gz.
File metadata
- Download URL: pycvcqv-0.6.0.tar.gz
- Upload date:
- Size: 30.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9d3ab27c331e8bce3facaf18f8a5f0c7fce533c49e732cdb4a1f053371e6911
|
|
| MD5 |
79f8e83f8bb2c241aa91a8db2e0fce9d
|
|
| BLAKE2b-256 |
0e830866387f954830c503c71b4c5e754934ad42ba285c10774e120c6200ef7e
|
File details
Details for the file pycvcqv-0.6.0-py3-none-any.whl.
File metadata
- Download URL: pycvcqv-0.6.0-py3-none-any.whl
- Upload date:
- Size: 58.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a926f1e3744a85bdd2fc3bc586e447cb6af248d5a433f9bb2a0c734376ace57
|
|
| MD5 |
ab767557e5931deaea7f874d7b391d07
|
|
| BLAKE2b-256 |
dad2e1c763cb48e07020bc037bee623c821fa7209ce6c58407b1e6ddb6ef44c2
|