mots quotidiens. | |
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp | by hns, version 2.10-pl1. |
|
|||||||||||||||||||||||||||||||||||||||||||||||
選挙の結果はともかく, 終了後に
NHKの開票速報
を見て気付いたことは, リンク先のページで一番下の「開票所」をクリックした時に現れる, 区ごとの投票結果がかなり異なるということでした。
たとえば, 私の投票した港区では海老澤由紀氏が2位で11.3%の得票率があるのに対し,
新宿区では5位で9.2%にすぎません。一方で港区では山添拓氏は6位で8.2%なのに対し,
新宿区では2位で, 11.8%もの得票率があります。
中野区では, 共産党の山添拓氏が自民党の朝日健太郎氏を抜いて1位になっています。
一番わかりやすいのは, 公明党の竹谷とし子氏が大田区, 北区, 板橋区, 荒川区, 八王子市などでは1位になっているということでしょう。
区だけでなく市部や離島にも大きな違いがあり, 神津島や三宅島では生稲晃子氏が圧倒的な得票で1位, 小笠原村では山本太郎氏が1位になっています。
これは, ある程度は所得や基盤地域(創価学会が多摩地域に大きな基盤を持っているなど)で説明できますが, 2位以降も含めると, 市区の間にはかなり似ているもの,
あるいは違うものがあり, 選挙結果から統計的に地域の特徴が見えてきそうです。
そこで, 上のページから各市町村の選挙結果をテキストにコピペし,
Pythonでパーズしてデータを作り, 統計的に分析してみました。
*1
上のベクトルのままでも地域の特徴は表せますが, word2vec と同様に, これを 次元圧縮することで, 情報をよりコンパクトに凝縮したベクトルを得ることができます。具体的には, PMI(a,c) を縦横に並べた行列を X とおくと,
X = USVT = (U√S)(V√S)T
とXを特異値分解します。このとき, U√SおよびV√Sの各列が, 地域および候補者を表すベクトルになります。この内積が大きければ, 元のデータでPMIの値が大きい, つまりその地域とその候補者の相関が大きいことを意味しているわけです。この可視化は, あくまで最初の2個の固有ベクトルを用いたもので, 3個目以降にはもっと有益な情報が隠れている可能性があります。3個の固有ベクトルを用いれば, ベクトルを3次元にプロットすることができます。 これを行ったものが下の図です。
こうして特異値分解(=主成分分析)を使わず, 単に市区ベクトルを t-SNE で2次元に可視化することも可能ですが, その場合は結果は次のようになります。 この場合は非線形な可視化になるため, ベクトルの要素を全部使える一方で, 軸に上下左右の意味はなくなってしまいます。似た市区町村は確かに近い位置に配置されているものの, 本当に文京区と利島村が近いのかには, 疑問の余地がありそうです。なお, 上の分析は, すべての候補者34人の情報を等価に用いると, 泡沫候補の一致が不必要に高く評価されてしまうため, 得票数上位15人のデータを用いています( (PMI(a,c1),…,PMI(a,c15) )を実際の特徴ベクトルにしています)。この値を変えると結果が変わるため, PMI(a,c)をその候補者の得票確率p(c)で重みづけることが考えられますが, そうするとword2vecとの対応関係がなくなるため, 単語ベクトルに関して知られている様々な理論的な性質が保証されるかどうかについては, 検証が必要になりそうです。
なお, 分析に用いたデータおよびPythonスクリプトは, すべてGithubのレポジトリ https://github.com/daiti-m/tokyo2022 にて公開しています。
タイトル一覧 | |