MulaiMulai sekarang secara gratis

Simulasi masalah profit

Anda bekerja di sebuah perusahaan yang memproduksi peralatan industri. Harga jual setiap unit peralatan adalah $100.000. Anda juga mengetahui bahwa terdapat korelasi negatif yang kuat antara inflation_rate dan volume penjualan. Hubungan ini ditangkap oleh matriks kovarians cov_matrix, yang tersedia di konsol untuk Anda.

Fungsi profit_next_year_mc() menjalankan simulasi Monte Carlo yang mengembalikan ekspektasi profit (dalam ribuan dolar), dengan tingkat inflasi rata-rata dan volume penjualan rata-rata sebagai argumen. Anda juga perlu memberikan n, yaitu jumlah pengulangan simulasi. Fungsi tersebut telah dimuat untuk Anda, dan definisinya ada di bawah ini.

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 untuk Anda: 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

  • Lakukan simulasi Monte Carlo dengan menjalankan profit_next_year_mc() sebanyak 500 kali menggunakan mean_inflation sebesar 2 dan mean_volume sebesar 500.
  • Visualisasikan hasil simulasi menggunakan displot.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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