
身近なデータの分析 参議院議員選挙の結果をQlikViewで分析してみよう
前回までは、QlikViewの基本的な使い方を学んでいただくことを目的にしていましたが、QlikViewの使い方を覚えるには、やはり身近なデータを使って、実際に分析をしてみるのが一番です。
そこで、先日実施された参議院議員選挙の結果を、QlikViewで分析してみましょう。
分析と言っても複雑な数学の知識は必要ありません。普段選挙のときによく聞く、投票者数、投票率などの値を実際に自分で確認してみて、データの特徴を捉えられないか試してみましょう。
改訂 2016年3月7日
東京都選挙管理委員会のWebサイトが改訂され、URLなどが変更になりました。現状このままの手順では操作できませんのでご注意ください。確認したところHTMLのCAPTION要素を処理できていないようです。すぐに試したい方は以下の手順で操作してください。
- 以下のページをローカルに保存する。
http://www.senkyo.metro.tokyo.jp/election/sanngiin-all/sanngiin-sokuhou2013/sangiin-turnout2013-end/ - <thead>タグと<tbody>タグの間にある<caption>タグを削除する。(<caption>~</caption>までをすべて削除します。)
- QlikViewで[相対パス]のチェックを外した上で、[Webページ]ボタンをクリックする。
- [ローカルファイル]から保存したファイルを選択する。
- [文字セット]から「Unicode(UTF-8)」を選択する。
- 変換オプションを有効にして、「計」で終わるものを削除する。(文字化けしていても設定はできます。)
- ファイルウィザード終了後、PurgeChar関数などを使用して、数値の末尾についている「人」と「%」の単位を削除する。
LOAD 開票区, PurgeChar(当日有権者数, '人') as 当日有権者数, PurgeChar(投票者数, '人') as 投票者数, PurgeChar(棄権者数, '人') as 棄権者数, PurgeChar(投票率, '%') as 投票率, PurgeChar(前回投票率, '%') as 前回投票率 FROM [C:\Users\qlik\Desktop\参議院議員選挙(平成25年7月21日執行)(東京都選出)投票結果 _ 東京都選挙管理委員会.htm] (html, utf8, embedded labels, table is @1, filters( Remove(Row, RowCnd(CellValue, 1, StrCnd(end, '計'))) ));
使用するデータの確認
2013年7月21日に実施された参議院議員選挙の、東京選挙区のデータを使用します。ここでは東京都選挙管理委員会がWeb上に公開している、以下のデータを使用します。
使用するデータ

ここでは、ひとまず取り込むデータの確認だけしておいてください。
東京都選挙管理委員会のトップページから以下のようにリンクをたどることでも、今回使用するデータを確認できます。
画面上の「都内選挙日程/データ」→「参議院議員選挙・投開票結果」→「参議院議員選挙(平成25年7月21日執行) 投開票結果」→「投票」「東京都選出」にある「投票結果」のリンク。
データの取り込み
ロードスクリプトの編集画面の起動
それではデータを取り込んでみましょう。まずはファイルを新規に作成し、[ロードスクリプトの編集]画面を起動します。
QlikViewを起動してスタートページを表示します。
[ファイル]→[新規作成]を選択します。

空のドキュメントが表示されます。
ツールバーの[ロードスクリプトの編集]ボタンをクリックします。

Webページからのデータの取り込み
これからデータを取り込みますが、前述のとおり元のデータはHTMLのページでした。QlikViewにはWeb上のデータを簡単に取り込む機能がありますので、今回はその機能を使用してみます。ロードスクリプトで「SET」の下の行をクリックして、最下行にカーソルをあわせます。
この状態で画面右側の[Webページ]ボタンをクリックします。

[ファイルウィザード]画面で[インターネットファイル]に以下のURLを指定します。
http://www.senkyo.metro.tokyo.jp/h25sangisokuho/h25san_stou_2200.html

