ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Realiza una simulación Monte Carlo ejecutando profit_next_year_mc() 500 veces utilizando un mean_inflation de 2 y un mean_volume de 500.
  • 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()
Editar y ejecutar código