ÎncepețiÎncepe gratuit

Analiza de sensibilitate a companiei

Vei analiza acum ce s-ar întâmpla cu profiturile companiei din exercițiul anterior pentru diferite valori ale mean_inflation și mean_volume. Acest lucru va ajuta compania să se pregătească pentru mai multe scenarii de inflație și volume de vânzări, deoarece nicio companie nu poate ști cu certitudine ce nivel de inflație sau ce volume de vânzări va înregistra în viitor.

Procentele medii de inflație pe care dorești să le explorezi sunt 0, 1, 2, 5, 10, 15, 20, 50, iar valorile de vânzări utilizate ca volum mediu sunt 100, 200, 500, 800, 1000. Ca referință, iată definiția funcției profit_next_year_mc(), care a fost deja încărcată pentru tine.

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

Au fost importate următoarele pachete: pandas ca pd, numpy ca np, scipy.stats ca st, matplotlib.pyplot ca plt și seaborn ca sns.

Acest exercițiu face parte din cursul

Simulări Monte Carlo în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează simularea Monte Carlo rulând profit_next_year_mc() pentru a calcula profitul de 100 de ori, parcurgând de fiecare dată lista valorilor infl și lista valorilor vol.
  • Folosește un displot pentru a vizualiza rezultatele simulării salvate în coloana Profit a DataFrame-ului rezultat.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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()
Editează și rulează codul