1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶモンテカルロ・シミュレーション

Connected

演習

利益問題のシミュレーション

あなたは産業用機器を製造する会社で働いています。各機器の販売価格は $100,000 です。inflation_rate と販売 volume の間には強い負の相関があることも分かっています。この関係は、共分散行列 cov_matrix によって表されており、コンソールで利用できます。

関数 profit_next_year_mc() は、平均インフレ率と平均販売数量を引数に取り、モンテカルロシミュレーションを実行して期待利益(千ドル単位)を返します。シミュレーションを実行する回数を示す n も渡す必要があります。関数はすでに読み込まれており、定義は以下のとおりです。

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

次のパッケージはすでにインポート済みです:pandas は pd、numpy は np、scipy.stats は st、matplotlib.pyplot は plt、seaborn は sns。

指示

100 XP
  • mean_inflation を 2、mean_volume を 500 にして、profit_next_year_mc() を 500 回実行し、モンテカルロシミュレーションを行ってください。
  • displot を使ってシミュレーション結果を可視化してください。