パッケージの読み込み

Q13-1

Rds形式の衆院選データ (hr-data.Rds) を読み込む。 手元にない場合はまずダウンロードする。

正しく読み込めたかどうか確認する。

## Observations: 8,803
## Variables: 22
## $ year       <int> 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 199...
## $ ku         <chr> "aichi", "aichi", "aichi", "aichi", "aichi", "aichi...
## $ kun        <int> 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, ...
## $ status     <fct> 現職, 元職, 現職, 新人, 新人, 新人, 新人, 現職, 元職, 新人, 新人, 新人, 新人,...
## $ name       <chr> "KAWAMURA, TAKASHI", "IMAEDA, NORIO", "SATO, TAISUK...
## $ party      <chr> "NFP", "LDP", "DPJ", "JCP", "others", "kokuminto", ...
## $ party_code <int> 8, 1, 3, 2, 100, 22, 99, 8, 1, 3, 2, 10, 100, 99, 2...
## $ previous   <int> 2, 3, 2, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, ...
## $ wl         <fct> 当選, 落選, 落選, 落選, 落選, 落選, 落選, 当選, 落選, 復活当選, 落選, 落選, 落...
## $ voteshare  <dbl> 40.0, 25.7, 20.1, 13.3, 0.4, 0.3, 0.2, 32.9, 26.4, ...
## $ age        <int> 47, 72, 53, 43, 51, 51, 45, 51, 71, 30, 31, 44, 61,...
## $ nocand     <int> 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, ...
## $ rank       <int> 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, ...
## $ vote       <int> 66876, 42969, 33503, 22209, 616, 566, 312, 56101, 4...
## $ eligible   <int> 346774, 346774, 346774, 346774, 346774, 346774, 346...
## $ turnout    <dbl> 49.2, 49.2, 49.2, 49.2, 49.2, 49.2, 49.2, 51.8, 51....
## $ exp        <int> 9828097, 9311555, 9231284, 2177203, NA, NA, NA, 129...
## $ expm       <dbl> 9.828097, 9.311555, 9.231284, 2.177203, NA, NA, NA,...
## $ vs         <dbl> 0.400, 0.257, 0.201, 0.133, 0.004, 0.003, 0.002, 0....
## $ exppv      <dbl> 28.341505, 26.851941, 26.620462, 6.278449, NA, NA, ...
## $ smd        <fct> 当選, 落選, 落選, 落選, 落選, 落選, 落選, 当選, 落選, 落選, 落選, 落選, 落選,...
## $ party_jpn  <chr> "新進党", "自民党", "民主党", "共産党", "その他", "国民党", "無所属", "新...

2000年の衆院選だけを抜き出してデータフレームを作る。

Q13-1-1

まず、2000年衆院選の候補者の所属政党 (party_jpn) を確認する (party を使ってもよい)。 (HTML用の表を作るために、knitr::kable() を使う。)

政党 候補者数
その他 8
保守党 16
公明党 18
共産党 300
新社会党 1
民主党 242
無所属 79
無所属の会 9
社民党 71
自民党 271
自由党 61
自由連合 123

無所属とその他を除くと、10の政党(党派)の候補者がいることがわかる。 各政党に所属する候補者の数を見ると、新社会党が1人、無所属の会が9人と人数が少ないので、これらの二つは「その他」にまとめることにする。

政党 候補者数
その他 18
保守党 16
公明党 18
共産党 300
民主党 242
無所属 79
社民党 71
自民党 271
自由党 61
自由連合 123

また、回帰分析における参照カテゴリを自民党候補にするため、自民党を第1因子、その他を最後の因子とする因子 (factor) 型の変数を作り、HR2000に加える。

##  [1] "民主党"   "公明党"   "無所属"   "共産党"   "その他"   "自由連合"
##  [7] "自民党"   "保守党"   "社民党"   "自由党"
## [1] 7
## [1] 5

自民党は7番目、その他は5番目にある。

## [1] "factor"
政党 候補者数
自民党 271
民主党 242
公明党 18
無所属 79
共産党 300
自由連合 123
保守党 16
社民党 71
自由党 61
その他 18

この変数を使い、以下の線形モデルを仮定して分析する。 \[得票率_i = \beta_0 + \beta_1 選挙費用_i + \sum_{k \in K} \beta_{2k} 政党kのダミー変数_i + \sum_{k \in K} \beta_{3k} 選挙費用_i \cdot 政党kのダミー変数_i + \epsilon_i.\]

ただし、\(K=\{\)民主党, 公明党, 無所属, 共産党, 自由連合, 保守党, 社民党, 自由党, その他\(\}\)であり、政党\(k\)のダミー変数は、候補者\(i\)の所属政党が\(k\)のときに1、それ以外のときは0をとる。自民党は参照カテゴリなので、\(K\)には含まれない。

選挙費用が得票率に与える影響が所属政党によって異なっていたかを確かめるために、上の式で表されるモデルのそれぞれの\(k\)について、次のような仮説を立てる。

  • 帰無仮説:\(\beta_{3k} = 0\)
  • 対立仮説:\(\beta_{3k} \neq 0\)

有意水準を3% (0.03) に設定し(問題文に指定がないので、自分で決めてよい。慣例では5%だが、常に慣例に従わなければいけないのだろうか)、母数を推定し、この仮説を検定する。得票率は voteshare、選挙費用(100万円)はexpm である。

## 
## Call:
## lm(formula = voteshare ~ expm * pty_f, data = HR2000)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -36.420  -5.287  -0.961   4.524  39.078 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)
## (Intercept)         41.6845     1.9163  21.753  < 2e-16
## expm                 0.3415     0.1276   2.676 0.007557
## pty_f民主党        -16.8383     2.6730  -6.299 4.25e-10
## pty_f公明党         -5.9941     7.6333  -0.785 0.432467
## pty_f無所属        -34.0438     2.6634 -12.782  < 2e-16
## pty_f共産党        -36.0533     2.2735 -15.858  < 2e-16
## pty_f自由連合      -42.8723     2.4123 -17.773  < 2e-16
## pty_f保守党         -6.7188     6.6022  -1.018 0.309054
## pty_f社民党        -37.7447     3.6151 -10.441  < 2e-16
## pty_f自由党        -35.9679     3.3475 -10.745  < 2e-16
## pty_fその他        -32.6279     5.0372  -6.477 1.38e-10
## expm:pty_f民主党     0.5361     0.2136   2.510 0.012217
## expm:pty_f公明党    -0.4902     0.4828  -1.015 0.310223
## expm:pty_f無所属     1.2821     0.2283   5.616 2.46e-08
## expm:pty_f共産党     1.8611     0.3937   4.727 2.56e-06
## expm:pty_f自由連合   0.8372     0.2765   3.028 0.002513
## expm:pty_f保守党    -0.1565     0.4820  -0.325 0.745405
## expm:pty_f社民党     1.6143     0.4559   3.541 0.000414
## expm:pty_f自由党     0.7366     0.2781   2.649 0.008191
## expm:pty_fその他     1.2588     0.4516   2.787 0.005400
## 
## Residual standard error: 9.836 on 1144 degrees of freedom
##   (35 observations deleted due to missingness)
## Multiple R-squared:  0.7151, Adjusted R-squared:  0.7104 
## F-statistic: 151.1 on 19 and 1144 DF,  p-value: < 2.2e-16

\(\beta_{3k}\)の推定結果に関する情報は、「expm:pty_f民主党」から「expm:pty_fその他」までの行に表示されている。 まず、\(\beta_{3, 民主}\) の係数の推定値は、「expm:pty_f民主党」の行の、Estimateの列に表示されている0.54である。この数値は、ゼロと統計的に意味のある違いを持っているだろうか。これを確かめるために、同じ行の右端の列にある\(p\)値を確かめる。\(p\)値は、\(0.012217 < 0.03\) なので、\(\beta_{3, 民主}\) \(= 0\) という帰無仮説を棄却する。よって、選挙費用が得票率に与える影響の大きさは、自民党候補と民主党候補の間で異なるといえる。 自民党候補の場合、選挙費用が得票率に与える影響の大きさは、\(0.34\)であるのに対し、民主党候補の場合は、\(0.34 + 0.54 = 0.88\) である。つまり、自民党候補の場合、他の条件が等しければ、選挙費用を100万円増やすごとに得票率が\(0.34\)パーセントポイントずつ上昇することが期待されるが、民主党候補の場合、選挙費用を100万円増やすごとに得票率が0.88パーセントポイントずつ上昇することが期待される。

他の政党についても、同じように考えればよい。\(p\)値が0.03(あるいは自分で設定した有意水準)より小さければ、帰無仮説を棄却し、\(p\)値が0.03以上なら、帰無仮説を棄却しない。例えば、\(\beta_{3, 公明}\)\(p\)値は\(0.31 > 0.03\) なので帰無仮説は棄却されない。すなわち、公明党候補の選挙費用が得票率に与える影響は、自民党候補の選挙費用が得票率に与える影響と異なるという統計的な証拠はない。

\(\beta_{3k}\)の推定値の数が多いので、キャタピラプロットにまとめて図示する。

この図が\(\beta_{3k}\)の推定結果をまとめている。縦軸には、どの党について自民党候補との差を見ているかが示されている。 横軸は、\(\beta_{3k}\)の推定値の大きさを表している。図中の点は、点推定値である。また、水平に引かれた線は、内側の太い線が50パーセント信頼区間、外側の細い線が97パーセント信頼区間である(有意水準を3パーセントに設定したので、97パーセントを選んでいる)。公明党と保守党については、97パーセント信頼区間がゼロを跨いでおり、自民党候補との間に統計的に意味のある差が確認できないことがわかる。それ以外の政党については、97パーセント信頼区間がゼロを跨いでいないので、推定された効果は3%の有意水準で統計的に有意であることがわかる。

キャタピラプロットは、選挙費用が得票率に与える影響について「自民党との差」を示しているが、これだけでは各党の候補者の選挙費用が得票率に与えた影響の大きさ自体はわかりにくい。そこで、散布図上に政党別の回帰直線を描く。