StatPilot ๐งญ
Automated, transparent statistical analysis for researchers.
StatPilot picks the right statistical test for your data, explains why it chose it, and generates a publication-ready report โ all from a single function call.
The problem
Running statistics correctly involves a sequence of decisions most researchers make inconsistently:
- Check normality โ but which test? Shapiro-Wilk? Visual inspection?
- Check variance homogeneity โ but only when normality holds?
- Pick the right test โ but which of t-test, Welch, Mann-Whitney, ANOVA, Kruskal-Wallis?
- Calculate effect size โ but Cohen's d, eta-squared, or rank-biserial?
- Write it up โ in a reproducible, auditable way.
StatPilot automates this entire chain with a transparent decision engine that shows its work.
Quick start
pip install statpilot
import pandas as pd
from statpilot import compare
df = pd.read_csv("my_data.csv")
result = compare(df, target="score", group="treatment")
result.summary() # prints a rich table to the terminal
result.plot() # shows a boxplot + distribution
result.to_report() # returns a Markdown string ready to paste into your paper
What the output looks like
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ StatPilot Result โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Test selected: Independent samples t-test โ
โ Statistic: t = 4.21 โ
โ p-value: 0.0003 *** โ
โ Effect size: Cohen's d = 0.87 (large) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Why this test? โ
โ โข 2 independent groups detected โ
โ โข Normality: passed (Shapiro-Wilk, ฮฑ=0.05) โ
โ โข Variance equality: passed (Levene, ฮฑ=0.05) โ
โ โ Independent samples t-test is appropriate โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
CLI usage
# Compare two groups from a CSV file
statpilot compare --data my_data.csv --target score --group treatment
# Save a Markdown report
statpilot compare --data my_data.csv --target score --group treatment --report report.md
# Paired comparison
statpilot compare --data my_data.csv --target score --group condition --paired
Supported tests (v0.1)
| Scenario | Test selected |
|---|---|
| 2 groups, normal, equal variance | Independent t-test |
| 2 groups, normal, unequal variance | Welch's t-test |
| 2 groups, non-normal | Mann-Whitney U |
| 2 groups, paired, normal | Paired t-test |
| 2 groups, paired, non-normal | Wilcoxon signed-rank |
| 3+ groups, normal, equal variance | One-way ANOVA |
| 3+ groups, otherwise | Kruskal-Wallis |
Why not just use pingouin or statsmodels?
pingouin and statsmodels are excellent libraries โ StatPilot uses them under the hood. The difference is the automated decision layer: with pingouin, you still choose which function to call. StatPilot runs the assumption checks and makes that choice for you, and documents the reasoning in the output.
Installation for development
git clone https://github.com/your-org/statpilot.git
cd statpilot
pip install -e ".[dev]"
pytest
Documentation
Full documentation at statpilot.readthedocs.io โ including the decision engine concept guide, API reference, and example notebooks.
Contributing
See CONTRIBUTING.md. Bug reports and feature requests welcome via GitHub Issues.
Citation
If you use StatPilot in your research, please cite it. A DOI is available via Zenodo after each tagged release.
License
MIT โ free to use in academic and commercial projects.
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 statpilot-0.1.0.tar.gz.
File metadata
- Download URL: statpilot-0.1.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d67f4792ef5295342d43e9f837852363551ef6eb52f3d5b0e07d9c357ec7081
|
|
| MD5 |
a0797b3ded26b8b1a04c99a655cf9405
|
|
| BLAKE2b-256 |
f9206cae6ee4f20d621fa6ce709847bc786650886768660120d7f858ee7595a2
|
File details
Details for the file statpilot-0.1.0-py3-none-any.whl.
File metadata
- Download URL: statpilot-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
971980d8e09e5b2b8e66da609103ce0a83bbe8a19a41ea31e9c766b148b24be8
|
|
| MD5 |
60cf0ed2d4e72d24ceccfa2e767031f3
|
|
| BLAKE2b-256 |
2e541f7450ce399524b0fab8afa30ce32bb9db8bc9832807c066bbfcec9829e0
|