CommencezCommencez gratuitement

Simulation d'un problème de profit

Vous travaillez pour une entreprise qui fabrique de l'équipement industriel. Le prix de vente de chaque pièce d'équipement est de 100 000 $. Vous savez aussi qu'il existe une forte corrélation négative entre le inflation_rate et le volume des ventes. Cette relation est représentée par la matrice de covariance cov_matrix, disponible dans la console.

La fonction profit_next_year_mc() exécute une simulation de Monte Carlo et retourne le profit attendu (en milliers de dollars), à partir du taux d'inflation moyen et du volume moyen des ventes passés en arguments. Vous devrez aussi fournir n, le nombre de fois que la simulation doit être exécutée. La fonction a été chargée pour vous, et sa définition se trouve 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 modules 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.

Cette activité fait partie du cours

Simulations de Monte-Carlo en Python

Voir le cours

Instructions de l’exercice

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

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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