投票に行ったと嘘をつく人たち (『社会科学のためのデータ分析入門』練習問題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))
データの散らばりはあるが、大統領選挙の方が中間選挙よりも「社会的望ましさバイアス」が働きやすくなっているのではないだろうか。
まとめ
今回はアメリカでの選挙の投票率について、データを分析しながら考察を行いました。実際に選挙に行っていないのに行ったと偽ってしまう人がたくさんいることがわかりました。
このように簡単なデータセットとプログラミングだけで、普段なんとなく感じていること、こうじゃないかなと思っていることを、誰もがわかりやすいように示すことができます。グラフに分析結果を落とし込めるようになると視覚的にも理解しやすく、プレゼンなどにも活用できるのではないでしょうか。
この記事が気に入ったらサポートをしてみませんか?