LoslegenKostenlos loslegen

Sensitivitätsanalyse für das Unternehmen

Du untersuchst jetzt, was mit den Gewinnen des Unternehmens aus der vorherigen Übung bei verschiedenen Werten von mean_inflation und mean_volume passieren würde. Das hilft dem Unternehmen, für unterschiedliche Niveaus von Inflation und Verkaufsvolumen zu planen, denn niemand kann sicher wissen, wie sich Inflation oder Verkaufsvolumen in Zukunft entwickeln.

Die mittleren Inflationsraten, die du prüfen möchtest, sind 0, 1, 2, 5, 10, 15, 20, 50; die Verkaufswerte, die du als mittlere Volumina verwenden willst, sind 100, 200, 500, 800, 1000. Zur Erinnerung hier die Definition der Funktion profit_next_year_mc(), die bereits für dich geladen wurde.

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

Die folgenden Pakete wurden importiert: pandas als pd, numpy als np, scipy.stats als st, matplotlib.pyplot als plt und seaborn als sns.

Diese Übung ist Teil des Kurses

Monte-Carlo-Simulationen in Python

Kurs anzeigen

Anleitung zur Übung

  • Schließe die Monte-Carlo-Simulation ab, indem du profit_next_year_mc() ausführst, um den Gewinn 100-mal zu berechnen, wobei du jedes Mal durch die Liste der infl-Werte und die Liste der vol-Werte iterierst.
  • Verwende ein displot, um die Simulationsergebnisse zu visualisieren, die in der Spalte Profit des resultierenden DataFrames gespeichert sind.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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()
Code bearbeiten und ausführen