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

You can install RiskSimp using pip:

pip install RiskSimp

Usage

Import the required modules and classes from RiskSimp:

from RiskSimp import Continuous, Discrete, Constant, Simulation

Modules

Objects

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

Utils

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

Variables

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

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

  • 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(subclass of Distribution): Represents a non-random constant value.

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()

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.3.tar.gz (9.7 kB 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.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for RiskSimp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 54a49eeedb998fc6f6b211c9d8914983a523e11d2b97b0628b9fda16a84e94b6
MD5 5b49f1701b812bfa62868a575d604d5f
BLAKE2b-256 0df45eb0a2cf507c010b9555e143a10f5fc8e3150f3abfd72912f4d25a9c4eba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: RiskSimp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5435ef396b1314e7b1f1a5b5775459ab733b28a76e3267efbbc1dce17ace26de
MD5 f16d0cdb294daf917dc75e4d58c00d9c
BLAKE2b-256 0f5a4d423498175ecd0ceacf213c6682bf9e2306ca182509f987974241b4bcb8

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