ご注意
[次へ]ボタンをクリックすると、QlikViewから指定されたURLに接続します。
ここでは東京都選挙管理委員会のサーバーに接続しますので、連続した実行は控えてください。またサーバーへの接続は自己責任でお願いいたします。
サーバーに接続できなかった場合は処理が停止してしまいますので、事前にブラウザなどを起動して、上記URLに正しくアクセスできるか、あらためて確認してください。
準備ができたら[次へ]ボタンをクリックしてください。
HTMLのページに接続し、データを認識できました。
QlikViewはHTMLの表(TABLEタグ)を自動で認識して、表として取り込んでくれます。
1つ目のテーブル「@1」には、投票率のデータが読み込まれています。


言うまでもなく、取り込むのは1つ目のテーブル「@1」ですので、「@1」を選択して[次へ]ボタンをクリックします。

今回は少しデータを加工してみましょう。
[変換オプションを有効にする]ボタンをクリックします。

データをよく見てみると、表の中には合計値も含まれているようです。
ひととおり確認すると分かりますが、末尾が「計」になっているものが合計値です。
これらを削除するために、[条件付き削除]ボタンをクリックします。

下図のように[次の値で終わる]を選択し、値に「計」と入力します。
入力後[追加]ボタンをクリックします。

条件式が画面下の領域に追加されたことを確認し、[OK]ボタンをクリックします。

[次へ]ボタンをクリックします。

最後に取り込むデータを確認し[終了]ボタンをクリックします。

ロードスクリプトが設定されました。
[OK]ボタンをクリックして画面を閉じます。

データを取り込んでみましょう。
[リロード]ボタンをクリックします。
ファイルを保存し、[ロードスクリプトの進捗]画面を閉じてください。




以上でデータの取り込みは完了です。
ユーザーインターフェースの作成
それでは、データを分析するための画面を作成していきましょう。今回はリストボックスと統計ボックスという、ごく基本的な2種類のオブジェクトだけでデータを分析してみます。
リストボックスの作成
シートの余白を右クリックして[リストボックスの追加]を選択します。
画面中央の[すべて追加]ボタンをクリックして、全項目をリストボックスとして追加します。

[OK]ボタンをクリックします。

リストボックスが作成できましたが、そのままだと表示が重なっていてデータが見えません。

リストボックスのレイアウト
手動で配置を整えることもできますが、もっと簡単な方法を使用してみましょう。キーボードの[Ctrl]キーを押しながら[A]キーを押し、全オブジェクトを選択します。

一番上に表示されている「開票区」のリストボックスの上で右クリックして、[上揃え]を選択します。

全オブジェクトの上端が揃いました。

同様にして今度は右クリック→[左詰め]を選択します。

下図のように全オブジェクトが左詰めで配置されました。

そのまま(全オブジェクトを選択したまま)、ドラッグ&ドロップの操作で位置やサイズの調節ができます。

統計ボックスの作成
統計ボックスを追加してみましょう。統計ボックスは、選択した項目の合計値や平均値、最大値、最小値などの基本的な統計量を見るためのものです。
シートの余白を右クリック→[シートオブジェクトの追加]→[統計ボックス]を選択します。

[項目]から「投票者数(人)」を選択し[OK]ボタンをクリックします。

投票者数の統計ボックスが追加されました。

同様にして投票率の統計ボックスを追加します。

[項目]から「投票率(%)」を選択し[OK]ボタンをクリックします。

投票率の統計ボックスが追加されました。
下図を参考に、配置を調節してください。

データの分析
投票率の平均値について
分析を開始する前に1点注意事項があります。統計ボックスに投票率の平均値が表示されていますが、これは東京都全体の平均投票率としては使えません。

別途計算したところ、東京都の平均投票率は「53.51%」となりました。詳細は最後に解説いたしますが、ひとまず平均投票率としては「53.51%」を使用してください。
分析1
まず、有権者数や投票者数が最多の市区町村、投票率がもっとも高かった市区町村は、どこだったのか調べてみましょう。「当日有権者数(人)」のリストボックスをスクロールして最大値を確認してみます。72万人が最大値ですね。
この値をクリックしてみます。

有権者数がもっとも多いのは世田谷区でした。確認できたら、値(722,082)をもう一度クリックして、選択を解除してください。

