CommencezCommencez gratuitement

Analyse de sensibilité de l'entreprise

Vous allez maintenant examiner ce qui arriverait aux profits de l'entreprise de l'exercice précédent pour diverses valeurs de mean_inflation et de mean_volume. Cela aidera l'entreprise à planifier en fonction de plusieurs niveaux d'inflation et de volumes de ventes, puisqu'aucune entreprise ne peut jamais savoir avec certitude quelle inflation ou quels volumes de ventes elle aura à l'avenir.

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(), qui a déjà été 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 modules 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.

Cette activité fait partie du cours

Simulations de Monte-Carlo en Python

Voir le cours

Instructions de l’exercice

  • Terminez la simulation Monte Carlo en exécutant profit_next_year_mc() pour calculer le profit 100 fois, chaque fois en itérant sur 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 ce code d’exemple.

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