Mô phỏng một bài toán lợi nhuận
Bạn đang làm việc cho một công ty sản xuất thiết bị công nghiệp. Giá bán mỗi thiết bị là $100.000. Bạn cũng biết rằng có mối tương quan âm rất mạnh giữa inflation_rate và volume bán ra. Mối quan hệ này được thể hiện qua ma trận hiệp phương sai cov_matrix, đã có sẵn trong bảng điều khiển cho bạn.
Hàm profit_next_year_mc() thực hiện mô phỏng Monte Carlo và trả về lợi nhuận kỳ vọng (tính theo nghìn đô la), với đầu vào là lạm phát trung bình và sản lượng bán trung bình. Bạn cũng cần truyền n, số lần chạy mô phỏng. Hàm đã được nạp sẵn cho bạn, và định nghĩa như bên dưới.
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
Các gói sau đã được nhập sẵn cho bạn: pandas là pd, numpy là np, scipy.stats là st, matplotlib.pyplot là plt, và seaborn là sns.
Bài tập này là một phần của khóa học
Mô phỏng Monte Carlo với Python
Hướng dẫn bài tập
- Thực hiện mô phỏng Monte Carlo bằng cách chạy
profit_next_year_mc()500 lần vớimean_inflationbằng2vàmean_volumebằng500. - Trực quan hóa kết quả mô phỏng bằng
displot.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()