Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
/ pyfair Public
forked from Hive-Systems/pyfair

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

License

Notifications You must be signed in to change notification settings

ryd-dev/pyfair

Open more actions menu
 
 

Repository files navigation

pyfair

logo

rtd_badge travis_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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.3%
  • CSS 1.7%
  • HTML 1.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.