Skip to main content

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.

CI PyPI version Coverage License: MIT Python 3.10+


The problem

Running statistics correctly involves a sequence of decisions most researchers make inconsistently:

  1. Check normality โ€” but which test? Shapiro-Wilk? Visual inspection?
  2. Check variance homogeneity โ€” but only when normality holds?
  3. Pick the right test โ€” but which of t-test, Welch, Mann-Whitney, ANOVA, Kruskal-Wallis?
  4. Calculate effect size โ€” but Cohen's d, eta-squared, or rank-biserial?
  5. 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

statpilot-0.1.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

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

statpilot-0.1.0-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

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

Hashes for statpilot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7d67f4792ef5295342d43e9f837852363551ef6eb52f3d5b0e07d9c357ec7081
MD5 a0797b3ded26b8b1a04c99a655cf9405
BLAKE2b-256 f9206cae6ee4f20d621fa6ce709847bc786650886768660120d7f858ee7595a2

See more details on using hashes here.

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

Hashes for statpilot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 971980d8e09e5b2b8e66da609103ce0a83bbe8a19a41ea31e9c766b148b24be8
MD5 60cf0ed2d4e72d24ceccfa2e767031f3
BLAKE2b-256 2e541f7450ce399524b0fab8afa30ce32bb9db8bc9832807c066bbfcec9829e0

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