始める無料で始める

大数の法則

前の演習で、モンテカルロ・シミュレーションは確率的な性質をもつため、各シミュレーション結果が大きく異なりうることを学びました。この演習では、大数の法則を活用して、多数回のシミュレーションの平均に基づき、2050年のインフレ率を推定します。

前の演習で作成した monte_carlo_inflation() 関数が利用できます。念のため、関数のコードを示します。

def monte_carlo_inflation(year, seed):
    random.seed(seed)
    inflation_rate = 8.6
    yearly_increase = random.randint(1, 3)
    for i in range(year - 2022):
        inflation_rate = inflation_rate * ((100 + yearly_increase)/100)
    return(inflation_rate)

numpyrandom パッケージはすでにインポート済みです。

この演習はコースの一部です

Pythonで学ぶモンテカルロ・シミュレーション

コースを見る

演習の手順

  • 毎回 0 から 20,000 の間でランダムに選んだシードを用い、1,000 回のシミュレーションの平均を計算します。
  • 毎回 0 から 20,000 の間でランダムに選んだシードを用い、10,000 回のシミュレーションの平均を計算します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Calculate the average of 1,000 simulation results with a seed between 0 and 20000
rates_1 = []
for i in range(____):
    seed = random.randint(____, ____)
    rates_1.append(monte_carlo_inflation(2050, ____))
print(np.mean(rates_1))

# Calculate the average of 10,000 simulation results with a seed between 0 and 20000
rates_2 = []
for i in range(____):
    seed = random.randint(____, ____)
    rates_2.append(monte_carlo_inflation(2050, ____))
print(np.mean(rates_2))
コードを編集して実行