Package for hypothesis testing in A/B-experiments
Project description
abito
Python package for hypothesis testing. Suitable for using in A/B-testing software. Tested for Python >= 3.5. Based on numpy and scipy.
Features
- Convenient interface to run significance tests.
- Support of ratio-samples. Linearization included (delta-method).
- Bootstrapping: can measure significance of any statistic, even quantiles. Multiprocessing is supported.
- Ntile-bucketing: compress samples to get better performance.
- Trim: get rid of heavy tails.
Installation
pip install abito
Usage
The most powerful tool in this package is the Sample:
import abito as ab
Let's draw some observations from Poisson distribution and initiate Sample instance from them.
import numpy as np
observations = np.random.poisson(1, size=10**6)
sample = ab.sample(observations)
Now we can calculate any statistic in numpy-way.
print(sample.mean())
print(sample.std())
print(sample.quantile(q=[0.05, 0.95]))
To compare with other sample we can use t_test or mann_whitney_u_test:
observations_control = np.random.poisson(1.005, size=10**6)
sample_control = Sample(observations_control)
print(sample.t_test(sample_control))
print(sample.mann_whitney_u_test(sample_control))
Bootstrap
Or we can use bootstrap to compare any statistic:
sample.bootstrap_test(sample_control, stat='mean', n_iters=100)
To improve performance, it's better to provide observations in weighted form: unique values + counts. Or, we can compress samples, using built-in method:
sample.reweigh(inplace=True)
sample_control.reweigh(inplace=True)
sample.bootstrap_test(sample_control, stat='mean', n_iters=10000)
Now bootstrap is working lightning-fast. To improve performance further you can set parameter n_threads > 1 to run bootstrapping using multiprocessing.
Compress
observations = np.random.normal(100, size=10**8)
sample = ab.sample(observations)
compressed = sample.compress(n_buckets=100, stat='mean')
%timeit sample.std()
%timeit compressed.std()
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
File details
Details for the file abito-0.1.3.tar.gz
.
File metadata
- Download URL: abito-0.1.3.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4c851fca8482a1f3cd9fba3622244780f987bce17ff9c9ec22088e281b606a3 |
|
MD5 | 6ad3de292cc8c0793bb6730615b1062c |
|
BLAKE2b-256 | 7cad8a631821b1f0d93d62f87ce0013d866ced16c3371b6be3df42c685256bc0 |
File details
Details for the file abito-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: abito-0.1.3-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b8dfc6ee76edcd512ccad2ade2eae96a113544990e45c261b0b237d7027f58d |
|
MD5 | 431f37d5ffe0c579a6e4739088a84ef2 |
|
BLAKE2b-256 | 52cf999a23169211230415179515ee6553f78a02bbe70fc7fa91bc8fa81e629f |