Skip to main content

Some utilities to perform Extreme Value Analysis

Project description

Readthedocs Status PyPI version Python Versions License Downloads Maintenance Build Status codecov arXiv

Welcome to xtremes!

xtremes is a Python library designed for extreme value analysis, with tools for simulating time series, extracting block maxima, and performing advanced statistical operations, such as bootstrapping estimators for extreme value distributions. It was created as part of the ClimXtreme project and aims to provide supplementary code and simulations for related work.

Key Features:

  • Simulates time series for extreme value distributions (GEV, Frechet, etc.).
  • Extracts Disjoint and Sliding Block Maxima.
  • Extracts Disjoint and Sliding Block High Order Statistics.
  • Provides robust bootstrapping tools for extreme value statistics.
  • Supports advanced MLE and PWM estimation for extreme value distributions.

Submodules:

  • topt: Contains functions and classes to compute block maxima, high-order statistics, and perform extreme value analysis.
  • biascorrection: Implements tools for bias-correcting Top-$t$ Pseudo-MLEs as described in [[BH25]]
  • miscellaneous: Provides supplementary functions for other modules
  • bootstrap: Provides methods for bootstrapping block maxima and sliding block maxima, with support for both Disjoint and Sliding Block Maxima methods, developed by [[BS24]].

Installation:

   (.venv) $ pip install xtremes

You can also view the package on PyPi at https://pypi.org/project/xtremes/.

Getting Started:

  1. Install the package via pip:

    (.venv) $ pip install xtremes
    
  2. Import the necessary submodules and start exploring extreme value statistics:

    import xtremes as xx
    import xtremes.topt as topt
    ...
    
  3. For more detailed documentation, check out https://xtremes.readthedocs.io/en/latest/.

Example Usage:

Here's a simple example to get started with xtremes:

import xtremes.topt as topt

# Simulate time series data
k, bs = 100, 100
ts = topt.TimeSeries(n=k*bs, distr='Pareto', correlation='IID', modelparams=[0.5])
ts.simulate(rep=10)

# Extract block maxima
ts.get_blockmaxima(block_size=bs)
# Extract Sliding Top-Two
ts.get_HOS(orderstats=2, block_size=bs, stride='SBM')

# initialize the HighOrderStats class
hos = topt.HighOrderStats(ts)
# perform Maximum Likelihood estimation
HOS.get_ML_estimation(r=2, FrechetOrGEV='Frechet')
print(HOS.ML_estimators.values)

# Perform bootstrap analysis
bootstrap = bst.FullBootstrap(ts.values, block_size=5)
bootstrap.run_bootstrap(num_bootstraps=100)
print(bootstrap.statistics['mean'])

Documentation:

Further documentation can be found at https://xtremes.readthedocs.io/en/latest/.

Example Output:

The following plot shows block maxima extracted from a simulated time series:

Block TopTwo Plot

Foundational insights behind the methods used in xtremes.bootstrap have been developed by [[BS24]].

Roadmap:

  • Implement biascorrection for $t \geq 3$
  • Implement tools to choose number of high order statistics data-adaptively
  • Other projects yet to come!

Note:

This project is under active development throughout the project phase and will provide additional code to support theoretical advancements in extreme value statistics. The submodules will be sorted to the papers yet to come.

References:

  • [BS24]: Bücher, A., & Staud, T. (2024). Bootstrapping Estimators based on the Block Maxima Method. arXiv preprint arXiv:2409.05529,
  • [BH25]: Bücher, A., & Haufs, E. (2025). Extreme Value Analysis based on Blockwise Top-Two Order Statistics. arXiv preprint arXiv:2502.15036.

Suggested Citation:

If you use the functionalities related to fitting a MLE to blockwise high order statistics, please cite the following paper:

@misc{bücherhaufs2025toptwo,
      title={Extreme Value Analysis based on Blockwise Top-Two Order Statistics}, 
      author={Axel Bücher and Erik Haufs},
      year={2025},
      eprint={2502.15036},
      archivePrefix={arXiv},
      primaryClass={math.ST},
      url={https://arxiv.org/abs/2502.15036}, 
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xtremes-0.3.4.tar.gz (12.7 MB view details)

Uploaded Source

Built Distribution

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

xtremes-0.3.4-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file xtremes-0.3.4.tar.gz.

File metadata

  • Download URL: xtremes-0.3.4.tar.gz
  • Upload date:
  • Size: 12.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.20

File hashes

Hashes for xtremes-0.3.4.tar.gz
Algorithm Hash digest
SHA256 4e525adfc63e51871e28e01d3269c47ec4736c8e8e54838be05d40ccd09d0c54
MD5 a0dabf08a205ce4919747ed42d51bda8
BLAKE2b-256 c9bf15b1c747ec65861a06d6c2067a5fbf9975262c753f16b164f26636fdb539

See more details on using hashes here.

File details

Details for the file xtremes-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: xtremes-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.20

File hashes

Hashes for xtremes-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cc446feadb9b207f58b62542dd15fec2cef534aed8301400b8ed73a15abe5d86
MD5 29770085d8848a5b62a70a298b550d5a
BLAKE2b-256 ce543020145d829c12a55ef706f931257d906759dcb4082f645fc04836e5ef57

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