初学者のためのプログラミング学習サイト母比率なぜ開票率1%で当確が出るのか2021年11月06日カテゴリ:統計学Python先日、大きな選挙が有りましたね。当確が出るのでしょう?その仕組みを解説してみました。解説動画はこちらなぜ開票率1%で当確が出るのか?今回は選挙のお話です。各局がどのような仕組みで当確を出しているかは不明ですが少なくとも投票所の出口調査や事前アンケートなどの結果などを用いて統計的なサンプリング調査を元に最終的な判断をしていると思います。当確が分かる仕組み無作為な1%分の投票結果が分かれば票全体の動向が推計できます。これはお味噌汁の味見に似ていますね。掻き回したものをお玉に一掬い程度味見すれば味噌汁全体の味はおおよその検討はつくでしょう。母比率の信頼区間を求める式なんだかややこしいと思いますがR:標本比率(得票率)z:標準化変数(Z-score)n:標本数(サンプル)となっています。信頼係数というモノがあります。これは母集団から標本を取ってその平均からXX%信頼区間を求めるという作業を100回やったときXX回はその区間の中に母平均が含まれるというものです。通常は95%を用いることが多いですが信頼係数におけるzの値は90%で1.6495%で1.9699%で2.58という値になります。ここで問題を考えてみましょう。有効投票数10万票の選挙で開票率1%(1000票)時点のA候補者の得票率は60%でした。このとき信頼係数95%で母比率の信頼区間を計算してみよう。Pythonを使って計算してみました。63.036これによると母比率の信頼区間は最低でも56.9%、最高で63%他に候補者がどれだけいても過半数以上を獲得できる見込みになります。計算式上ではサンプリングした標本数の数で信頼区間の幅は大きく変わります。10万票ほどの選挙区ではおよそ1%1000票もあれば誤差は3%程度で最終結果を導くことができます。標本数を増やせば、区間はグッと縮まります。開票率が上がっていけばどんどん精度は上がりますね。候補者同士の結果に差のない場合は開票率100%に近付かないと結果が出ないこともありますが元々大差がついている選挙区では開票率が低くても当確が出るようですね。ここからは選挙区のシミュレーションをしてみましょう。神奈川11区でシミュレーション元セクシー担当大臣のいる選挙区の結果を用いてシミュレーションしてみましょう。3万8843票となっていました。k+hprint(len(v))print(v.count('K'))print(v.count('H'))18647714763438843これで票のデータを用意できました。ランダムサンプリングして結果を見てみましょう。頑張って100回対決してみましょう。437.000000結果から言えば林氏はどんなに頑張っても437票しかとれず小泉氏が圧勝です。箱髭図にして差し上げました。1%の時点でこれなんでまあ、諦めろって事ですwwwwwww政策や人柄、人気などで相手を上回るしかないでしょうねまあほぼ無理ゲーでしょうけど。まとめ1000票ほどを集めればおおよその結果が予想できてしまう得票率1%の時点で大きく差がついていたら諦めろただしデータに偏りが無いことが大前提!あくまでもこの推定はデータに偏りがない所でサンプリングされたデータを用いての推定です。恣意的に歪められた結果を用いれば作為的に誘導することも出来てしまいます。使う側も見る側も注意が必要なポイントです。今回は選挙にまつわる統計のお話でした。1時間で学べるPythonプログラミング[Pythonプログラミング]馬鹿でかい円周率を求めるアルゴリズム[Pythonプログラミング]モンティ・ホール問題のシミュレーション[Pythonプログラミング]人工衛星がどんだけ時間ズレるかプログラミングの力で求めてみようコーディングに迷った際に役に立ちWEB検索する時間を無くして作業時間を効率化できます。