Skip to main content

RiskSimp is a versatile Python library designed to streamline the management and manipulation of random variables to empower analysts to effortlessly integrate random distributions into their processes, facilitating non-deterministic analysis

Project description

RiskSimp: Simplifying Random Variables and Simulation in Python

Version: 0.1.0

RiskSimp is a versatile Python library designed to streamline the management and manipulation of random variables, empowering analysts to effortlessly integrate random distributions into their processes and facilitate non-deterministic analysis.

Table of Contents

Installation {#installation}

You can install RiskSimp using pip:

pip install RiskSimp

Usage {#usage}

Import the required modules and classes from RiskSimp:

from RiskSimp import Continuous, Discrete, Constant, Simulation

Modules {#modules}

Objects {#objects}

In the "objects" module, you'll find the base classes used throughout the library.

Utils {#utils}

The "utils" module contains classes to simulate processes with random variables.

Variables {#variables}

The "variables" module houses various classes for different types of random variables.

Continuous {#continuous}

  • Uniform(cls, a: Union[int, float], b: Union[int, float])
  • Triangular(cls, min_val: Union[int, float], mode: Union[int, float], max_val: Union[int, float])
  • Normal(cls, mean: Union[int, float], std_dev: Union[int, float])
  • Exponential(cls, scale: Union[int, float])
  • Beta(cls, alpha: Union[int, float], beta: Union[int, float])
  • Gamma(cls, shape: Union[int, float], scale: Union[int, float])
  • Weibull(cls, alpha: Union[int, float], beta: Union[int, float])
  • LogNormal(cls, mean: Union[int, float], std_dev: Union[int, float])

Discrete {#discrete}

  • Poisson(cls, lam: Union[int, float])
  • Uniform(cls, a: int, b: int)
  • Triangular(cls, min_val: int, mode: int, max_val: int)
  • Binomial(cls, n: int, p: float)
  • Bernoulli(cls, p: float, v_occurrence: Union[int, float] = 1, v_non_occurrence: Union[int, float] = 0)

Constant {#constant}

  • Constant(subclass of Distribution): Represents a non-random constant value.

Example {#example}

from RiskSimp import *
import numpy_financial as npf


def restaurante(adecuacion,
                costo_fijo,
                costo_variable,
                inflacion,
                precio_cerveza,
                precio_alitas,
                afluencia_anual,
                variacion_demanda,
                tasa_de_comparacion,
                tasa_descuento):
    years = 11
    adec = [0] * years
    adec[0] = adecuacion
    c_fijo = [costo_fijo * (1 + inflacion) ** i for i in range(years)]
    demanda = [0] + [round(afluencia_anual * (1 + variacion_demanda) ** i) for i in range(years - 1)]
    p_cerveza = [0] + [precio_cerveza * (1 + inflacion) ** i for i in range(years - 1)]
    p_alitas = [0] + [precio_alitas * (1 + inflacion) ** i for i in range(years - 1)]
    ingreso_cerveza = [p * d for p, d in zip(p_cerveza, demanda)]
    ingreso_alitas = [p * d for p, d in zip(p_alitas, demanda)]
    ingreso = [c + a for c, a in zip(ingreso_cerveza, ingreso_alitas)]
    c_variable = [i * costo_variable for i in ingreso]

    flujo = [ing - fij - var - inv for ing, fij, var, inv in zip(ingreso, c_fijo, c_variable, adec)]
    return npf.npv(tasa_descuento, [0] + flujo), npf.irr(flujo)



adecuacion = Constant(1_500_000_000)
adecuacion.change_name("adecuacion")
costo_fijo = Constant(5_000_000)
costo_fijo.change_name("costo_fijo")
costo_variable = Continuous.Uniform(.01, .04)
costo_variable.change_name("costo_variable")
inflacion = Continuous.Normal(.047, 0.002)
inflacion.change_name("inflacion")
precio_cerveza = Continuous.Triangular(12_000, 13_500, 15_000)
precio_cerveza.change_name("precio_cerveza")
precio_alitas = Continuous.Uniform(25_000, 30_000)
precio_alitas.change_name("precio_alitas")
afluencia_anual = Continuous.Triangular(4000, 6000, 8000)
afluencia_anual.change_name("afluencia_anual")
variacion_demanda = Continuous.Uniform(0.02, 0.04)
variacion_demanda.change_name("variacion_demanda")
tasa_de_comparacion = Constant(0.14)
tasa_de_comparacion.change_name("tasa_de_comparacion")
tasa_descuento = Constant(0.1522)
tasa_descuento.change_name("tasa_descuento")

sim = Simulation(restaurante)
sim.set_inputs(adecuacion,
               costo_fijo,
               costo_variable,
               inflacion,
               precio_cerveza,
               precio_alitas,
               afluencia_anual,
               variacion_demanda,
               tasa_de_comparacion,
               tasa_descuento)

sim.complete_analisys()

Output:

Output

License {#license}

This project is licensed under the MIT License - see the LICENSE file for details.

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

RiskSimp-0.1.4.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

RiskSimp-0.1.4-py3-none-any.whl (510.7 kB view details)

Uploaded Python 3

File details

Details for the file RiskSimp-0.1.4.tar.gz.

File metadata

  • Download URL: RiskSimp-0.1.4.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for RiskSimp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e0fa1faa6269aaf4b5653563de54affd9df85501f14321370098ff2ea0faf073
MD5 b27d77678f1d93e6df6e51c161a14629
BLAKE2b-256 78c4a55a4e23edb1d228ee0c8e4d7dd4e53e37347dbc369caabb78f056805dcf

See more details on using hashes here.

File details

Details for the file RiskSimp-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: RiskSimp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 510.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for RiskSimp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0b91f710b8aa03b5304556019dce63768720c94c9c9d911488df17bc0c620cc8
MD5 0b02f7d98e0ac6da5e7ebbfe69bec08f
BLAKE2b-256 ab9fcf59d63ef7c3dc781c2c57a86fe19bb0f9d4877866ee6fead1d63256c35f

See more details on using hashes here.

Supported by

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