今度は投票者数の最大値を確認してみます。投票者数は統計ボックスがあるので、最大値の確認と選択も簡単です。最大値は39万人ですね。
この値をクリックしてみます。

投票者数の最多も世田谷区でした。

棄権者数の最大値も確認してみます。こちらも世田谷区ですね。

世田谷区は棄権者数が都内で唯一30万人を超えています。しかしそれは有権者数自体が多いためで、投票率は平均以上であるということが分かります。
今度は投票率の最大値を確認してみます。86.72%という非常に高い値がでています。
この値をクリックしてみます。

利島村という有権者数256名の村が該当しました。

分析2
東京23区に絞って分析してみましょう。ここではリストボックスの検索機能を使用します。
「開票区」のリストボックスで右上の[検索]アイコンをクリックします。

検索窓に「*区」と入力します。(*は半角で入力してください。)

そのまま[Enter]キーを押すと、23区が選択されます。

では、23区の中で投票率がもっとも高かったのはどこでしょうか?
投票率の統計ボックスで最大値をクリックします。

23区の中で投票率がもっとも高かったのは文京区でした。

確認後、値をもう一度クリックするか、ツールバーの[元に戻す]ボタンで1つ前の状態に戻してください。
こんどは23区以外の市町村を選択してみます。
「開票区」のリストボックスを右クリックして[除外値の選択]をクリックします。

市町村を選択できました。

投票者数が24万人を超えている市町村があります。どの市町村か確認してみましょう。
投票者数の統計ボックスで最大値をクリックします。

投票者数が24万人を超えている市町村は八王子市でした。

[クリア]ボタンをクリックして、すべての選択を解除しておきます。

分析3
つづいて、投票率のデータで絞り込んでみましょう。「投票率(%)」のリストボックスで右上の[検索]アイコンをクリックします。

検索機能では、等号(=)や不等号(<>)も使用できます。
「<53.5」と入力して、投票率が平均を下回る市区町村を選択します。

そのまま[Enter]キーを押します。
統計ボックスのレコード数を見ると、投票率が平均を下回る市区町村は、22あることが分かります。

選択を反転して、投票率が平均を超える市区町村を選択してみましょう。
「投票率(%)」のリストボックスを右クリックして[除外値の選択]をクリックします。

投票率が平均を上回る市区町村を選択できました。

「当日有権者数(人)」のリストボックスをスクロールして、有権者数の多い箇所を確認します。

有権者数が30万人を超える市区町村が5ありますので、これらを選択してみます。

投票率が平均を超える市区町村で、有権者数が多いのは以下の5市区であることが分かります。
前回投票率を見ると全体的に4~5%程度投票率が落ちているようです。

さらに投票率の値に目を移すと、投票率が55%を超えるデータが2件ありますので、これらを選択してみます。

江東区と町田市に絞り込まれました。

また今回確認した中では、前回の選挙から投票率が4~5%落ちている市区町村が多く見られました。
以上で今回のチュートリアルは終了です。
補足説明
東京都の平均投票率の計算
前述のとおり、投票率の統計ボックスの平均値は、東京都全体の平均投票率としては使用できません。そこで、東京都の平均投票率を計算してみましょう。
チャートを新しいシートに追加するため、ツールバーの[シートの追加]ボタンをクリックして、新しいシートを追加してください。
このツールバーが表示されていない場合は、下図の操作で表示させるか[レイアウト]メニュー→[シートの追加]を選択してください。

ツールバーを表示させるには、[表示]→[ツールバー]→[デザイン]を選択します。

新しいシートが追加されました。

平均投票率を計算します。今回はストレートテーブルを使用します。
シートの余白を右クリック→[シートオブジェクトの追加]→[チャート]を選択します。

[ストレートテーブル]を選択して[次へ]をクリックします。

軸はなにも使用しないため(全データの平均を求めるため)、軸の設定はそのまま[次へ]ボタンで次に進みます。

