投票に行ったと嘘をつく人たち (『社会科学のためのデータ分析入門』練習問題1.5.1)

今回は実際のデータを用いて分析を行なっていきます。

『社会科学のためのデータ分析入門』(今井耕介著)という本で紹介されたデータで、練習問題にもなっています。(問題自体の解説はしないので質問のある方はコメントください。。)

データの入手はこちらから。

実際のデータ分析

ではデータを読み込んでいきましょう。↓

> turnout <- read.csv("turnout.csv")

> head(turnout)

   year    VEP    VAP  total ANES felons noncit overseas osvoters

1  1980 159635 164445  86515   71    802   5756     1803       NA

2  1982 160467 166028  67616   60    960   6641     1982       NA

3  1984 167702 173995  92653   74   1165   7482     2361       NA

4  1986 170396 177922  64991   53   1367   8362     2216       NA

5  1988 173579 181955  91595   70   1594   9280     2257       NA

6  1990 176629 186159  67859   47   1901  10239     2659       NA

今回使用しないデータを取り除いておく。↓

> data <- turnout[c(1,3,4,5)]

> data

   year    VAP  total ANES

1  1980 164445  86515   71

2  1982 166028  67616   60

3  1984 173995  92653   74

4  1986 177922  64991   53

5  1988 181955  91595   70

6  1990 186159  67859   47

7  1992 190778 104405   75

8  1994 195258  75106   56

9  1996 200016  96263   73

10 1998 205313  72537   52

11 2000 210623 105375   73

12 2002 215462  78382   62

13 2004 220336 122295   77

14 2008 230872 131304   78

↑↑ yearは選挙の年、VAPは1000人あたりの選挙年齢人口、totalは実際の投票数合計(単位は1000票)、ANESはアメリカ国勢選挙調査による投票率(%)である。

調べるのは「人は、(本当は選挙に行くべきだというやましさから)選挙に行ったと偽ってしまうのか」についてである。つまり、ANESによる投票率の結果と実際の選挙の投票率を比べればよい。

> ## ANESとtotal÷VAPから求められる実際の選挙率の差を考える

> mean(data$ANES - data$total / data$VAP*100)

[1] 19.69001



> ## summary関数でより詳しく差を見てみる

> summary(data$ANES - data$total / data$VAP*100)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 

  10.55   17.75   19.97   19.69   21.40   25.62
 

データの単位は%で、平均して19.69%、最大で25%強の差があることがわかった。つまり、これは「ANESの調査による投票率の方が実際の投票率よりも20%ほど高い数値になっている」ということを示している。

実際に「投票に行っていないのに行ったと嘘をつく」人は少なからずいることがわかる。これが「社会的望ましさバイアス」による結果だと言える。

これは中間選挙と大統領選挙の場合で違いはあるのだろうか。

> ## データを選挙の行われた年に基づいて大統領選挙(data.pre)と
> ### 中間選挙(data.mid)に分割する。2008年が大統領選挙の年だ

> data.pre <- data[c(seq(1,13,2),14),]
> data.mid <- data[seq(2,12,2),]

> ## それぞれ先ほどと同様にANESと実際の投票率を比較する

> summary(data.pre$ANES - data.pre$total / data.pre$VAP*100)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 

  18.39   20.12   20.94   21.19   21.86   24.87 

> summary(data.mid$ANES - data.mid$total / data.mid$VAP*100)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 

  10.55   16.52   17.10   17.69   18.84   25.62

グラフにすると、、

> par(mfrow = c(1,2))

> boxplot(data.pre$ANES - data.pre$total / data.pre$VAP*100,

+         main = "Presidential election",

+         ylab = "ANES - real rate (%)",

+         ylim = c(10,26))

> boxplot(data.mid$ANES - data.mid$total / data.mid$VAP*100,

+         main = "Mid-term election",

+         ylim = c(10,26))

画像1

データの散らばりはあるが、大統領選挙の方が中間選挙よりも「社会的望ましさバイアス」が働きやすくなっているのではないだろうか。


まとめ

今回はアメリカでの選挙の投票率について、データを分析しながら考察を行いました。実際に選挙に行っていないのに行ったと偽ってしまう人がたくさんいることがわかりました。

このように簡単なデータセットとプログラミングだけで、普段なんとなく感じていること、こうじゃないかなと思っていることを、誰もがわかりやすいように示すことができます。グラフに分析結果を落とし込めるようになると視覚的にも理解しやすく、プレゼンなどにも活用できるのではないでしょうか。



この記事が気に入ったらサポートをしてみませんか?