始める無料で始める

国政選挙

この演習では、複雑さの異なるレベルでDGP(データ生成過程)をどのようにモデル化できるかを体験します。

2つの政党(Red と Blue)がある国の国政選挙を考えます。この国には50の州があり、より多くの州で勝利した政党が選挙に勝ちます。各州でRedが勝つ確率 \(p\) がわかっており、Redが全国で勝つ確率を知りたいとします。

分布を理解するためにDGPをモデル化してみましょう。各州の選挙結果は確率 \(p\) の二項分布に従い、\(0\) はRedの敗北、\(1\) は勝利を示すとします。そこで、複数回の選挙結果をシミュレーションします。最後に、Redが州の45%未満しか勝てない確率はどれくらいか? のようなリッチな問いを立てることができます。

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

Pythonで学ぶ統計シミュレーション

コースを見る

演習の手順

  • p = probsn=1 として np.random.binomial() を使い、選挙を1回シミュレーションして election に代入します。
  • election におけるRedの勝利の平均を計算し、outcomes に追加します。
  • Redが州の45%未満で勝ったケースの割合を outcomes から計算します。prob_red_wins として保存し、その値を使って結果を出力してください。

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

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

outcomes, sims, probs = [], 1000, p

for _ in range(sims):
    # Simulate elections in the 50 states
    election = ____
    # Get average of Red wins and add to `outcomes`
    outcomes.append(____)

# Calculate probability of Red winning in less than 45% of the states
prob_red_wins = ____
print("Probability of Red winning in less than 45% of the states = {}".format(____))
コードを編集して実行