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:
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0fa1faa6269aaf4b5653563de54affd9df85501f14321370098ff2ea0faf073
|
|
| MD5 |
b27d77678f1d93e6df6e51c161a14629
|
|
| BLAKE2b-256 |
78c4a55a4e23edb1d228ee0c8e4d7dd4e53e37347dbc369caabb78f056805dcf
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b91f710b8aa03b5304556019dce63768720c94c9c9d911488df17bc0c620cc8
|
|
| MD5 |
0b02f7d98e0ac6da5e7ebbfe69bec08f
|
|
| BLAKE2b-256 |
ab9fcf59d63ef7c3dc781c2c57a86fe19bb0f9d4877866ee6fead1d63256c35f
|