以前取り上げました、数字の不正発見法則である「ベンフォードの法則」の記事の延長で
ベンフォードの法則から見ると衆議院議員総選挙の結果って、どうなんだろうと、計算してみました
さらに、↓こんな結果も。
株式市場に上場されている株価の値段や、電気料金の請求書、住所の番地、人口の数値、死亡率、川の長さ、物理・数学定数などの最上位の桁の数字(8397661という数字なら、一番上の桁の数字の「8」のこと)は、直感に反して、下の図のような分布にななっていまして
総選挙の市町村毎の得票数の分布も、そんな感じになるはずと言う事で、
で公表されている第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)