Skip to main content

AUB-HTP

⚠️ ATTENTION ⚠️ You are currently viewing the unreleased development version of the AUB-HTP codebase. Please find the latest released version of the AUB-HTP codebase v1.1.X here.

Tests

arXiv

American University of Beirut's Heavy Tails Package (AUB-HTP) is a modern python toolkit for analyzing Alpha Stable Distributions (also called Levy-Stable distributions)

AUB-HTP includes:

Installation

pip install aub-htp

For alternative installation methods (uv, conda, poetry), see the installation guide.

Usage

Univariate Alpha Stable Distributions

Univariate Probability Density Function (PDF) Generation

import aub_htp as ht
import numpy as np

x = np.linspace(-10, 10, 100)
y = ht.alpha_stable.pdf(x, alpha = 0.4, beta = 0.8, loc = 2, scale = 3)

You can also switch between parametrizations S0 and S1 (default).

import aub_htp as ht
import numpy as np

x = np.linspace(-10, 10, 100)
ht.alpha_stable.with_parametrization("S0")
y = ht.alpha_stable.pdf(x, alpha = 0.4, beta = 0.8, loc = 2, scale = 3)

docs/examples/plot_parametrizations.png

Univariate Random Variable Sampling (RVS)

import aub_htp as ht

sample = ht.alpha_stable.rvs(alpha = 0.4, beta = 0.8, loc = 2, scale = 3)
print(sample)
# --------------------------------------------------------------------
# 32712.16830783209
import aub_htp as ht

ht.alpha_stable.with_parametrization("S0")

samples = ht.alpha_stable.rvs(alpha = 0.4, beta = 0.8, loc = 2, scale = 3, size = (2,5), random_state = 38)
print(samples)
# --------------------------------------------------------------------
# [[  3.23516232   2.69285354   6.42379299   2.47262474   0.9449036 ]
#  [259.96755723   0.6227459  118.69956139   3.63961872   3.45083368]]

docs/examples/plot_univariate_sampling.png

Multivariate Alpha Stable Distributions

Multivariate Random Variable Sampling (RVS)

Sampling from a multivariate alpha stable distribution requires knowledge of the underlying mathematical spectral measure you wish to sample against. AUB-HTP's standard library of spectral measure samplers includes:

  • Isotropic Spectral Measure Sampler
  • Elliptic Spectral Measure Sampler
  • Discrete Spectral Measure Sampler
  • Mixed Spectral Measure Sampler
  • Univariate Spectral Measure Sampler

Example 0: Sampling from the standard 2d isotropic spectral measure.

import aub_htp as ht

samples = ht.multivariate_alpha_stable.rvs(alpha = 1.2, spectral_measure_sampler = "standard_isotropic_2d")
print(samples)

Example 1: Sampling from an isotropic spectral measure.

import aub_htp as ht
from aub_htp.random import IsotropicSampler

alpha = 1.2
sampler = IsotropicSampler(number_of_dimensions= 2, alpha = alpha, gamma = 2)

samples = ht.multivariate_alpha_stable.rvs(alpha = alpha, spectral_measure_sampler = sampler, size = 10)
print(samples)

Example 2: Sampling from a mixed spectral measure.

import aub_htp as ht
from aub_htp.random import IsotropicSampler, EllipticSampler, DiscreteSampler, MixedSampler

alpha = 0.6

isotropic = IsotropicSampler(number_of_dimensions = 2 , alpha = alpha, gamma = 2)
elliptic = EllipticSampler(number_of_dimensions = 2, alpha = alpha, sigma = [[10, 2], 
                                                                             [2, 50]])
discrete = DiscreteSampler(alpha = alpha, positions = [[0, 1], [-1, 0]],  weights = [0.2, 0.8])

mixed = MixedSampler(spectral_measures = [isotropic, elliptic, discrete], weights = [0.4, 0.4, 0.2])

samples = ht.multivariate_alpha_stable.rvs(alpha = alpha, spectral_measure_sampler = mixed, shift = [4, 2], size = 10)

print(samples)

Custom Spectral Measures

You can also extend the standard library collection by extending the base class BaseSpectralMeasureSampler.

Important Note: When sampling an alpha stable vector against your custom defined spectral measure with $alpha \ge 1$, your custom spectral measure $\Lambda$ has to uphold the following property: $$\int_{\mathbb{S}^{d-1}}s\Lambda(ds)=0$$

Example: Butterfly Spectral Measure Sampler

import aub_htp as ht
from aub_htp.random import BaseSpectralMeasureSampler
import numpy as np

class ButterflySampler(BaseSpectralMeasureSampler):
    def sample(self, number_of_samples: int, random_state = None):
        p = np.random.rand(number_of_samples)
        theta = np.empty(number_of_samples)

        mask = p <= 0.5
        theta[mask] = np.random.uniform(-np.pi / 4, np.pi / 4, size=mask.sum())
        theta[~mask] = np.random.uniform(
            3 * np.pi / 4,
            5 * np.pi / 4,
            size=(~mask).sum()
        )

        x = np.cos(theta)
        y = np.sin(theta)

        return np.column_stack((x, y))

    def dimensions(self) -> int:
        return 2

    def mass(self) -> float:
        return 1.0

samples = ht.multivariate_alpha_stable.rvs(alpha = 0.8, spectral_measure_sampler=ButterflySampler(), size = 10000)

docs/examples/plot_multivariate_sampling.png

Linear Regressor For Alpha Stable Distributed Data

// TODO: ADD TUTORIAL

Kmeans Clustering For Alpha Stable Distributed Data

// TODO: ADD TUTORIAL

Papers and Further Readings

Information Measures, Inequalities and Performance Bounds for Parameter Estimation in Impulsive Noise Environments (2018)

Preprints

Density Functions and Random Number Generators of α-Stable Distributions (2026)

Heavy-Tailed Principal Component Analysis (2026)

Other References

Univariate Stable Distributions Models for Heavy Tailed Data By John P. Nolan (2020)

Multivariate elliptically contoured stable distributions: Theory and estimation (2013)

Integral representations of one-dimensional projections for multivariate stable densities (2009)

Multivariate Stable Densities as Functions of One Dimensional Projections (1998)

  1. Information Measures, Inequalities and Performance Bounds for Parameter Estimation in Impulsive Noise Environments (2018) ↩

Metadata

Release files for aub-htp 1.1.1

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

Source distribution (sdist)

Source distribution for aub-htp 1.1.1
File Size Uploaded
aub_htp-1.1.1.tar.gz 63.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aub-htp 1.1.1
File Interpreter ABI Platform
aub_htp-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 130.0 kB

Release files / aub_htp-1.1.1.tar.gz

Download URL aub_htp-1.1.1.tar.gz
Size 63.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d0078108e25bbd943b57e73a54e0eb1065b74bedd9321fe1417a81b129c0039b
BLAKE2b-256 checksum
How to use checksums
b1788d0c59d8155dbbf2739322e1c92a069e7870fd2f53676f7d421cb9db3bc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / aub_htp-1.1.1-py3-none-any.whl

Download URL aub_htp-1.1.1-py3-none-any.whl
Size 66.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4176603b3a4633b5bed81024f4747eed9a4632901f94c61a34a404cdc6ff6f96
BLAKE2b-256 checksum
How to use checksums
ae979ad0fb169e00bb575a928f2b58c22baa3064c6b2e2292627cb84977e40ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 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