Skip to main content

aggregate - working with compound probability distributions

Project description

What is aggregate?

aggregate is a Python package providing fast, accurate, and expressive data structures designed to make working with probability distributions easy and intuitive. Its primary aim is to be an educational tool, allowing experimentation with complex, real world distributions. It has applications in insurance, risk management, actuarial science and related areas.

Main Features

Here are just a few of the things that aggregate does well:

  • Output in tabular form using Pandas
  • Human readable persistence in YAML
  • Built in library of insurance severity curves for both catastrophe and non catastrophe lines
  • Built in parameterization for most major lines of insurance in the US, making it easy to build a “toy company” based on market share by line
  • Clear distinction between catastrophe and non-catastrohpe lines
  • Use of Fast Fourier Transforms throughout differentiates aggregate from tools based on simulation
  • Fast, accurate - no simulations!
  • Graphics and summaries following Pandas and Matplotlib syntax

Potential Applications

  • Education
    • Building intuition around how loss distribtions convolve
    • Convergence to the central limit theorem
    • Generalized distributions
    • Compound Poisson distributions
    • Mixed distributiuons
    • Tail behavior based on frequency or severity tail
    • Log concavity properties
    • Uniform, triangular to normal
    • Bernoulli to normal = life insurance
    • $P(A>x)sim lambda P(X>x) sim P(M>x)$ if thick tails
    • Occ vs agg PMLs, body vs. tail. For non-cat lines it is all about correlation; for cat it is all about the tail
    • Effron’s theorem
    • FFT exact for “making” Poisson, sum of normals is normal, expnentials is gamma etc.
    • Slow convergence of truncated stable to normal
    • Severity doesn’t matter: difference between agg with sev and without for large claim count and stable severity
    • Small large claim split approach…attrit for small; handling without correlation??
    • Compound Poisson: CP(mixed sev) = sum CP(sev0
  • Pricing small insurance portfolios on a claim by claim basis
  • Analysis of default probabilities
  • Allocation of capital and risk charges
  • Detailed creation of marginal loss distributions that can then be sampled and used by other simulation software, e.g. to incorporate dependence structures, or in situations where it is necessary to track individual events, e.g. to compute gross, ceded and net bi- and trivariate distributions.

Practical Modeling Examples

  • From limit profile
  • Mixed severity
  • Modeling $Nmid N ge n$
  • How to model 2 reinstatements

Missing Features

Here are some important things that aggregate does not do:

  • It is strictly univariate. It is impossible to model bivariate or multivariate distributions. As a result aggregate is fast and accurate
  • aggregate can model correlation between variables using shared mixing variables. This is adequate to build realistic distributions but would not be adequate for an industrial- strength insurance company model.

Where to get it




Project details

Release history Release notifications

This version
History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
aggregate-0.5-py3.6.egg (449.1 kB) Copy SHA256 hash SHA256 Egg 3.6 Sep 12, 2018
aggregate-0.5.tar.gz (361.0 kB) Copy SHA256 hash SHA256 Source None Sep 12, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page