Simulación de un problema de beneficios
Trabajas en una empresa que fabrica equipos industriales. El precio de venta de cada equipo es de 100.000 dólares. También sabes que existe una fuerte correlación negativa entre la inflation_rate
y las ventas volume
. Esta relación se capta mediante la matriz de covarianza cov_matrix
, que está disponible en la consola para ti.
La función profit_next_year_mc()
realiza una simulación Monte Carlo que devuelve el beneficio esperado (en miles de dólares), dados como argumentos la tasa de inflación media y el volumen de ventas medio. También tendrás que pasar n
, el número de veces que debe ejecutarse la simulación. La función se ha cargado para ti, y la definición está más abajo.
def profit_next_year_mc(mean_inflation, mean_volume, n):
profits = []
for i in range(n):
# Generate inputs by sampling from the multivariate normal distribution
rate_sales_volume = st.multivariate_normal.rvs(mean=[mean_inflation,mean_volume], cov=cov_matrix,size=1000)
# Deterministic calculation of company profit
price = 100 * (100 + rate_sales_volume[:,0])/100
volume = rate_sales_volume[:,1]
loan_and_cost = 50 * volume + 45 * (100 + 3 * rate_sales_volume[:,0]) * (volume/100)
profit = (np.mean(price * volume - loan_and_cost))
profits.append(profit)
return profits
Además, se han importado los siguientes paquetes: pandas
como pd
, numpy
como np
, scipy.stats
como st
, matplotlib.pyplot
como plt
y seaborn
como sns
.
Este ejercicio forma parte del curso
Simulaciones Montecarlo en Python
Instrucciones del ejercicio
- Realiza una simulación Monte Carlo ejecutando
profit_next_year_mc()
500 veces utilizando unmean_inflation
de2
y unmean_volume
de500
. - Visualiza los resultados de la simulación en
displot
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Run a Monte Carlo simulation 500 times using a mean_inflation of 2 and a mean_volume of 500
profits = profit_next_year_mc(____)
# Create a displot of the results
____
plt.show()