国政選挙
この演習では、複雑さの異なるレベルでDGP(データ生成過程)をどのようにモデル化できるかを体験します。
2つの政党(Red と Blue)がある国の国政選挙を考えます。この国には50の州があり、より多くの州で勝利した政党が選挙に勝ちます。各州でRedが勝つ確率 \(p\) がわかっており、Redが全国で勝つ確率を知りたいとします。
分布を理解するためにDGPをモデル化してみましょう。各州の選挙結果は確率 \(p\) の二項分布に従い、\(0\) はRedの敗北、\(1\) は勝利を示すとします。そこで、複数回の選挙結果をシミュレーションします。最後に、Redが州の45%未満しか勝てない確率はどれくらいか? のようなリッチな問いを立てることができます。
この演習はコースの一部です
Pythonで学ぶ統計シミュレーション
演習の手順
p = probs、n=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(____))