Skip to main content

A package for actuarial math and life contingent risks

Project description

This Python package implements fundamental methods for modeling life contingent risks, and closely follows the coverage of traditional topics in actuarial exams and standard texts such as the “Fundamentals of Actuarial Math - Long-term” exam syllabus by the Society of Actuaries, and “Actuarial Mathematics for Life Contingent Risks” by Dickson, Hardy and Waters.

Overview

The package comprises three sets of classes, which:

  1. Implement general actuarial methods

    • Basic interest theory and probability laws

    • Survival functions, expected future lifetimes and fractional ages

    • Insurance, annuity, premiums, policy values, and reserves calculations

  2. Adjust results for

    • Extra mortality risks

    • 1/mthly payment frequency using UDD or Woolhouse approaches

  3. Specify and load a particular form of assumptions

    • Life table, select life table, or standard ultimate life table

    • Mortality laws, such as constant force of maturity, beta and uniform distributions, or Makeham’s and Gompertz’s laws

    • Recursion inputs

Quick Start

  1. pip install actuarialmath

    • also requires numpy, scipy, matplotlib and pandas.

  2. Start Python (version >= 3.10) or Jupyter-notebook

    • Select a suitable subclass to initialize with your actuarial assumptions, such as MortalityLaws (or a special law like ConstantForce), LifeTable, SULT, SelectLife or Recursion.

    • Call appropriate methods to compute intermediate or final results, or to solve parameter values implicitly.

    • Adjust the answers with ExtraRisk or Mthly (or its UDD or Woolhouse) classes.

Examples

# SOA FAM-L sample question 5.7
from actuarialmath.recursion import Recursion, Woolhouse
# initialize Recursion class with actuarial inputs
life = Recursion().set_interest(i=0.04)\
                  .set_A(0.188, x=35)\
                  .set_A(0.498, x=65)\
                  .set_p(0.883, x=35, t=30)
# modfy the standard results with Woolhouse mthly approximation
mthly = Woolhouse(m=2, life=life, three_term=False)
# compute the desired temporary annuity value
print(1000 * mthly.temporary_annuity(35, t=30)) #   solution = 17376.7
# SOA FAM-L sample question 7.20
from actuarialmath.sult import SULT, Contract
life = SULT()
# compute the required FPT policy value
S = life.FPT_policy_value(35, t=1, b=1000)  # is always 0 in year 1!
# input the given policy contract terms
contract = Contract(benefit=1000,
                    initial_premium=.3,
                    initial_policy=300,
                    renewal_premium=.04,
                    renewal_policy=30)
# compute gross premium using the equivalence principle
G = life.gross_premium(A=life.whole_life_insurance(35), **contract.premium_terms)
# compute the required policy value
R = life.gross_policy_value(35, t=1, contract=contract.set_contract(premium=G))
print(R-S)   # solution = -277.19

Resources

  1. Colab or Jupyter notebook, to solve all sample SOA FAM-L exam questions

  2. User Guide, or download pdf

  3. Code documentation

  4. Github repo and issues

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

actuarialmath-0.0.9.tar.gz (57.6 kB view details)

Uploaded Source

Built Distribution

actuarialmath-0.0.9-py3-none-any.whl (67.0 kB view details)

Uploaded Python 3

File details

Details for the file actuarialmath-0.0.9.tar.gz.

File metadata

  • Download URL: actuarialmath-0.0.9.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for actuarialmath-0.0.9.tar.gz
Algorithm Hash digest
SHA256 d46ee531858e03c7c3f06a4287fcd213f6a20682c2507afee93090c8ab2613c5
MD5 29c2117631925fabf443f67d816b6787
BLAKE2b-256 cafdc80557f05d04d7de901ba58e67180085758d1bb5a0201df6f0ba957d8555

See more details on using hashes here.

File details

Details for the file actuarialmath-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for actuarialmath-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b7858887c1625a5e98acd14248120e8932b2083322c93deee81fdced9a51931c
MD5 90f006a5d204031fba34bfa93c9ae0ed
BLAKE2b-256 395e2f150660f4b90f866e64b639b9ea2aa9fca85ce777a40306e33e6438868b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page