Quantcast
Channel: 気になるメモ メモφ(.. )
Viewing all articles
Browse latest Browse all 177

ベンフォードの法則からみる衆議院議員総選挙のカイ2乗検定の有意水準

$
0
0

以前取り上げました、数字の不正発見法則である「ベンフォードの法則」の記事の延長で

 

memomemokun.hatenablog.com

 

ベンフォードの法則から見ると衆議院議員総選挙の結果って、どうなんだろうと、計算してみました

 

さらに、↓こんな結果も。

 

memomemokun.hatenablog.com

 

 

株式市場に上場されている株価の値段や、電気料金の請求書、住所の番地、人口の数値、死亡率、川の長さ、物理・数学定数などの最上位の桁の数字(8397661という数字なら、一番上の桁の数字の「8」のこと)は、直感に反して、下の図のような分布にななっていまして

f:id:memomemokun:20150929202353p:plain

総選挙の市町村毎の得票数の分布も、そんな感じになるはずと言う事で、

 

総務省|衆議院議員総選挙・最高裁判所裁判官国民審査結果

 

で公表されている第46回衆議院議員総選挙大阪府の比例選挙区のデータを例に、興味本位で、各政党の各市町村での得票数の数字から、カイ2乗値、有意確率とか、どんな感じか出してみました。

 

大阪府を例にしたのは、特に他意はありません)

 

以下、

O...観測値

E...期待値

 

(O-E)^2/E...カイ2乗値

 

なお、数学は素人なものですから『全体の数字は良くあってそうなんですけどね』としかコメントはしません。

 

一言付け添えれば、ある市町村のある政党の得票数を別の政党の得票数と入れ替えても、全体の数字としてはベンフォードの法則は成り立つんですよね。その政党の得票分布は変になりますが。

 

また、数学素人につき、間違いありましたらご指摘ください。

 

平成24年12月16日執行

衆議院議員総選挙比例代表) 名簿届出政党別市区町村別得票数

大阪府

『市区町村名』

大阪市都島区

大阪市福島区

大阪市此花区

大阪市西区

大阪市港区

大阪市大正区

大阪市天王寺区

大阪市浪速区

大阪市西淀川区

大阪市東淀川区

大阪市東成区

大阪市生野区

大阪市旭区

大阪市城東区

大阪市阿倍野区

大阪市住吉区

大阪市東住吉区

大阪市西成区

大阪市淀川区

大阪市鶴見区

大阪市住之江区

大阪市平野区

大阪市北区

大阪市中央区

堺市堺区

堺市中区

堺市東区

堺市西区

堺市南区

堺市北区

堺市美原区

岸和田市

豊中市

池田市

吹田市

泉大津市

高槻市

貝塚市

守口市

枚方市

茨木市

八尾市

泉佐野

富田林市

寝屋川市

河内長野市

松原市

大東市

和泉市

箕面市

柏原市

羽曳野市

門真市

摂津市

高石市

藤井寺市

東大阪市

泉南市

四條畷市

交野市

大阪狭山市

阪南市

島本町

豊能町

能勢町

忠岡町

熊取町

田尻町

岬町

太子町

河南町

千早赤阪村

----------------------------

(近畿選挙区)

自由民主党

選挙区数 = 72

