MulaiMulai sekarang secara gratis

Analisis sensitivitas perusahaan

Sekarang Anda akan menelaah apa yang akan terjadi pada laba perusahaan dari latihan sebelumnya pada berbagai nilai mean_inflation dan mean_volume. Ini akan membantu perusahaan merencanakan beberapa skenario tingkat inflasi dan volume penjualan karena tidak ada perusahaan yang dapat yakin terhadap inflasi atau volume penjualan yang akan mereka hadapi di masa depan.

Persentase inflasi rata-rata yang ingin Anda eksplorasi adalah 0, 1, 2, 5, 10, 15, 20, 50, sementara nilai penjualan yang digunakan sebagai nilai volume rata-rata adalah 100, 200, 500, 800, 1000. Sebagai pengingat, berikut adalah definisi fungsi profit_next_year_mc() yang telah dimuat untuk Anda.

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

Pustaka berikut telah diimpor: pandas sebagai pd, numpy sebagai np, scipy.stats sebagai st, matplotlib.pyplot sebagai plt, dan seaborn sebagai sns.

Latihan ini adalah bagian dari kursus

Simulasi Monte Carlo di Python

Lihat Kursus

Petunjuk latihan

  • Selesaikan simulasi Monte Carlo dengan menjalankan profit_next_year_mc() untuk menghitung laba sebanyak 100 kali, setiap kali melakukan perulangan melalui daftar nilai infl dan daftar nilai vol.
  • Gunakan displot untuk memvisualisasikan hasil simulasi yang disimpan di kolom Profit pada DataFrame hasilnya.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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()
Edit dan Jalankan Kode