BaşlayınÜcretsiz başlayın

Şirket duyarlılık analizi

Şimdi, bir önceki egzersizdeki şirketin kârlarının, farklı mean_inflation ve mean_volume değerlerinde nasıl değişeceğini inceleyeceksin. Bu, hiçbir şirket gelecekteki enflasyon ya da satış hacmini kesin olarak bilemeyeceği için, farklı enflasyon ve satış düzeylerine göre plan yapmalarına yardımcı olacak.

Keşfetmek istediğin ortalama enflasyon yüzdeleri 0, 1, 2, 5, 10, 15, 20, 50; ortalama hacim değeri olarak kullanılacak satış değerleri ise 100, 200, 500, 800, 1000. Hatırlatma olarak, senin için önceden yüklenmiş olan profit_next_year_mc() fonksiyonunun tanımı aşağıdadır.

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

Aşağıdaki paketler içe aktarıldı: pandas olarak pd, numpy olarak np, scipy.stats olarak st, matplotlib.pyplot olarak plt ve seaborn olarak sns.

Bu egzersiz, kursun bir parçasıdır

Python ile Monte Carlo Simülasyonları

Kursa Göz Atın

Egzersiz talimatları

  • Monte Carlo simülasyonunu tamamlamak için, listedeki infl değerleri ve listedeki vol değerleri üzerinde döngü kurarak, her seferinde profit_next_year_mc() çalıştırıp kârı 100 kez hesapla.
  • Ortaya çıkan DataFrame'in Profit sütununda kaydedilen simülasyon sonuçlarını görselleştirmek için bir displot kullan.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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()
Kodu Düzenle ve Çalıştır