CommencerCommencer gratuitement

Simulation d’un problème de profit

Vous travaillez pour une entreprise qui fabrique des équipements industriels. Le prix de vente de chaque équipement est de 100 000 $. Vous savez également qu’il existe une forte corrélation négative entre le inflation_rate et le volume des ventes. Cette relation est capturée par la matrice de covariance cov_matrix, disponible dans la console.

La fonction profit_next_year_mc() effectue une simulation de Monte Carlo et renvoie le profit attendu (en milliers de dollars), à partir du taux d’inflation moyen et du volume de ventes moyen passés en arguments. Vous devrez aussi passer n, le nombre de fois où la simulation doit être exécutée. La fonction a été chargée pour vous, et sa définition est ci-dessous.

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

Les paquets suivants ont été importés pour vous : pandas sous pd, numpy sous np, scipy.stats sous st, matplotlib.pyplot sous plt, et seaborn sous sns.

Cet exercice fait partie du cours

Simulations de Monte Carlo en Python

Afficher le cours

Instructions

  • Lancez une simulation de Monte Carlo en exécutant profit_next_year_mc() 500 fois avec mean_inflation égal à 2 et mean_volume égal à 500.
  • Visualisez les résultats de la simulation avec un displot.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
Modifier et exécuter le code