Statista - Advanced Statistical Analysis Package#
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 |
---|---|---|---|
Installation#
Conda (Recommended)#
PyPI#
Development Version#
Main Features#
Statistical Distributions#
- Probability Distributions: GEV, Gumbel, Normal, Exponential, and more
- 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#
Basic Usage#
import pandas as pd
from statista.distributions import Distributions
# Load your time series data
data = pd.read_csv("your_data.csv", header=None)[0].tolist()
# Create a distribution object (e.g., Gumbel)
dist = Distributions("Gumbel", data)
# Fit the distribution using maximum likelihood
params = dist.fit_model(method="mle")
print(params)
# Calculate and plot the PDF and CDF
pdf = dist.pdf(plot_figure=True)
cdf, _, _ = dist.cdf(plot_figure=True)
# Perform goodness-of-fit tests
ks_test = dist.ks()
chi2_test = dist.chisquare()
# Create a probability plot with confidence intervals
fig, ax = dist.plot()
Extreme Value Analysis#
from statista.distributions import GEV, PlottingPosition
# Create a GEV distribution
gev_dist = Distributions("GEV", data)
# Fit using L-moments
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 GPL-3.0 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/Serapieum-of-alex/statista
BibTeX: