Kom igångKom igång gratis

Simulering av ett vinstproblem

Du arbetar på ett företag som tillverkar industriutrustning. Försäljningspriset för varje enhet är 100 000 dollar. Du vet också att det finns ett starkt negativt samband mellan inflation_rate och försäljningsvolymen volume. Det här sambandet fångas av kovariansmatrisen cov_matrix, som finns tillgänglig i konsolen.

Funktionen profit_next_year_mc() utför en Monte Carlo-simulering och returnerar förväntad vinst (i tusentals dollar), givet medelvärdet för inflationstakten och försäljningsvolymen som argument. Du behöver också ange n, det vill säga hur många gånger simuleringen ska köras. Funktionen är redan inläst, och definitionen visas nedan.

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

Följande paket har redan importerats: pandas som pd, numpy som np, scipy.stats som st, matplotlib.pyplot som plt och seaborn som sns.

Den här övningen är en del av kursen

Monte Carlo-simuleringar i Python

Visa kurs

Övningsinstruktioner

  • Utför en Monte Carlo-simulering genom att köra profit_next_year_mc() 500 gånger med mean_inflation satt till 2 och mean_volume satt till 500.
  • Visualisera simuleringsresultaten med hjälp av en displot.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod