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

ベンフォードの法則(数字のいかさま発見法則)と 第46回衆議院議員総選挙

$
0
0

以前、「ベンフォードの法則 - 株価の値段や、不正経理、不正選挙の発見法則」なんて記事を書きましたが

 

memomemokun.hatenablog.com

 

 

選挙の得票数の頭1桁目の数字は、理論的に下のような分布になるのですが

f:id:memomemokun:20150923230141p:plain

 

 

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

 

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

 

市町村数が72で母数が少ないので、なんとも言えないのですが、2桁目についても理論値が在るのですが、2桁目を見ても微妙に....とはなんとも言えませんがwww

 

ちなみにホームページやブログのアクセス数の数字の分布もこの法則に従うはずかな?

 

O...観測値

E...理論値

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

 

注意)

 

以下の(O-E)^2/Eと(O-E)^2/Eの合計は無視してください。

サイコロのゆがみを表す、カイ2乗検定ポイ値を出そうと思たのですが、率で計算しても仕方ないですね。後で、直します。

 

 

上記注意の訂正版です↓こちらをご覧下さい。

memomemokun.hatenablog.com

 

 

 

平成24年12月16日執行

衆議院議員総選挙比例代表

大阪府

 

『市区町村名』

大阪市都島区

大阪市福島区

大阪市此花区

大阪市西区

大阪市港区

大阪市大正区

大阪市天王寺区

大阪市浪速区

大阪市西淀川区

大阪市東淀川区

大阪市東成区

大阪市生野区

大阪市旭区

大阪市城東区

大阪市阿倍野区

大阪市住吉区

大阪市東住吉区

大阪市西成区

大阪市淀川区

大阪市鶴見区

大阪市住之江区

大阪市平野区

大阪市北区

大阪市中央区

堺市堺区

堺市中区

堺市東区

堺市西区

堺市南区

堺市北区

堺市美原区

岸和田市

豊中市

池田市

吹田市

泉大津市

高槻市

貝塚市

守口市

枚方市

茨木市

八尾市

泉佐野

富田林市

寝屋川市

河内長野市

松原市

大東市

和泉市

箕面市

柏原市

羽曳野市

門真市

摂津市

高石市

藤井寺市

東大阪市

泉南市

四條畷市

交野市

大阪狭山市

阪南市

島本町

豊能町

能勢町

忠岡町

熊取町

田尻町

岬町

太子町

河南町

千早赤阪村

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

(近畿選挙区)

自由民主党

項目数 = 72

最上位が「1」で始まる得票数 28件 O=38.9%(E=30.10%), (O-E)=8.79, (O-E)^2=77.19, (O-E)^2/E=2.56

最上位が「2」で始まる得票数 5件 O= 6.9%(E=17.61%), (O-E)=-10.66, (O-E)^2=113.74, (O-E)^2/E=6.46

最上位が「3」で始まる得票数 6件 O= 8.3%(E=12.49%), (O-E)=-4.16, (O-E)^2=17.31, (O-E)^2/E=1.39

最上位が「4」で始まる得票数 3件 O= 4.2%(E=9.69%), (O-E)=-5.52, (O-E)^2=30.52, (O-E)^2/E=3.15

最上位が「5」で始まる得票数 4件 O= 5.6%(E=7.92%), (O-E)=-2.36, (O-E)^2=5.58, (O-E)^2/E=0.70

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

最上位が「7」で始まる得票数 9件 O=12.5%(E=5.80%), (O-E)=6.70, (O-E)^2=44.90, (O-E)^2/E=7.74

最上位が「8」で始まる得票数 4件 O= 5.6%(E=5.12%), (O-E)=0.44, (O-E)^2=0.19, (O-E)^2/E=0.04

最上位が「9」で始まる得票数 8件 O=11.1%(E=4.58%), (O-E)=6.54, (O-E)^2=42.71, (O-E)^2/E=9.33

(O-E)^2/Eの合計 =  31.39

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

公明党

項目数 = 72

最上位が「1」で始まる得票数 22件 O=30.6%(E=30.10%), (O-E)=0.45, (O-E)^2=0.20, (O-E)^2/E=0.01

最上位が「2」で始まる得票数 8件 O=11.1%(E=17.61%), (O-E)=-6.50, (O-E)^2=42.22, (O-E)^2/E=2.40

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

最上位が「4」で始まる得票数 5件 O= 6.9%(E=9.69%), (O-E)=-2.75, (O-E)^2=7.54, (O-E)^2/E=0.78

