• このセクションで使っている R packages
library(DT)
library(gapminder)
library(gghighlight)
library(ggrepel)
library(stargazer)
library(tidyverse)

1. ロリポップ・チャート

  • ロリポップチャート (dot plot) は視覚的に無駄がなく読みやすいため、棒グラフやヒストグラムの代わりに使われる
  • 2009年から2014年に実施された衆議院選挙(小選挙区)結果を加工したものを使う
  • データセットには、次の 7 つの変数が含まれている
変数名 詳細
year 衆議院選挙が実施された年
pref 都道府県名(日本語)
id 都道府県の id (1-47)
nosmd 都道府県内の小選挙区総数 (1-25)
ldp 都道府県内の小選挙区で自民党候補者の当選総数
ldp_ratio 都道府県内の小選挙区総数に占める自民党当選者の割合(%)
dpj 都道府県内の小選挙区で民主党候補者の当選総数
  • データ hr09-14_ldp_seatshare.csv をダウンロードする
    → R プロジェクトフォルダ内に作った data フォルダの中に入れる
  • この csv ファイルを読み込み、df_seat と名前をつける
df_seat <- read_csv("data/hr09_14_ldp_seatshare.csv")  
  • datatable() 関数を使ってデータフレームの内容を確認する
DT::datatable(df_seat)

1.1 基本的なロリポップチャート   

  • 2009年衆院選データだけを抜き出す
  • 最も基本的なロリポップチャートは次のように表示できる
df_seat %>% 
  dplyr::filter(year == 2009) %>% 
  ggplot(aes(x = ldp_ratio, 
             y = pref)) + 
  geom_point() + 
  theme_bw(base_family = "HiraKakuProN-W3")+
    labs(x = "自民党の議席率 (%)", 
         y = "都道府県")

  • reorder( )関数を使って自民党当選者の割合 (ldp_ratio) の大きい順にソートしてより見やすいロリポップチャートを描く
df_seat %>% 
  dplyr::filter(year == 2009) %>% 
  ggplot(aes(x = ldp_ratio, 
             y = reorder(pref, ldp_ratio))) + # ldp_ratio 順に pref を並べ替える
  geom_point(size = 2) +
  theme(panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.y = element_line(colour = "grey60", linetype = "dashed")) + 
  theme_bw(base_family = "HiraKakuProN-W3") +
    labs(x = "自民党の議席率 (%)", 
         y = "都道府県")

1.2 グループ分けしたロリポップチャート   

  • 次に facet( ) 関数を使って、2009年、2012年、2014年の三回の衆議院選挙において都道府県ごとに自民党が占める議席率がどのように変化してきたかロリポップチャートを使って表示してみる
  • 選挙年(year)ごとに表示するため、year 変数を factor に変換後、2009年の衆議院選挙で自民党が占める議席率をソートし、3 回の選挙ごとに自民党が当選した議席率を都道府県ごとに表示する
  • グループ分けに使う選挙年 (year) のデータ方をチェックする
str(df_seat$year)
 num [1:141] 2012 2014 2009 2012 2014 ...
  • 変数 year が数値型なので factor に変換する
df_seat$year <- factor(df_seat$year) 
df_seat %>% 
  arrange(year, ldp_ratio) %>%
  mutate(order_seq = c(1:47, rep(0, 47*2))) %>%  # `order_seq` という変数を加える
  
 ggplot(aes(x = ldp_ratio, 
            y = reorder(pref, order_seq))) + 
  geom_segment(aes(yend = pref),
               xend = 0, colour = "grey50") +
  geom_point(size = 2,
             aes(colour = year)) +
  scale_colour_brewer(palette = "Set1", 
                      limits = c("2009", "2012", "2014"),
                      guide = FALSE) +
  theme(panel.grid.major.y =
          element_blank()) +
  facet_grid(~ year,
             scales="free_y", space = "free_y") + 
  theme_bw(base_family = "HiraKakuProN-W3")+
    labs(x = "自民党の議席率 (%)", 
         y = "都道府県")

2009-2014年の衆議院選挙(小選挙区)で自民党候補者が当選した割合(都道府県別)
  • ヒストグラムで表すと次の様になる
# year変数を factor に変換する
df_seat$year <- factor(df_seat$year) 
df_seat %>% 
  arrange(year, ldp_ratio) %>%
  mutate(order_seq = c(1:47, rep(0, 47*2))) %>% 
  
  ggplot(aes(x = reorder(pref, order_seq), 
           y = ldp_ratio,  
           fill = year)) +
  geom_bar(stat = "identity") +
  facet_grid(~ year, scales = "free_x") +
  theme(legend.position = "none") +
  coord_flip()+ 
  theme_bw(base_family = "HiraKakuProN-W3")+
    labs(x = "都道府県", 
         y = "自民党の議席率 (%)") 

2009-2014年の衆議院選挙(小選挙区)で自民党候補者が当選した割合(都道府県別)

まとめ ・ 自民党から民主党に政権交代が起こった2009年の衆議院選挙では、鳥取、島根、高知、福井の四つの県内全ての小選挙区で自民党議員が全員当選している
・ 他方、静岡、大分、新潟、長崎、秋田の五つの県では、2009年の政権交代選挙において、県内全ての小選挙区で自民党議員は全滅したが、2012年の安倍政権への政権交代選挙では自民党候補者が100%当選している

2 Exercise

Q2.1:
「1.1. 基本的なロリポップチャート」の手法を使って、2009年の総選挙において都道府県内の小選挙区総数に占める民主党当選者の割合 (%) を示す新たな変数を作り、dpj_ratio と名前を付け、ロリポップチャートを描きなさい
・データは hr09_14_ldp_seatshare.csv をダウンロードして使うこと

Q2.2:
「1.2 グループ分けしたロリポップチャート」の手法を使って、2009年、2012年、2014年の総選挙において都道府県内の小選挙区総数に占める民主党当選者の割合 (%) をヒストグラムで描きなさい
・データは hr09_14_ldp_seatshare.csv をダウンロードして使うこと

Q2.3: この結果からどのようなことが言えるか?

参考文献
  • Tidy Animated Verbs
  • 宋財泫 (Jaehyun Song)・矢内勇生 (statuki statanai)「私たちのR: ベストプラクティスの探究」
  • 宋財泫「ミクロ政治データ分析実習(2022年度)」
  • 土井翔平(北海道大学公共政策大学院)「Rで計量政治学入門」
  • 矢内勇生(高知工科大学)授業一覧
  • 浅野正彦, 矢内勇生.『Rによる計量政治学』オーム社、2018年
  • 浅野正彦, 中村公亮.『初めてのRStudio』オーム社、2018年
  • Winston Chang, R Graphics Coo %>% kbook, O’Reilly Media, 2012.
  • Kieran Healy, DATA VISUALIZATION, Princeton, 2019
  • Kosuke Imai, Quantitative Social Science: An Introduction, Princeton University Press, 2017