Skip to content

Factor Analysis of Information Risk (FAIR) model written in Python. Managed and maintained by Hive Systems

License

Notifications You must be signed in to change notification settings

Hive-Systems/pyfair

Repository files navigation

pyfair

logo

rtd_badge pypi_badge

Factor Analysis of Information Risk (FAIR) model written in Python.

This package endeavors to create a simple API for automating the creation of FAIR Monte Carlo risk simulations.

This is based on the terms found in:

  1. Open FAIR™ RISK TAXONOMY (O-RT); and,
  2. Open FAIR™ RISK ANALYSIS (O-RA)

"Open FAIR" is a trademark of the Open Group.

Installation

pyfair is available on PyPI. To use pyfair with your Python installation, you can run:

pip install pyfair

Documentation

Documentation can be found at the Read the Docs site.

Code

import pyfair

# Create using LEF (PERT), PL, (PERT), and SL (constant)
model1 = pyfair.FairModel(name="Regular Model 1", n_simulations=10_000)
model1.input_data('Loss Event Frequency', low=20, mode=100, high=900)
model1.input_data('Primary Loss', low=3_000_000, mode=3_500_000, high=5_000_000)
model1.input_data('Secondary Loss', constant=3_500_000)
model1.calculate_all()

# Create another model using LEF (Normal) and LM (PERT)
model2 = pyfair.FairModel(name="Regular Model 2", n_simulations=10_000)
model2.input_data('Loss Event Frequency', mean=.3, stdev=.1)
model2.input_data('Loss Magnitude', low=2_000_000_000, mode=3_000_000_000, high=5_000_000_000)
model2.calculate_all()

# Create metamodel by combining 1 and 2
mm = pyfair.FairMetaModel(name='My Meta Model!', models=[model1, model2])
mm.calculate_all()

# Create report comparing 2 vs metamodel.
fsr = pyfair.FairSimpleReport([model1, mm])
fsr.to_html('output.html')

Report Output

Overview

Tree

Violin

Serialized Model

{
    "Loss Magnitude": {
        "mean": 100000,
        "stdev": 20000
    },
    "Loss Event Frequency": {
        "low": 20,
        "mode": 90,
        "high": 95,
        "gamma": 4
    },
    "name": "Sample Model",
    "n_simulations": 10000,
    "random_seed": 42,
    "model_uuid": "2e55fba4-c897-11ea-881b-f26e0bbd6dbc",
    "type": "FairModel",
    "creation_date": "2020-07-17 20:37:03.122525"
}

About

Factor Analysis of Information Risk (FAIR) model written in Python. Managed and maintained by Hive Systems

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published