ÎncepețiÎncepe gratuit

Simularea unui scenariu de profit

Lucrezi pentru o companie care produce echipamente industriale. Prețul de vânzare al fiecărui echipament este de 100.000 $. Știi, de asemenea, că există o corelație negativă puternică între inflation_rate (rata inflației) și volume (volumul vânzărilor). Această relație este surprinsă de matricea de covarianță cov_matrix, disponibilă în consolă.

Funcția profit_next_year_mc() efectuează o simulare Monte Carlo și returnează profitul estimat (în mii de dolari), primind ca argumente rata medie a inflației și volumul mediu al vânzărilor. Va trebui să transmiți și n, adică numărul de rulări ale simulării. Funcția a fost deja încărcată pentru tine, iar definiția sa este prezentată mai jos.

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

Următoarele pachete au fost importate pentru tine: 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

  • Realizează o simulare Monte Carlo rulând profit_next_year_mc() de 500 de ori, folosind un mean_inflation de 2 și un mean_volume de 500.
  • Vizualizează rezultatele simulării folosind un displot.

Exercițiu interactiv practic

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

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