最上位が「5」で始まる得票数 8件 O=11.1%(E=7.92%), (O-E)=3.19, (O-E)^2=10.20, (O-E)^2/E=1.29

最上位が「6」で始まる得票数 7件 O= 9.7%(E=6.69%), (O-E)=3.03, (O-E)^2=9.17, (O-E)^2/E=1.37

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

最上位が「8」で始まる得票数 3件 O= 4.2%(E=5.12%), (O-E)=-0.95, (O-E)^2=0.90, (O-E)^2/E=0.18

最上位が「9」で始まる得票数 6件 O= 8.3%(E=4.58%), (O-E)=3.76, (O-E)^2=14.12, (O-E)^2/E=3.09

(O-E)^2/Eの合計 =  9.11

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

日本維新の会

項目数 = 72

最上位が「1」で始まる得票数 36件 O=50.0%(E=30.10%), (O-E)=19.90, (O-E)^2=395.89, (O-E)^2/E=13.15

最上位が「2」で始まる得票数 18件 O=25.0%(E=17.61%), (O-E)=7.39, (O-E)^2=54.63, (O-E)^2/E=3.10

最上位が「3」で始まる得票数 5件 O= 6.9%(E=12.49%), (O-E)=-5.55, (O-E)^2=30.80, (O-E)^2/E=2.46

最上位が「4」で始まる得票数 3件 O= 4.2%(E=9.69%), (O-E)=-5.52, (O-E)^2=30.52, (O-E)^2/E=3.15

最上位が「5」で始まる得票数 2件 O= 2.8%(E=7.92%), (O-E)=-5.14, (O-E)^2=26.42, (O-E)^2/E=3.34

最上位が「6」で始まる得票数 4件 O= 5.6%(E=6.69%), (O-E)=-1.14, (O-E)^2=1.30, (O-E)^2/E=0.19

最上位が「7」で始まる得票数 3件 O= 4.2%(E=5.80%), (O-E)=-1.63, (O-E)^2=2.67, (O-E)^2/E=0.46

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

最上位が「9」で始まる得票数 1件 O= 1.4%(E=4.58%), (O-E)=-3.19, (O-E)^2=10.16, (O-E)^2/E=2.22

(O-E)^2/Eの合計 =  33.19

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

民主党

項目数 = 72

最上位が「1」で始まる得票数 7件 O= 9.7%(E=30.10%), (O-E)=-20.38, (O-E)^2=415.38, (O-E)^2/E=13.80

最上位が「2」で始まる得票数 22件 O=30.6%(E=17.61%), (O-E)=12.95, (O-E)^2=167.61, (O-E)^2/E=9.52

最上位が「3」で始まる得票数 11件 O=15.3%(E=12.49%), (O-E)=2.78, (O-E)^2=7.75, (O-E)^2/E=0.62

最上位が「4」で始まる得票数 13件 O=18.1%(E=9.69%), (O-E)=8.36, (O-E)^2=69.97, (O-E)^2/E=7.22

最上位が「5」で始まる得票数 9件 O=12.5%(E=7.92%), (O-E)=4.58, (O-E)^2=20.99, (O-E)^2/E=2.65

最上位が「6」で始まる得票数 7件 O= 9.7%(E=6.69%), (O-E)=3.03, (O-E)^2=9.17, (O-E)^2/E=1.37

最上位が「7」で始まる得票数 2件 O= 2.8%(E=5.80%), (O-E)=-3.02, (O-E)^2=9.13, (O-E)^2/E=1.57

最上位が「8」で始まる得票数 1件 O= 1.4%(E=5.12%), (O-E)=-3.73, (O-E)^2=13.89, (O-E)^2/E=2.71

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

(O-E)^2/Eの合計 =  44.04

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

みんなの党

項目数 = 72

最上位が「1」で始まる得票数 21件 O=29.2%(E=30.10%), (O-E)=-0.94, (O-E)^2=0.88, (O-E)^2/E=0.03

最上位が「2」で始まる得票数 21件 O=29.2%(E=17.61%), (O-E)=11.56, (O-E)^2=133.58, (O-E)^2/E=7.59

最上位が「3」で始まる得票数 14件 O=19.4%(E=12.49%), (O-E)=6.95, (O-E)^2=48.31, (O-E)^2/E=3.87

最上位が「4」で始まる得票数 10件 O=13.9%(E=9.69%), (O-E)=4.20, (O-E)^2=17.62, (O-E)^2/E=1.82

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

最上位が「6」で始まる得票数 1件 O= 1.4%(E=6.69%), (O-E)=-5.31, (O-E)^2=28.15, (O-E)^2/E=4.21

