Combined Data Science & Statistics Toolkit — a single Streamlit application that brings together automated data science workflows and a full suite of statistical tests.
Created by Scott Severance
Your data never leaves your machine. DS Power Tools runs entirely on your local device — there are no external API calls, no cloud services, no telemetry, and no tracking of any kind. All computation, model training, and statistical analysis is performed locally using established open-source libraries (scikit-learn, SciPy, statsmodels, XGBoost, LightGBM, SHAP, Optuna, and others). Streamlit's built-in usage statistics are explicitly disabled. Your datasets, results, and models stay on your computer and are never transmitted anywhere.
| Tool | Description |
|---|---|
| Data Profiler | Automated EDA — distributions, correlations, missing patterns, outlier detection |
| Smart Cleaning | One-click imputation, outlier treatment, encoding, deduplication |
| Feature Engineering | Auto-generate polynomial, interaction, datetime & binned features |
| Feature Selection | Correlation filters, mutual info, variance threshold, RFE ranking |
| Class Imbalance | SMOTE, random over/under-sampling, distribution comparison |
| Model Arena | Benchmark 10+ classifiers/regressors with cross-validation |
| Hyperparameter Tuning | Bayesian optimization via Optuna with live visualizations |
| Explainability | SHAP values, feature importance, partial dependence plots |
| Data Drift | KS test, PSI, chi-squared drift detection between datasets |
| Category | Tests |
|---|---|
| Descriptive | Mean, median, std, skewness, kurtosis |
| t-Tests | One-sample, Independent, Paired |
| ANOVA | One-way, Two-way, Repeated Measures, Mixed |
| Non-Parametric | Mann-Whitney U, Wilcoxon Signed-Rank, Kruskal-Wallis, Friedman |
| Correlation | Pearson, Spearman |
| Regression | Linear (OLS), Logistic |
| Other | Chi-Squared, Binomial |
Each statistical test includes assumption checks, effect size calculations, and interactive Plotly charts.
- Python 3.9+
- pip
git clone https://github.com/ssevera1/DS_Stats_App.git
cd DS_Stats_App
pip install -r requirements.txtWindows:
launch.batmacOS / Linux:
chmod +x launch.sh
./launch.shOr directly:
streamlit run app.pyThe app opens at http://localhost:8501.
To display a logo or banner on the Home page, place an image file at:
assets/hero.png
The image will appear centered above the title and automatically resize to fit. Supported formats: PNG, JPG, GIF, SVG.
To change the path, edit the HERO_IMAGE variable near the top of the render() function in pages/home.py (around line 48):
HERO_IMAGE = "assets/hero.png" # Change this to your image pathIf no file exists at the specified path, the image section is simply hidden.
- Data Science tools — Upload a CSV or Excel file on the Home page (up to 200 MB). Your dataset persists across all DS tool pages via the sidebar navigation.
- Statistics tools — Navigate to "Data Input" under Statistics Tools. Enter data manually in the table editor, paste from a spreadsheet, or upload a separate file. Data persists across all statistical test pages.
- Both toolsets maintain separate data — uploading for one doesn't affect the other.
- All data is held in memory only — nothing is written to disk. Your dataset lives in Streamlit's session state for the duration of the browser session and is automatically discarded when you close the tab or restart the server.
DS_Stats_App/
├── app.py # Main entry point & navigation
├── .streamlit/config.toml # Theme & upload settings (200 MB limit)
├── requirements.txt # All dependencies
├── launch.bat / launch.sh # Quick launchers
│
├── pages/ # All page modules
│ ├── home.py # Home page with upload & tool overview
│ ├── data_profiler.py # DS: Automated EDA
│ ├── smart_cleaning.py # DS: Data cleaning
│ ├── feature_engineering.py
│ ├── feature_selection.py
│ ├── class_imbalance.py
│ ├── model_arena.py
│ ├── hyperparameter_tuning.py
│ ├── explainability.py
│ ├── data_drift.py
│ ├── data_input.py # Stats: Data entry/upload
│ ├── descriptive_stats.py
│ ├── one_sample_ttest.py
│ ├── independent_ttest.py
│ ├── paired_ttest.py
│ ├── oneway_anova.py
│ ├── twoway_anova.py
│ ├── repeated_anova.py
│ ├── mixed_anova.py
│ ├── mann_whitney.py
│ ├── wilcoxon.py
│ ├── kruskal_wallis.py
│ ├── friedman.py
│ ├── pearson_correlation.py
│ ├── spearman_correlation.py
│ ├── linear_regression.py
│ ├── logistic_regression.py
│ ├── chi_squared_test.py
│ └── binomial_test.py
│
├── utils/ # DS styling & Plotly/Matplotlib themes
├── core/ # Stats state management & data I/O
├── stats/ # Statistical computation modules
├── charts/ # Plotly chart builders
└── components/ # Reusable UI components
Core: Streamlit, Pandas, NumPy, Plotly, SciPy, scikit-learn
DS-specific: imbalanced-learn, SHAP, Optuna, XGBoost, LightGBM, Matplotlib, Seaborn
Stats-specific: statsmodels, pingouin
See requirements.txt for full list with version constraints.
MIT