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
Övningsinstruktioner
- Utför en Monte Carlo-simulering genom att köra
profit_next_year_mc()500 gånger medmean_inflationsatt till2ochmean_volumesatt till500. - 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()