準備

必要なパッケージをインストールする.

list.of.packages = c("xlsx", "dplyr", "tidyr", "ggplot2")
new.packages = list.of.packages[
  !(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)

それらを読み込む.

library(xlsx)
library(dplyr)
library(tidyr)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.3.2

目的

進んで負け戦をする政党はないだろうから, 政治的波乗りはデータでも容易に確認できるように思う. 景気動向指数を使って1980年以降の様子を確認してみよう.

衆議院選挙

1980年以降の衆議院総選挙の投票日, それに先立つ解散日を shugiin.csv に記録している.

shugiin = read.csv("shugiin.csv", strip.white=TRUE) %>%
  mutate(poll=as.Date(poll), dissolve=as.Date(dissolve))

shugiin
##    num       poll   dissolve
## 1   36 1980-06-22 1980-05-19
## 2   37 1983-12-18 1983-11-28
## 3   38 1986-07-06 1986-06-02
## 4   39 1990-02-18 1990-01-24
## 5   40 1993-07-18 1993-06-18
## 6   41 1996-10-20 1996-09-27
## 7   42 2000-06-25 2000-06-02
## 8   43 2003-11-09 2003-10-10
## 9   44 2005-09-11 2005-08-08
## 10  45 2009-08-30 2009-07-21
## 11  46 2012-12-16 2012-11-16
## 12  47 2014-12-14 2014-11-21

景気動向指数

景気動向指数の長期系列を内閣府のホームページ からダウンロードする. 余分な部分を削ぎ落として R で読めるようにしたものが business_conditions.xls. 最初の5行を消して, 6行目 (ヘッダ行) を書き換えた.

bc_orig = read.xlsx("business_conditions.xls", 1) 
head(bc_orig)
##   Japanese.year Calendar.year Month CI.Leading CI.Coincidence CI.Lagging
## 1            55          1980     1         NA             NA         NA
## 2            55          1980     2         NA             NA         NA
## 3            55          1980     3         NA             NA         NA
## 4            55          1980     4         NA             NA         NA
## 5            55          1980     5         NA             NA         NA
## 6            55          1980     6         NA             NA         NA
##   DI.Leading DI.Coincidence DI.Lagging CDI.Leading CDI.Coincidence
## 1       54.5             85       83.3         0.0               0
## 2       54.5             90       94.4         4.5              40
## 3       45.5             80       88.9         0.0              70
## 4       40.9             95       77.8        -9.1             115
## 5       36.4             25       55.6       -22.7              90
## 6       45.5             30       83.3       -27.2              70
##   CDI.Lagging
## 1         0.0
## 2        44.4
## 3        83.3
## 4       111.1
## 5       116.7
## 6       150.0

このままでは使いにくいので Long形式に変更.

bc = bc_orig %>% 
  mutate(Date=as.Date(paste(Calendar.year,Month,'01',sep='-'))) %>%
  select(-Japanese.year, -Calendar.year, -Month) %>%
  gather(key=Index, value=Value, -Date, na.rm=TRUE)

head(bc, 10)
##          Date      Index Value
## 61 1985-01-01 CI.Leading  86.9
## 62 1985-02-01 CI.Leading  87.2
## 63 1985-03-01 CI.Leading  87.0
## 64 1985-04-01 CI.Leading  87.6
## 65 1985-05-01 CI.Leading  87.6
## 66 1985-06-01 CI.Leading  86.8
## 67 1985-07-01 CI.Leading  86.6
## 68 1985-08-01 CI.Leading  85.2
## 69 1985-09-01 CI.Leading  85.4
## 70 1985-10-01 CI.Leading  85.1

CI

CI指数と解散日を重ねてプロットする.

bc %>% filter(grepl("CI", Index)) %>%
  ggplot() + aes(color=Index) + scale_x_date() + 
  geom_line(aes(x=Date, y=Value)) + 
  geom_vline(data=shugiin, aes(xintercept=as.numeric(dissolve)), 
             size=0.5, linetype="dashed") 

CDI

CDI と選挙日を重ねてプロットする.

bc %>% filter(grepl("CDI", Index)) %>%
  ggplot() + aes(color=Index) + scale_x_date() + 
  geom_line(aes(x=Date, y=Value)) + 
  geom_vline(data=shugiin, aes(xintercept=as.numeric(dissolve)), 
             size=0.5, linetype="dashed") 

観察

もちろんこのようなグラフを描いただけでは確定的なことは何もいえないが, 印象としては, 上昇局面での解散が多いように見える. ただし, いくつかの明らかな例外がある.

1980年5月19日, 1993年6月18日 の解散は景気の下降局面のように見える. いずれも, 内閣不信任案が可決されたことによる解散である.

1986年6月2日の解散も景気の下降局面の終盤にあたるように見える. Wikipedia によると当時の内閣支持率が高かったとあるので, 景気動向指数には現れない要因が影響しているのか, あるいは好況の予兆があったのかもしれない.

おわりに

ここでは, 単純にCI と CDI のプロットに選挙日を重ねて傾向を観察した.

データをプロットして目視により傾向をつかむというのは, どのような大きなプロジェクトでも最初に行っていることだと思う. 比較的簡単にできることなので, 各自手を動かしてほしい.

本来は次のようなことをやるべきだろう. 関心がある人は, 既存研究が採用している手法を参考にしてやってみてほしい.