最上位が「7」で始まる得票数 1件 O= 1.4%(E=5.80%), (O-E)=-4.41, (O-E)^2=19.45, (O-E)^2/E=3.35

最上位が「8」で始まる得票数 2件 O= 2.8%(E=5.12%), (O-E)=-2.34, (O-E)^2=5.46, (O-E)^2/E=1.07

最上位が「9」で始まる得票数 2件 O= 2.8%(E=4.58%), (O-E)=-1.80, (O-E)^2=3.23, (O-E)^2/E=0.71

(O-E)^2/Eの合計 =  30.55

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

日本共産党

項目数 = 72

最上位が「1」で始まる得票数 15件 O=20.8%(E=30.10%), (O-E)=-9.27, (O-E)^2=85.93, (O-E)^2/E=2.85

最上位が「2」で始まる得票数 12件 O=16.7%(E=17.61%), (O-E)=-0.94, (O-E)^2=0.89, (O-E)^2/E=0.05

最上位が「3」で始まる得票数 13件 O=18.1%(E=12.49%), (O-E)=5.56, (O-E)^2=30.93, (O-E)^2/E=2.48

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

最上位が「5」で始まる得票数 7件 O= 9.7%(E=7.92%), (O-E)=1.80, (O-E)^2=3.25, (O-E)^2/E=0.41

最上位が「6」で始まる得票数 6件 O= 8.3%(E=6.69%), (O-E)=1.64, (O-E)^2=2.69, (O-E)^2/E=0.40

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

最上位が「8」で始まる得票数 2件 O= 2.8%(E=5.12%), (O-E)=-2.34, (O-E)^2=5.46, (O-E)^2/E=1.07

最上位が「9」で始まる得票数 1件 O= 1.4%(E=4.58%), (O-E)=-3.19, (O-E)^2=10.16, (O-E)^2/E=2.22

(O-E)^2/Eの合計 =  14.51

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

幸福実現党

項目数 = 72

最上位が「1」で始まる得票数 36件 O=50.0%(E=30.10%), (O-E)=19.90, (O-E)^2=395.89, (O-E)^2/E=13.15

最上位が「2」で始まる得票数 11件 O=15.3%(E=17.61%), (O-E)=-2.33, (O-E)^2=5.44, (O-E)^2/E=0.31

最上位が「3」で始まる得票数 5件 O= 6.9%(E=12.49%), (O-E)=-5.55, (O-E)^2=30.80, (O-E)^2/E=2.46

最上位が「4」で始まる得票数 3件 O= 4.2%(E=9.69%), (O-E)=-5.52, (O-E)^2=30.52, (O-E)^2/E=3.15

最上位が「5」で始まる得票数 3件 O= 4.2%(E=7.92%), (O-E)=-3.75, (O-E)^2=14.07, (O-E)^2/E=1.78

最上位が「6」で始まる得票数 4件 O= 5.6%(E=6.69%), (O-E)=-1.14, (O-E)^2=1.30, (O-E)^2/E=0.19

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

最上位が「8」で始まる得票数 1件 O= 1.4%(E=5.12%), (O-E)=-3.73, (O-E)^2=13.89, (O-E)^2/E=2.71

最上位が「9」で始まる得票数 5件 O= 6.9%(E=4.58%), (O-E)=2.37, (O-E)^2=5.61, (O-E)^2/E=1.23

(O-E)^2/Eの合計 =  25.00

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

社会民主党

項目数 = 72

最上位が「1」で始まる得票数 9件 O=12.5%(E=30.10%), (O-E)=-17.60, (O-E)^2=309.87, (O-E)^2/E=10.29

最上位が「2」で始まる得票数 9件 O=12.5%(E=17.61%), (O-E)=-5.11, (O-E)^2=26.10, (O-E)^2/E=1.48

最上位が「3」で始まる得票数 14件 O=19.4%(E=12.49%), (O-E)=6.95, (O-E)^2=48.31, (O-E)^2/E=3.87

最上位が「4」で始まる得票数 9件 O=12.5%(E=9.69%), (O-E)=2.81, (O-E)^2=7.89, (O-E)^2/E=0.81

最上位が「5」で始まる得票数 9件 O=12.5%(E=7.92%), (O-E)=4.58, (O-E)^2=20.99, (O-E)^2/E=2.65

最上位が「6」で始まる得票数 7件 O= 9.7%(E=6.69%), (O-E)=3.03, (O-E)^2=9.17, (O-E)^2/E=1.37