O=最上位が「1」で始まる得票数  28件(38.9%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  1.85

O=最上位が「2」で始まる得票数   5件( 6.9%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  4.65

O=最上位が「3」で始まる得票数   6件( 8.3%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  1.00

O=最上位が「4」で始まる得票数   3件( 4.2%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  2.27

O=最上位が「5」で始まる得票数   4件( 5.6%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  0.51

O=最上位が「6」で始まる得票数   5件( 6.9%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.01

O=最上位が「7」で始まる得票数   9件(12.5%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  5.57

O=最上位が「8」で始まる得票数   4件( 5.6%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  0.03

O=最上位が「9」で始まる得票数   8件(11.1%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  6.72

(O-E)^2/Eの合計 =   22.60   自由度 = 71   有意確率(p-value) = 0.0039199

----------------------------

公明党

選挙区数 = 72

O=最上位が「1」で始まる得票数  22件(30.6%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  0.00

O=最上位が「2」で始まる得票数   8件(11.1%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  1.73

O=最上位が「3」で始まる得票数   9件(12.5%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  0.00

O=最上位が「4」で始まる得票数   5件( 6.9%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  0.56

O=最上位が「5」で始まる得票数   8件(11.1%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  0.93

O=最上位が「6」で始まる得票数   7件( 9.7%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.99

O=最上位が「7」で始まる得票数   4件( 5.6%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.01

O=最上位が「8」で始まる得票数   3件( 4.2%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  0.13

O=最上位が「9」で始まる得票数   6件( 8.3%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  2.22

(O-E)^2/Eの合計 =    6.56   自由度 = 71   有意確率(p-value) = 0.5847172

----------------------------

日本維新の会

選挙区数 = 72

O=最上位が「1」で始まる得票数  36件(50.0%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  9.47

O=最上位が「2」で始まる得票数  18件(25.0%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  2.23

O=最上位が「3」で始まる得票数   5件( 6.9%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  1.77

O=最上位が「4」で始まる得票数   3件( 4.2%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  2.27

O=最上位が「5」で始まる得票数   2件( 2.8%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  2.40

O=最上位が「6」で始まる得票数   4件( 5.6%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.14

O=最上位が「7」で始まる得票数   3件( 4.2%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.33

O=最上位が「8」で始まる得票数   0件( 0.0%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  3.68

O=最上位が「9」で始まる得票数   1件( 1.4%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  1.60

(O-E)^2/Eの合計 =   23.90   自由度 = 71   有意確率(p-value) = 0.0023832

----------------------------

民主党

選挙区数 = 72

O=最上位が「1」で始まる得票数   7件( 9.7%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  9.93

O=最上位が「2」で始まる得票数  22件(30.6%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  6.85

O=最上位が「3」で始まる得票数  11件(15.3%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  0.45

O=最上位が「4」で始まる得票数  13件(18.1%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  5.20

O=最上位が「5」で始まる得票数   9件(12.5%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  1.91

O=最上位が「6」で始まる得票数   7件( 9.7%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.99

O=最上位が「7」で始まる得票数   2件( 2.8%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  1.13

O=最上位が「8」で始まる得票数   1件( 1.4%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  1.95

O=最上位が「9」で始まる得票数   0件( 0.0%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  3.29

(O-E)^2/Eの合計 =   31.71   自由度 = 71   有意確率(p-value) = 0.0001050

----------------------------

みんなの党

選挙区数 = 72

O=最上位が「1」で始まる得票数  21件(29.2%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  0.02

O=最上位が「2」で始まる得票数  21件(29.2%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  5.46

O=最上位が「3」で始まる得票数  14件(19.4%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  2.78

O=最上位が「4」で始まる得票数  10件(13.9%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  1.31

O=最上位が「5」で始まる得票数   0件( 0.0%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  5.70

O=最上位が「6」で始まる得票数   1件( 1.4%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  3.03

O=最上位が「7」で始まる得票数   1件( 1.4%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  2.41

O=最上位が「8」で始まる得票数   2件( 2.8%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  0.77

O=最上位が「9」で始まる得票数   2件( 2.8%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  0.51

(O-E)^2/Eの合計 =   22.00   自由度 = 71   有意確率(p-value) = 0.0049209

----------------------------

日本共産党

選挙区数 = 72

O=最上位が「1」で始まる得票数  15件(20.8%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  2.06

O=最上位が「2」で始まる得票数  12件(16.7%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  0.04

O=最上位が「3」で始まる得票数  13件(18.1%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  1.78

O=最上位が「4」で始まる得票数  12件(16.7%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  3.62

O=最上位が「5」で始まる得票数   7件( 9.7%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  0.30

O=最上位が「6」で始まる得票数   6件( 8.3%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.29

O=最上位が「7」で始まる得票数   4件( 5.6%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.01

O=最上位が「8」で始まる得票数   2件( 2.8%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  0.77

O=最上位が「9」で始まる得票数   1件( 1.4%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  1.60

(O-E)^2/Eの合計 =   10.45   自由度 = 71   有意確率(p-value) = 0.2349436

----------------------------

幸福実現党

選挙区数 = 72

O=最上位が「1」で始まる得票数  36件(50.0%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  9.47

O=最上位が「2」で始まる得票数  11件(15.3%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  0.22

O=最上位が「3」で始まる得票数   5件( 6.9%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  1.77

O=最上位が「4」で始まる得票数   3件( 4.2%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  2.27

O=最上位が「5」で始まる得票数   3件( 4.2%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  1.28

O=最上位が「6」で始まる得票数   4件( 5.6%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.14

O=最上位が「7」で始まる得票数   4件( 5.6%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.01

O=最上位が「8」で始まる得票数   1件( 1.4%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  1.95

O=最上位が「9」で始まる得票数   5件( 6.9%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  0.88

(O-E)^2/Eの合計 =   18.00   自由度 = 71   有意確率(p-value) = 0.0212476

----------------------------

社会民主党

選挙区数 = 72

O=最上位が「1」で始まる得票数   9件(12.5%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  7.41

O=最上位が「2」で始まる得票数   9件(12.5%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  1.07

O=最上位が「3」で始まる得票数  14件(19.4%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  2.78

O=最上位が「4」で始まる得票数   9件(12.5%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  0.59

O=最上位が「5」で始まる得票数   9件(12.5%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  1.91

O=最上位が「6」で始まる得票数   7件( 9.7%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  0.99

O=最上位が「7」で始まる得票数   6件( 8.3%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.80

O=最上位が「8」で始まる得票数   5件( 6.9%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  0.47

O=最上位が「9」で始まる得票数   4件( 5.6%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  0.15

(O-E)^2/Eの合計 =   16.16   自由度 = 71   有意確率(p-value) = 0.0401059

----------------------------

日本未来の党

選挙区数 = 72

O=最上位が「1」で始まる得票数  21件(29.2%) (理論値=30.10%, E= 21.67), (O-E)^2/E=  0.02

O=最上位が「2」で始まる得票数  23件(31.9%) (理論値=17.61%, E= 12.68), (O-E)^2/E=  8.40

O=最上位が「3」で始まる得票数  12件(16.7%) (理論値=12.49%, E=  9.00), (O-E)^2/E=  1.00

O=最上位が「4」で始まる得票数   2件( 2.8%) (理論値= 9.69%, E=  6.98), (O-E)^2/E=  3.55

O=最上位が「5」で始まる得票数   1件( 1.4%) (理論値= 7.92%, E=  5.70), (O-E)^2/E=  3.88

O=最上位が「6」で始まる得票数   2件( 2.8%) (理論値= 6.69%, E=  4.82), (O-E)^2/E=  1.65

O=最上位が「7」で始まる得票数   3件( 4.2%) (理論値= 5.80%, E=  4.18), (O-E)^2/E=  0.33

O=最上位が「8」で始まる得票数   6件( 8.3%) (理論値= 5.12%, E=  3.68), (O-E)^2/E=  1.46

O=最上位が「9」で始まる得票数   2件( 2.8%) (理論値= 4.58%, E=  3.29), (O-E)^2/E=  0.51

(O-E)^2/Eの合計 =   20.80   自由度 = 71   有意確率(p-value) = 0.0076941

----------全体--------------

選挙区数 = 648

O=最上位が「1」で始まる得票数 195件(30.1%) (理論値=30.10%, E=195.07), (O-E)^2/E=  0.00

O=最上位が「2」で始まる得票数 129件(19.9%) (理論値=17.61%, E=114.11), (O-E)^2/E=  1.94

O=最上位が「3」で始まる得票数  89件(13.7%) (理論値=12.49%, E= 80.96), (O-E)^2/E=  0.80

O=最上位が「4」で始まる得票数  60件( 9.3%) (理論値= 9.69%, E= 62.80), (O-E)^2/E=  0.12

O=最上位が「5」で始まる得票数  43件( 6.6%) (理論値= 7.92%, E= 51.31), (O-E)^2/E=  1.35

O=最上位が「6」で始まる得票数  43件( 6.6%) (理論値= 6.69%, E= 43.38), (O-E)^2/E=  0.00

O=最上位が「7」で始まる得票数  36件( 5.6%) (理論値= 5.80%, E= 37.58), (O-E)^2/E=  0.07

O=最上位が「8」で始まる得票数  24件( 3.7%) (理論値= 5.12%, E= 33.15), (O-E)^2/E=  2.52

O=最上位が「9」で始まる得票数  29件( 4.5%) (理論値= 4.58%, E= 29.65), (O-E)^2/E=  0.01

(O-E)^2/Eの合計 =    6.82   自由度 = 647   有意確率(p-value) = 0.5561144

 

 

 

ちなみに↓こちらが

 

市町村数が188もあるので、

政党毎の結果も

理論値に近くなる事が予想される

北海道選挙区。

 

一部、有意水準が低すぎだったりするのでしょうか?

数学が得意の方がいらっしゃいましたら、教えてください。

 

 

 

社会民主党

選挙区数 = 188

(O-E)^2/Eの合計 =    8.33   自由度 = 187   有意確率(p-value) = 0.4019749

----------------------------

民主党

選挙区数 = 188

(O-E)^2/Eの合計 =    8.84   自由度 = 187   有意確率(p-value) = 0.3563906

----------------------------

自由民主党

選挙区数 = 188

(O-E)^2/Eの合計 =   24.58   自由度 = 187   有意確率(p-value) = 0.0018312

----------------------------

日本共産党

選挙区数 = 188

(O-E)^2/Eの合計 =   10.33   自由度 = 187   有意確率(p-value) = 0.2424214

----------------------------

日本維新の会

選挙区数 = 188

(O-E)^2/Eの合計 =   19.32   自由度 = 187   有意確率(p-value) = 0.0132588

----------------------------

公明党

選挙区数 = 188

(O-E)^2/Eの合計 =   14.91   自由度 = 187   有意確率(p-value) = 0.0608882

----------------------------

みんなの党

選挙区数 = 188

(O-E)^2/Eの合計 =   14.18   自由度 = 187   有意確率(p-value) = 0.0772706

----------------------------

幸福実現党

選挙区数 = 188

(O-E)^2/Eの合計 =    7.91   自由度 = 187   有意確率(p-value) = 0.4426373

----------------------------

新党大地

選挙区数 = 188

(O-E)^2/Eの合計 =    6.55   自由度 = 187   有意確率(p-value) = 0.5853423

----------------------------

日本未来の党

選挙区数 = 188

(O-E)^2/Eの合計 =   10.16   自由度 = 187   有意確率(p-value) = 0.2541132

----------全体--------------

選挙区数 = 1880

O=最上位が「1」で始まる得票数 594件(31.6%) (理論値=30.10%, E=565.94), (O-E)^2/E=  1.39

O=最上位が「2」で始まる得票数 340件(18.1%) (理論値=17.61%, E=331.05), (O-E)^2/E=  0.24

O=最上位が「3」で始まる得票数 220件(11.7%) (理論値=12.49%, E=234.88), (O-E)^2/E=  0.94

O=最上位が「4」で始まる得票数 173件( 9.2%) (理論値= 9.69%, E=182.19), (O-E)^2/E=  0.46

O=最上位が「5」で始まる得票数 147件( 7.8%) (理論値= 7.92%, E=148.86), (O-E)^2/E=  0.02

O=最上位が「6」で始まる得票数 129件( 6.9%) (理論値= 6.69%, E=125.86), (O-E)^2/E=  0.08

O=最上位が「7」で始まる得票数 103件( 5.5%) (理論値= 5.80%, E=109.02), (O-E)^2/E=  0.33

O=最上位が「8」で始まる得票数  84件( 4.5%) (理論値= 5.12%, E= 96.17), (O-E)^2/E=  1.54

O=最上位が「9」で始まる得票数  89件( 4.7%) (理論値= 4.58%, E= 86.02), (O-E)^2/E=  0.10

(O-E)^2/Eの合計 =    5.12   自由度 = 1879   有意確率(p-value) = 0.7449804

 

 

上記の結果は、プログラム言語Pythonご利用者でしたら

やっつけで作ったので汚いソースですが

↓以下のソースをsenkyo.pyとかで保存して

 

総務省|第46回衆議院議員総選挙・最高裁判所裁判官国民審査 候補者別 市区町村別得票数

比例代表のエクセルシートのアドレスを↓な感じでパラメータに渡してもらうと確認出来ます。

./senkyo.py http://www.soumu.go.jp/main_content/000205230.xls

 

 


#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import xlrd
import socket
import urllib2
import cookielib
from math import *
from scipy.stats import chisquare

d0 = [0,0,0,0,0,0,0,0,0,0]
 
 
socket.setdefaulttimeout(180)
cookies = cookielib.CookieJar()
cookieProcessor = urllib2.HTTPCookieProcessor(cookies)
opener = urllib2.build_opener(cookieProcessor)
 
 
def senkyo(url):
    web = opener.open(url)
    webdata = web.read()
    web.close()
 
    book = xlrd.open_workbook(file_contents=webdata)
    sheet_1 = book.sheet_by_index(0)
    print 'ncols=', sheet_1.name.encode('utf-8')
    print 'ncols=', sheet_1.ncols
    print 'nrows=', sheet_1.nrows
 
 
    d0 = [0,0,0,0,0,0,0,0,0,0]
 
    for col in range(sheet_1.ncols-1):
        d = [0,0,0,0,0,0,0,0,0,0]
        print "----------------------------"
        for row in range(sheet_1.nrows-1):
            cell=sheet_1.cell(row,col)
            if cell.ctype == xlrd.XL_CELL_TEXT:
                #print 'row=', row, 'col=', col, cell.value.encode('utf-8')
                print cell.value.encode('utf-8')
            elif cell.ctype == xlrd.XL_CELL_NUMBER:
                tmp = str(cell.value)
                if tmp[0].isdigit():
                    #print 'row=', row, 'col=', col, cell.value
                    d0[int(tmp[0])] += 1
                    d[int(tmp[0])] += 1
 
        Z=0
        j = []
        if sum(d) > 0:
            T = sum(d)
            print '選挙区数 =', T
            for i in range(1 , 10):
                O = 100. * d[i] / T
                E = log10((i + 1.)/i)*100
                E0 = E * T / 100.
                j.append(E0)
                K = (d[i]-E0)**2/E0
                Z += K
                print 'O=最上位が「%d」で始まる得票数 %3d件(%4.1f%%)' % (i,  d[i], O), '(理論値=%5.2f%%, E=%6.2f), (O-E)^2/E=%6.2f' % (E, E0, K)
            chi2, p_value = chisquare(d[1:], f_exp=j)
            print '(O-E)^2/Eの合計 =  %6.2f   自由度 = %d   有意確率(p-value) = %9.7f' % (chi2, T-1, p_value)

    print "----------全体--------------"
    T = sum(d0)
    print '選挙区数 =', T
    Z=0
    j = []
    for i in range(1 , 10):
        O = 100. * d0[i] / T
        E = log10((i + 1.)/i)*100
        E0 = E * T / 100.
        j.append(E0)
        K = (d0[i]-E0)**2/E0
        Z += K
        print 'O=最上位が「%d」で始まる得票数 %3d件(%4.1f%%)' % (i,  d0[i], O), '(理論値=%5.2f%%, E=%6.2f), (O-E)^2/E=%6.2f' % (E, E0, K)
    chi2, p_value = chisquare(d0[1:], f_exp=j)
    print '(O-E)^2/Eの合計 =  %6.2f   自由度 = %d   有意確率(p-value) = %9.7f' % (chi2, T-1, p_value)
 
 
if __name__ == '__main__':
    import sys
    if len( sys.argv ) > 1:
        url = sys.argv[1]
 
    senkyo(url)
    

Viewing all articles
Browse latest Browse all 177

Trending Articles