以下の数式を設定します。
投票者数の合計を、有権者数の合計で割ることで投票率が求められます。
Sum(投票者数(人)) / Sum(当日有権者数(人))設定後[OK]ボタンをクリックします。

[完了]ボタンをクリックします。

値は計算できましたが、書式設定されていないため「#」が表示されます。マウスカーソルを合わせたり、横幅を広げることで値自体は確認できますが、より見やすくなるように書式設定してみましょう。

ストレートテーブルを右クリックして[プロパティ]を選択します。

[チャートプロパティ]画面の[数値書式]タブを選択します。
[実数]を選択し桁数に「2」と入力します。[パーセント表示(%)]にチェックを入れて、[OK]ボタンをクリックします。

書式が設定できました。
東京都全体の平均投票率は「53.51%」であることが分かります。

Excelファイルへのエクスポート
前述のとおり、今回は東京都選挙管理委員会のWebサイトからデータを取り込んでいます。このままでは、リロードを実行するたびに東京都選挙管理委員会のWebサイトに接続するため、オフライン環境ではリロードができません。また外部のサーバーに負荷をかけてしまい、好ましくありません。
そのため、データをExcelファイルにエクスポートし、Excelファイルからロードするように変更しましょう。
方法はいくつかありますが、一番簡単なのはテーブルボックスを使用する方法です。
シートの余白部分を右クリックし、[シートオブジェクトの追加]→[テーブルボックス]を選択します。

画面中央の[すべて追加]ボタンをクリックして、全項目を選択します。

[上へ]ボタンと[下へ]ボタンを使用して、項目を並べ替えます。

下図の順番に並べてください。[OK]ボタンをクリックします。

テーブルボックスができました。

テーブルボックス右上にある[Excel出力]アイコンをクリックします。
任意の場所にファイルを保存してください。

[ロードスクリプトの編集]画面を起動して、既存のLOAD文をコメントアウトします。

最下行にカーソルを合わせて[テーブルファイル]ボタンをクリックします。

保存したExcelファイルを選択します。

今回は単純にデータを取り込むだけなので、[終了]ボタンをクリックします。

ロードスクリプトが設定できました。[OK]ボタンをクリックします。

リロードを実行してください。


データの読み込み元を差し替えることができました。

振り返り
今回はQlikViewを使用して参議院議員選挙の結果を分析しながら、主に以下の2点についてご覧いただきました。- Webサイトから直接データを取り込む方法
- リストボックスや統計ボックスを使用したデータの分析
※前半の「SET」文は省略しています。
※このスクリプトをコピーして使用する場合は、ファイルのパスを環境にあわせて変更してください。
/* LOAD 開票区, 当日有権者数(人), 投票者数(人), 棄権者数(人), 投票率(%), 前回投票率(%) FROM [http://www.senkyo.metro.tokyo.jp/h25sangisokuho/h25san_stou_2200.html] (html, codepage is 932, embedded labels, table is @1, filters( Remove(Row, RowCnd(CellValue, 1, StrCnd(end, '計'))) )); */ LOAD 開票区, 当日有権者数(人), 投票者数(人), 棄権者数(人), 投票率(%), 前回投票率(%) FROM C:\Users\qlikview\Desktop\選挙.xls (biff, embedded labels, table is [Sheet1$]);
最後に…
QlikViewを使用する際、綺麗なチャートを並べたダッシュボードに注目が集まりがちです。しかし、リストボックスと統計ボックスだけでも、かなりいろいろとデータを分析できるということが、お分かりいただけたのではないでしょうか。特にリストボックスはQlikViewで最もよく使用する重要なオブジェクトですので、ぜひ使いこなしてください。
また、繰り返しになりますが、QlikViewの使い方を覚えるには、やはり実際のデータを分析してみるのが一番の近道です。
今回は東京都のデータを使用しましたが、その他の都道府県に関するリンクを以下に掲載しますので、ご自分の住んでいる地域や、出身地のデータを入手して、ぜひQlikViewで分析してみてください。
総務省|第21回参議院議員通常選挙結果
総務省|道府県選挙管理委員会ホームページ一覧
お疲れ様でした。