最上位が「7」で始まる得票数 6件 O= 8.3%(E=5.80%), (O-E)=2.53, (O-E)^2=6.42, (O-E)^2/E=1.11

最上位が「8」で始まる得票数 5件 O= 6.9%(E=5.12%), (O-E)=1.83, (O-E)^2=3.35, (O-E)^2/E=0.65

最上位が「9」で始まる得票数 4件 O= 5.6%(E=4.58%), (O-E)=0.98, (O-E)^2=0.96, (O-E)^2/E=0.21

(O-E)^2/Eの合計 =  22.45

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

日本未来の党

項目数 = 72

最上位が「1」で始まる得票数 21件 O=29.2%(E=30.10%), (O-E)=-0.94, (O-E)^2=0.88, (O-E)^2/E=0.03

最上位が「2」で始まる得票数 23件 O=31.9%(E=17.61%), (O-E)=14.34, (O-E)^2=205.50, (O-E)^2/E=11.67

最上位が「3」で始まる得票数 12件 O=16.7%(E=12.49%), (O-E)=4.17, (O-E)^2=17.41, (O-E)^2/E=1.39

最上位が「4」で始まる得票数 2件 O= 2.8%(E=9.69%), (O-E)=-6.91, (O-E)^2=47.79, (O-E)^2/E=4.93

最上位が「5」で始まる得票数 1件 O= 1.4%(E=7.92%), (O-E)=-6.53, (O-E)^2=42.63, (O-E)^2/E=5.38

最上位が「6」で始まる得票数 2件 O= 2.8%(E=6.69%), (O-E)=-3.92, (O-E)^2=15.34, (O-E)^2/E=2.29

最上位が「7」で始まる得票数 3件 O= 4.2%(E=5.80%), (O-E)=-1.63, (O-E)^2=2.67, (O-E)^2/E=0.46

最上位が「8」で始まる得票数 6件 O= 8.3%(E=5.12%), (O-E)=3.22, (O-E)^2=10.36, (O-E)^2/E=2.02

最上位が「9」で始まる得票数 2件 O= 2.8%(E=4.58%), (O-E)=-1.80, (O-E)^2=3.23, (O-E)^2/E=0.71

(O-E)^2/Eの合計 =  28.89

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

----------zentai--------------

項目数 = 648

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

最上位が「2」で始まる得票数 129件 O=19.9%(E=17.61%), (O-E)=2.30, (O-E)^2=5.28, (O-E)^2/E=0.30

最上位が「3」で始まる得票数 89件 O=13.7%(E=12.49%), (O-E)=1.24, (O-E)^2=1.54, (O-E)^2/E=0.12

最上位が「4」で始まる得票数 60件 O= 9.3%(E=9.69%), (O-E)=-0.43, (O-E)^2=0.19, (O-E)^2/E=0.02

最上位が「5」で始まる得票数 43件 O= 6.6%(E=7.92%), (O-E)=-1.28, (O-E)^2=1.64, (O-E)^2/E=0.21

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

最上位が「7」で始まる得票数 36件 O= 5.6%(E=5.80%), (O-E)=-0.24, (O-E)^2=0.06, (O-E)^2/E=0.01

最上位が「8」で始まる得票数 24件 O= 3.7%(E=5.12%), (O-E)=-1.41, (O-E)^2=1.99, (O-E)^2/E=0.39

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

(O-E)^2/Eの合計 =  1.05

 

 

 

↓やっつけで作ったので汚いソースですが、以下のソースを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 * 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 if sum(d) > 0: print '項目数 =', sum(d) for i in range(1 , 10): O = 100. * d[i] / sum(d) E = log10((i + 1.)/i)*100 K = (O-E)**2/E Z += K print '最上位が「%d」で始まる得票数 %d件' % (i, d[i]), 'O=%4.1f%%(E=%4.2f%%), (O-E)=%4.2f, (O-E)^2=%4.2f, (O-E)^2/E=%4.2f' % (O, E, O-E, (O-E)**2, K) print '(O-E)^2/Eの合計 = %4.2f' % Z print "----------zentai--------------" print '項目数 =', sum(d0) Z=0 for i in range(1 , 10): O = 100. * d0[i] / sum(d0) E = log10((i + 1.)/i)*100 K = (O-E)**2/E Z += K print '最上位が「%d」で始まる得票数 %d件' % (i, d0[i]), 'O=%4.1f%%(E=%4.2f%%), (O-E)=%4.2f, (O-E)^2=%4.2f, (O-E)^2/E=%4.2f' % (O, E, O-E, (O-E)**2, K) print '(O-E)^2/Eの合計 = %4.2f' % Z 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