CommencerCommencer gratuitement

Analyse de sensibilité de l’entreprise

Vous allez maintenant examiner l’impact sur les bénéfices de l’entreprise de l’exercice précédent pour différentes valeurs de mean_inflation et de mean_volume. Cela aidera l’entreprise à planifier plusieurs niveaux d’inflation et de volumes de vente, car aucune entreprise ne peut être certaine de l’inflation ou des volumes à venir.

Les pourcentages d’inflation moyens que vous souhaitez explorer sont 0, 1, 2, 5, 10, 15, 20, 50, tandis que les valeurs de ventes à utiliser comme volume moyen sont 100, 200, 500, 800, 1000. Pour rappel, voici la définition de la fonction profit_next_year_mc(), déjà chargée pour vous.

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 packages suivants ont été importés : pandas sous le nom pd, numpy sous le nom np, scipy.stats sous le nom st, matplotlib.pyplot sous le nom plt, et seaborn sous le nom sns.

Cet exercice fait partie du cours

Simulations de Monte Carlo en Python

Afficher le cours

Instructions

  • Terminez la simulation de Monte Carlo en exécutant profit_next_year_mc() pour calculer le bénéfice 100 fois, en parcourant à chaque fois la liste des valeurs infl et la liste des valeurs vol.
  • Utilisez un displot pour visualiser les résultats de la simulation enregistrés dans la colonne Profit du DataFrame obtenu.

Exercice interactif pratique

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

x1 = []
x2 = []
y = []
for infl in [0, 1, 2, 5, 10, 15, 20, 50]:
    for vol in [100, 200, 500, 800, 1000]:
		# Run profit_next_year_mc so that it samples 100 times for each infl and vol combination
        avg_prof = np.mean(____)
        x1.append(infl)
        x2.append(vol)
        y.append(avg_prof)
df_sa = pd.concat([pd.Series(x1), pd.Series(x2), pd.Series(y)], axis=1)
df_sa.columns = ["Inflation", "Volume", "Profit"]
# Create a displot of the simulation results for "Profit"
____
plt.show()
Modifier et exécuter le code