Skip to main content

Statista - Advanced Statistical Analysis Package

Python Versions License: MIT Docs codecov pre-commit GitHub last commit GitHub issues GitHub stars GitHub forks

Overview

Statista is a comprehensive Python package for statistical analysis, focusing on probability distributions, extreme value analysis, and sensitivity analysis. It provides robust tools for researchers, engineers, and data scientists working with statistical models, particularly in hydrology, climate science, and risk assessment.

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Downloads Downloads Downloads PyPI - Downloads Conda Version PyPI version Anaconda-Server Badge Conda Platforms Join the chat at https://gitter.im/Hapi-Nile/Hapi

conda-forge feedstock

Conda-forge feedstock

Installation

conda install -c conda-forge statista

PyPI

pip install statista

Development Version

pip install git+https://github.com/serapeum-org/statista

Main Features

Statistical Distributions

  • Probability Distributions: GEV, Gumbel, Normal, Exponential, and more
  • Multi-Distribution Fitting: Fit all distributions at once and select the best fit
  • Parameter Estimation Methods: Maximum Likelihood (ML), L-moments, Method of Moments (MOM)
  • Goodness-of-fit Tests: Kolmogorov-Smirnov, Chi-square
  • Truncated Distributions: Focus analysis on values above a threshold

Extreme Value Analysis

  • Return Period Calculation: Estimate extreme events for different return periods
  • Confidence Intervals: Calculate confidence bounds using various methods
  • Plotting Positions: Weibull, Gringorten, and other empirical distribution functions

Sensitivity Analysis

  • One-at-a-time (OAT): Analyze parameter sensitivity individually
  • Sobol Visualization: Visualize parameter interactions and importance

Statistical Tools

  • Descriptive Statistics: Comprehensive statistical descriptors
  • Time Series Analysis: Auto-correlation and other time series tools
  • Visualization: Publication-quality plots for statistical analysis

Quick Start

Single Distribution

import numpy as np
from statista.distributions import Distributions

# Load your data
data = np.loadtxt("examples/data/time_series2.txt")

# Create a distribution object and fit parameters
dist = Distributions("Gumbel", data=data)
params = dist.fit_model(method="lmoments", test=False)
print(params.loc, params.scale)

# Calculate PDF and CDF
pdf = dist.pdf(plot_figure=True)
cdf, _, _ = dist.cdf(plot_figure=True)

# Goodness-of-fit tests
ks_stat, ks_pvalue = dist.ks()
chi_stat, chi_pvalue = dist.chisquare()

Multi-Distribution Fitting

from statista.distributions import Distributions

# Fit all distributions and find the best one
dist = Distributions(data=data)
best_name, best_info = dist.best_fit()
print(f"Best: {best_name}")
print(f"Parameters: {best_info['parameters']}")

# Or fit all and inspect results
results = dist.fit()
for name, info in results.items():
    print(f"{name}: KS p-value={info['ks'][1]:.4f}")

Extreme Value Analysis

from statista.distributions import Distributions, PlottingPosition

# Fit a GEV distribution using L-moments
gev_dist = Distributions("GEV", data=data)
params = gev_dist.fit_model(method="lmoments")

# Calculate non-exceedance probabilities
cdf_weibul = PlottingPosition.weibul(data)

# Calculate confidence intervals
lower_bound, upper_bound, fig, ax = gev_dist.confidence_interval(
    plot_figure=True
)

For more examples and detailed documentation, visit Statista Documentation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use Statista in your research, please cite it as:

Farrag, M. (2023). Statista: A Python package for statistical analysis, extreme value analysis, and sensitivity analysis.
https://github.com/serapeum-org/statista

BibTeX:

@software{statista2023,
  author = {Farrag, Mostafa},
  title = {Statista: A Python package for statistical analysis, extreme value analysis, and sensitivity analysis},
  url = {https://github.com/serapeum-org/statista},
  year = {2023}
}

Release files for statista 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statista 0.8.0
File Size Uploaded
statista-0.8.0.tar.gz 4.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for statista 0.8.0
File Interpreter ABI Platform
statista-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.1 MB

Release files / statista-0.8.0.tar.gz

Download URL statista-0.8.0.tar.gz
Size 4.0 MB
Tags Source
SHA-256 checksum
How to use checksums
af8ab8d17e94d72bb6abab80a6141711150d1482ea64e6ec679e05247d784261
BLAKE2b-256 checksum
How to use checksums
c0abeaad74ffaea9ed201f238ab861aba4fa00133fa49b5203869a779e3ab70a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / statista-0.8.0-py3-none-any.whl

Download URL statista-0.8.0-py3-none-any.whl
Size 146.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f269ea6d260dc6bec02c0ece665bb0673e6cdd9945a9bf5cc3967d8bd09241fb
BLAKE2b-256 checksum
How to use checksums
f97fd8cbabf3ba7ada509c0282a6e9c2183d01c8c1b037bba0583a5c68255e05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

1 release file

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page