StatPilot 🧭
Automated, transparent statistical analysis for researchers.
Developed by AuthBrain • Created & Maintained by Md Mehedi Hassan
🌟 Overview
StatPilot simplifies statistical workflows for data scientists and academic researchers by automating group comparisons.
Instead of manually checking assumptions across multiple statistical software tools, StatPilot evaluates your dataset's distribution, runs assumption diagnostics (Shapiro-Wilk normality and Levene's test for variance homogeneity), selects the appropriate parametric or non-parametric test, computes effect sizes, and outputs a transparent, audit-ready report.
Key Features
- 🧠 Automated Decision Engine: Picks the right test based on group count, pairing, normality, and variance.
- 🔍 Transparent Diagnostics: Documents why a test was chosen with step-by-step reasoning.
- 📊 Rich Terminal Summaries & Plots: Clean terminal tables via Rich, and publication-ready distribution plots via Seaborn.
- 📄 Publication-Ready Markdown Reports: Export full statistical write-ups directly for academic manuscripts.
- 🛠️ CLI & Python API: Use StatPilot seamlessly in Python scripts, Jupyter notebooks, or directly from the terminal.
🔗 Quick Links
- 📦 PyPI Package: https://pypi.org/project/statpilot/
- 💻 GitHub Repository: https://github.com/mhashiq/statpilot
- 🐛 Issue Tracker: https://github.com/mhashiq/statpilot/issues
- 📖 Documentation: https://statpilot.readthedocs.io
- 🏢 Developer Site: https://www.authbrain.io
🚀 Quick Start
Installation
Install StatPilot via pip:
pip install statpilot
💻 Python API Usage
import pandas as pd
from statpilot import compare
# 1. Load your tabular data
df = pd.read_csv("my_experimental_data.csv")
# 2. Run automated statistical comparison
result = compare(df, target="response_time", group="treatment_group")
# 3. View terminal summary table with reasoning
result.summary()
# 4. Display distribution and boxplot graphics
result.plot()
# 5. Generate Markdown report for manuscript submission
report_md = result.to_report()
print(report_md)
Working with Built-in Datasets
StatPilot comes with standard benchmark datasets for immediate testing:
from statpilot.datasets import load_penguins, load_iris
from statpilot import compare
# Load penguins dataset
df = load_penguins()
# Compare flipper length across species
result = compare(df, target="flipper_length_mm", group="species")
result.summary()
🖥️ Command Line Interface (CLI)
StatPilot provides a full-featured CLI tool:
# Compare two groups from a CSV file
statpilot compare --data research_data.csv --target score --group condition
# Save an automated Markdown report to disk
statpilot compare --data research_data.csv --target score --group condition --report report.md
# Paired analysis for repeated measurements
statpilot compare --data pre_post_data.csv --target value --group timepoint --paired
📊 Decision Matrix
StatPilot automates assumption testing and selects tests according to standard statistical decision trees:
| Group Count | Paired / Repeated | Normality (Shapiro-Wilk) | Equal Variance (Levene's) | Test Selected | Effect Size Metric |
|---|---|---|---|---|---|
| 2 Groups | No | Normal ($\alpha=0.05$) | Equal ($\alpha=0.05$) | Independent Samples t-test | Cohen's d |
| 2 Groups | No | Normal ($\alpha=0.05$) | Unequal ($\alpha<0.05$) | Welch's t-test | Cohen's d |
| 2 Groups | No | Non-Normal ($\alpha<0.05$) | N/A | Mann-Whitney U | Rank-Biserial r |
| 2 Groups | Yes | Normal ($\alpha=0.05$) | N/A | Paired Samples t-test | Cohen's d |
| 2 Groups | Yes | Non-Normal ($\alpha<0.05$) | N/A | Wilcoxon Signed-Rank | Rank-Biserial r |
| 3+ Groups | No | Normal ($\alpha=0.05$) | Equal ($\alpha=0.05$) | One-Way ANOVA | Eta-squared ($\eta^2$) |
| 3+ Groups | No | Non-Normal / Heterogeneous | N/A | Kruskal-Wallis H | Epsilon-squared ($\epsilon^2$) |
🤝 How to Contribute
Contributions are warmly welcomed! You can contribute code, documentation, bug fixes, or new statistical methods.
Step-by-Step Contribution Guide
-
Fork the GitHub Repository: Navigate to https://github.com/mhashiq/statpilot and click Fork.
-
Clone your fork locally:
git clone https://github.com/mhashiq/statpilot.git cd statpilot
-
Set up a development environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -e ".[dev]"
-
Make changes and run tests:
pytest ruff check . ruff format .
-
Submit a Pull Request: Push your changes to a feature branch on your fork and open a Pull Request against
main.
For more details, check out our full CONTRIBUTING.md guide.
👥 Authors & Organization Credits
- Author & Maintainer: Md Mehedi Hassan (GitHub: @mhashiq)
- Developed by: AuthBrain
📄 License
StatPilot is open-source software licensed under the MIT License.
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-1.1.0.tar.gz.
File metadata
- Download URL: statpilot-1.1.0.tar.gz
- Upload date:
- Size: 29.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03264be0c50edff5fc51a750d1792679793ef6d1b4785bf1d6530f6f36b469d5
|
|
| MD5 |
6a4d7c59d5ea9569560892e10f309e77
|
|
| BLAKE2b-256 |
3232a8dc2455680768036ee914b738f464059c255b63ead3af30be6282548049
|
File details
Details for the file statpilot-1.1.0-py3-none-any.whl.
File metadata
- Download URL: statpilot-1.1.0-py3-none-any.whl
- Upload date:
- Size: 29.9 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 |
87a183c2239eb1d3ad84be898b53e915e5275506d81020ed0672f3c4f6fbc7ef
|
|
| MD5 |
6a1e756f16ab9045d5f8f1360b76af72
|
|
| BLAKE2b-256 |
0468c4b4a334177c96703ffb408c4a77d4a5234278e438fcbf7852dec7eb3ba9
|