データ解析:第2回授業 Rを用いた記述統計・相関分析
I.記述統計
今日使うデータと目的:日本の内閣支持率に関するデータを使って、内閣支持率はどのような特徴を持ち、何と関係していると考えられるのか考えてみよう。
1.研究の設計
- 研究の問い:内閣支持率や与党支持率はどのような特徴を持ち、どのように変化してきたのか。経済変数との関係はどのようなものか。
- 利用するデータ:時事通信社による毎月の内閣支持率に関する時系列形式の世論調査データ(1960年6月~現在)
- 利用する変数:内閣支持率、自民党支持率、景気評価、消費者物価指数、失業率
2. 記述統計
シンプルな記述統計
もっともシンプルな記述統計は以下のコマンドによって出力できる。
## yearMon time_id approve dis
## Length:679 Min. : 1.0 Min. : 4.40 Min. : 6.00
## Class :character 1st Qu.:170.5 1st Qu.:28.75 1st Qu.:28.75
## Mode :character Median :340.0 Median :37.60 Median :34.40
## Mean :340.0 Mean :36.44 Mean :36.56
## 3rd Qu.:509.5 3rd Qu.:43.30 3rd Qu.:42.55
## Max. :679.0 Max. :78.40 Max. :83.70
##
## ruling_ldp q3c1 q3c2 q3c3
## Min. :-1.0000 Min. : 0.0000 Min. : 0.000 Min. : 0.00
## 1st Qu.: 1.0000 1st Qu.: 0.1000 1st Qu.: 3.200 1st Qu.:48.90
## Median : 1.0000 Median : 0.3000 Median : 4.000 Median :58.50
## Mean : 0.8527 Mean : 0.6076 Mean : 4.597 Mean :56.18
## 3rd Qu.: 1.0000 3rd Qu.: 0.4000 3rd Qu.: 5.300 3rd Qu.:64.50
## Max. : 1.0000 Max. :11.5000 Max. :14.800 Max. :76.70
## NA's :44 NA's :44 NA's :44
## q3c4 q3c5 q3c6 q5c1
## Min. : 0.00 Min. : 0.000 Min. :0.000 Min. :0.0000
## 1st Qu.:25.90 1st Qu.: 3.400 1st Qu.:0.400 1st Qu.:0.1000
## Median :29.90 Median : 4.900 Median :0.800 Median :0.2000
## Mean :31.11 Mean : 5.533 Mean :1.196 Mean :0.3546
## 3rd Qu.:36.55 3rd Qu.: 6.800 3rd Qu.:1.700 3rd Qu.:0.4000
## Max. :53.10 Max. :29.400 Max. :6.200 Max. :3.3000
## NA's :44 NA's :44 NA's :44 NA's :33
## q5c2 q5c3 q5c4 q5c5
## Min. : 0.000 Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 4.300 1st Qu.:42.70 1st Qu.:19.20 1st Qu.: 2.30
## Median : 7.450 Median :51.25 Median :25.95 Median : 4.20
## Mean : 8.109 Mean :50.24 Mean :26.64 Mean : 5.79
## 3rd Qu.:11.500 3rd Qu.:59.40 3rd Qu.:33.60 3rd Qu.: 7.70
## Max. :26.600 Max. :69.30 Max. :53.90 Max. :35.70
## NA's :33 NA's :33 NA's :33 NA's :33
## q5c6 cpi unemp nav_high
## Min. : 0.000 Min. : 18.20 Min. :1.000 Length:679
## 1st Qu.: 4.300 1st Qu.: 49.75 1st Qu.:1.600 Class :character
## Median : 7.000 Median : 87.30 Median :2.600 Mode :character
## Mean : 8.405 Mean : 74.19 Mean :2.807
## 3rd Qu.:10.700 3rd Qu.: 96.70 3rd Qu.:4.000
## Max. :23.000 Max. :100.70 Max. :5.500
## NA's :33
## ldp
## Min. :11.70
## 1st Qu.:23.12
## Median :28.20
## Mean :28.29
## 3rd Qu.:33.38
## Max. :52.90
## NA's :1
summary()コマンドで分かる統計量は以下の4種類のみ
- 平均
- 最大値:観察
- 最小値
- 最小値
より詳しい記述統計を算出するには、別のコマンドが必要。その前に・・・
変数の作成
「q3c1-6」、「Q5c1-6」の各変数をもとに経済評価変数を作成しておこう。
「q3c1-6」は次の質問と回答をもとにしたもの(暮らし向き評価) 質問文:あなたの暮らし向きは、昨年の今ごろと比べてどうですか。楽になっていますか、苦しくなっていますか。
- 大変楽になった(q3c1)
- やや楽になった(q3c2)
- 変わりない(q3c3)
- やや苦しくなった(q3c4)
- 大変苦しくなった(q3c5)
- わからない(q3c6)
「q5c1-6」は次の質問と回答をもとにしたもの(景気評価) 質問文:あなたの暮らし向きは、昨年の今ごろと比べてどうですか。楽になっていますか、苦しくなっていますか。
- 確かに良くなってきたと思う(q5c1)
- やや良くなってきたと思う(q5c2)
- 変わらないと思うい(q5c3)
- やや悪くなってきたと思う(q5c4)
- 確かに悪くなってきたと思う(q5c5)
- わからない(q5c6)
暮らし向き評価の「好評価」と「悪評価」を表す変数を作るためにはどうしたらいいだろうか?
#暮らし向き好評価
life_good<-q3c1+q3c2
#暮らし向き悪評価
life_bad<-q3c4+q3c5
#景気好評価
soc_good<-q5c1+q5c2
#景気悪評価
soc_bad<-q5c4+q5c5 上記の変数を既存のデータセットに組み込むためには、「$」記号を利用する。
#暮らし向き好評価
cabinet$life_good<-q3c1+q3c2
#暮らし向き悪評価
cabinet$life_bad<-q3c4+q3c5
#景気好評価
cabinet$soc_good<-q5c1+q5c2
#景気悪評価
cabinet$soc_bad<-q5c4+q5c5 経済評価変数を組み込んだうえで、以下の分析を進めよう。
より詳しい記述統計
summary()コマンドでは、ばらつき、分布の特徴についてわかる情報は限られている。より詳しい記述統計を得るために、psychパッケージ内のコマンドを利用する。
## vars n mean sd median trimmed mad min max range skew
## yearMon* 1 679 340.00 196.15 340.00 340.00 252.04 1.0 679.0 678.0 0.00
## time_id 2 679 340.00 196.15 340.00 340.00 252.04 1.0 679.0 678.0 0.00
## approve 3 679 36.44 11.24 37.60 36.36 10.38 4.4 78.4 74.0 0.15
## dis 4 679 36.56 12.40 34.40 35.68 9.64 6.0 83.7 77.7 0.72
## ruling_ldp 5 679 0.85 0.52 1.00 1.00 0.00 -1.0 1.0 2.0 -3.26
## q3c1 6 635 0.61 1.64 0.30 0.26 0.15 0.0 11.5 11.5 4.85
## q3c2 7 635 4.60 2.67 4.00 4.27 1.48 0.0 14.8 14.8 1.25
## q3c3 8 635 56.18 11.24 58.50 57.20 11.12 0.0 76.7 76.7 -1.39
## q3c4 9 635 31.11 7.57 29.90 30.87 7.41 0.0 53.1 53.1 -0.07
## q3c5 10 635 5.53 3.78 4.90 5.08 2.37 0.0 29.4 29.4 2.44
## q3c6 11 635 1.20 0.99 0.80 1.06 0.74 0.0 6.2 6.2 1.13
## q5c1 12 646 0.35 0.45 0.20 0.26 0.15 0.0 3.3 3.3 2.25
## q5c2 13 646 8.11 4.87 7.45 7.77 5.19 0.0 26.6 26.6 0.60
## q5c3 14 646 50.24 11.25 51.25 50.99 12.53 0.0 69.3 69.3 -0.74
## q5c4 15 646 26.64 9.39 25.95 26.30 10.67 0.0 53.9 53.9 0.27
## q5c5 16 646 5.79 4.97 4.20 4.94 3.26 0.0 35.7 35.7 2.09
## q5c6 17 646 8.40 5.04 7.00 7.77 4.30 0.0 23.0 23.0 0.94
## cpi 18 679 74.19 28.85 87.30 77.52 15.86 18.2 100.7 82.5 -0.85
## unemp 19 679 2.81 1.31 2.60 2.72 1.78 1.0 5.5 4.5 0.42
## nav_high* 20 679 340.00 196.15 340.00 340.00 252.04 1.0 679.0 678.0 0.00
## ldp 21 678 28.29 6.70 28.20 28.36 7.56 11.7 52.9 41.2 -0.06
## life_good 22 635 5.20 2.67 4.40 4.80 1.63 0.0 15.2 15.2 1.39
## life_bad 23 635 36.64 10.13 34.90 36.05 9.19 0.0 74.1 74.1 0.46
## soc_good 24 646 8.46 5.19 7.60 8.07 5.41 0.0 28.4 28.4 0.66
## soc_bad 25 646 32.43 13.62 30.15 31.36 14.31 0.0 77.1 77.1 0.64
## kurtosis se
## yearMon* -1.21 7.53
## time_id -1.21 7.53
## approve 0.36 0.43
## dis 0.60 0.48
## ruling_ldp 8.63 0.02
## q3c1 23.45 0.06
## q3c2 1.92 0.11
## q3c3 3.94 0.45
## q3c4 1.25 0.30
## q3c5 9.77 0.15
## q3c6 0.77 0.04
## q5c1 5.90 0.02
## q5c2 -0.19 0.19
## q5c3 0.92 0.44
## q5c4 -0.56 0.37
## q5c5 6.35 0.20
## q5c6 -0.18 0.20
## cpi -0.95 1.11
## unemp -1.05 0.05
## nav_high* -1.21 7.53
## ldp -0.39 0.26
## life_good 1.66 0.11
## life_bad 1.66 0.40
## soc_good -0.08 0.20
## soc_bad -0.08 0.54
- vars:変数の列番号
- n: 観察数
- mean:平均値\(\mu=\frac{1}{n}\sum^{n}_{i-1}x_i\)
- sd: 標準偏差 \(sd=\sqrt{\frac{1}{n-1}\sum^{n}_{i=1}(x_{i}-\mu)^2}\)
- median:中央値
- timmed:刈り込み平均
- mad: 中央絶対偏差値
- min: 最小値
- max: 最大値
- range: 範囲
- skew: 歪度 \(skewness=\frac{n}{(n-1)(n-2)}\sum^{n}_{i=1}(\frac{x_{i}-\mu}{s})^3\)
## Unsuccessful convergence.
## Unsuccessful convergence.
## Successful convergence.
- kurtosis: 尖度とても複雑な算出式!
## Successful convergence.
## Unsuccessful convergence.
## Successful convergence.
- se: 標準誤差
記述統計からどのようなことが明らかになるだろうか?
3.変数の分布の確認
内閣支持率、与党支持率、経済変数、それぞれにはどのような分布の特徴があるだろうか?
上に挙げたヒストグラムと同じものを、各自で描画してみよう。
①まずは単純な頻度を表すヒストグラムを描画する。
②次に、密度をもとにヒストグラムを描画してみよう。
③ここに密度関数の曲線を併記しよう。
hist(approve, freq=F)
lines(density(approve,lwd = 2)) #density()が密度関数。lines()によって密度関数の曲線をoverlayしている④ヒストグラムのタイトルやX軸、y軸のラベルを変更してみよう。
内閣支持率の分布について、どのような特徴が見てとれるだろうか。そして分布の形状を、記述統計と照らし合わせて考えてみよう。
そして他の変数についても、各自でヒストグラムを作成し、結果を解釈していこう。以下と同じような図形が描画できただろうか?
II.相関分析
2変数間の関係を確かめるために相関を調べる。ここでは、内閣支持率と自民党支持率の関係について検討することから始めよう。
1.散布図による確認
散布図は次のようなplot()関数によって、シンプルに描画することが可能。
これもヒストグラムの時と同様に、各軸とメインタイトルの名前を変えることができる。
ここでもう1つのアドバンスな図の描画にチャレンジしよう。「ggplot2」というパッケージを使うことで、より見やすく、効率的な図の作成ができる。
library(ggplot2) #パッケージggplot2のロード
g <- ggplot(data=cabinet, aes(x = ldp, y = approve)) #gというオブジェクトにグラフの土台となる情報を格納
g <- g + geom_point() # gというオブジェクトを、geom_pointコマンドによって散布図で出力
plot(g) #完成しているオブジェクトgを描画軸ラベルとメインタイトルを変える時には、デフォルトのプロットとは異なり以下のように設定する。
g <- ggplot(data=cabinet, aes(x = ldp, y = approve))
g <- g + geom_point()+xlab("自民党支持率")+ylab("内閣支持率")+
ggtitle("内閣支持率と自民党支持率の関係に関する散布図") #xlab()がx軸、ylab()がy軸それぞれの軸ラベルで、ggtitle()がメインタイトル
plot(g) また、ggplot2で図を描画する際に、目盛りの幅(scale of axis)を変更することもできる。
g <- ggplot(data=cabinet, aes(x = ldp, y = approve))
g <- g + geom_point()+xlab("自民党支持率")+ylab("内閣支持率")+
ggtitle("内閣支持率と自民党支持率の関係に関する散布図")+ #xlab()がx軸、ylab()がy軸それぞれの軸ラベルで、ggtitle()がメインタイトル
scale_x_continuous(breaks=seq(0,80,5)) #x軸の目盛りを「0から80までにして、目盛りの区切りを5に変更する」という意味
plot(g) このように見てくると、内閣支持率と自民党支持率の間には何らかの関係がありそうに見える。これを相関分析によって確かめていこう。
2.ピアソンの積率相関分析
基本統計量と相関係数の関係
もう1度基本的な統計量を確認しておこう。
- 1変数の平均:\(\bar{x}=\frac{1}{n}\sum^{n}_{i=1}x_{i}\).
- 1変数の不偏分散:\(s^{2}=\frac{1}{n-1}\sum^{n}_{i-1}(x_{i}-\bar{x})^2\).
- 2変数間の共分散:\(S_{xy}=\frac{1}{n-1}\sum^{n}_{i-1}(x_{i}-\bar{x})(y_{i}-\bar{x})\).
このもとで相関係数\(r_{xy}\)は、
\[r_{xy}=\frac{s_{xy}}{s_{x}s_{y}}=\frac{\sum^n_{i=1}(x_{i}-\bar{x})(y_i-\bar{y})}{\sqrt{\sum^{n}_{i=1}(x_{i}-\bar{x})^2\sum^{n}_{i=1}(y_{i}-\bar{y})^2}}\].
内閣支持率と自民党支持率の相関分析
内閣支持率と自民党支持率の間のピアソン積率相関分析を計算しよう。
##
## Pearson's product-moment correlation
##
## data: approve and ldp
## t = 7.3349, df = 676, p-value = 6.373e-13
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.2003112 0.3398605
## sample estimates:
## cor
## 0.2715123
分析結果は次のような構成になっている。
t検定
ここで統計的検定、t検定のことを復習しておこう。相関係数に関するt検定の帰無仮説は、
- 帰無仮説(\(H_0\)):真の相関係数は0
- 対抗仮説(\(H_A\)):真の相関係数は0ではない
t検定のための、\(r_{xy}\)のt統計量は以下の式で求まる。
\[t=r\sqrt{\frac{n-2}{1-r^2}}\]
母集団の中から無作為に抽出された標本の相関係数はt分布に従うことから、t分布をもとに上記のt統計量を評価する。t統計量の評価の方法を覚えているだろうか。
上記の図に、自分で1%水準で統計的に有意となる場合のt値のラインを描画してみよう。
内閣支持率と自民党支持率の相関分析の推定結果
- 続いて、内閣支持率と自民党支持率の相関係数の検定結果について考えてみよう。
t = 7.3349, df = 676, p-value = 6.373e-13
という推定結果はどのように解釈できるだろうか?
- 相関係数の値の解釈 \(r_{xy} > 0\):正の相関 \(r_{xy} < 0\):負の相関 \(r_{xy} = 0\):無相関 \(r_{xy} = 1\):正の完全相関 \(r_{xy} = -1\): 負の完全相関
内閣支持率と他の変数との相関
他の変数と内閣支持率との相関についても推定しよう。暮らし向き評価と景気評価についてはどうだろうか。
- 内閣支持率と暮らし向き好評価の相関
##
## Pearson's product-moment correlation
##
## data: approve and life_good
## t = 2.5011, df = 633, p-value = 0.01263
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.0212820 0.1753795
## sample estimates:
## cor
## 0.0989238
- 内閣不支持率と暮らし向き低評価の相関
##
## Pearson's product-moment correlation
##
## data: dis and life_bad
## t = 5.0256, df = 633, p-value = 0.0000006538
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1199037 0.2695789
## sample estimates:
## cor
## 0.1958819
内閣支持率/不支持率、景気好評価値/悪評価の相関はどのように解釈できるだろうか?
自民党支持率と各種経済評価の相関はどのように解釈できるだろうか?
3.質的変数の相関分析
データの読み込み
利用するデータ:東京大学朝日新聞共同調査・政治家調査 2017年衆議院議員候補者調査 ※コードブックも参照してください。
ケンドール順位相関係数(Kendall’s rank correlation coefficient)
-安全保障に関する政策態度間の相関の検証
利用する質問文
- 日本の防衛力はもっと強化すべきだ (Q4_1)
- 賛成
- どちらかと言えば賛成
- どちらとも言えない
- どちらかと言えば反対
- 反対
- 無回答
- 他国からの攻撃が予想される場合には先制攻撃もためらうべきではない (Q4_2)
- 賛成
- どちらかと言えば賛成
- どちらとも言えない
- どちらかと言えば反対
- 反対
- 無回答
①「無回答」の「99」という値を欠損値に変換する。
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 465 5.03 17.21 2 1.78 1.48 1 99 98 5.24 25.67 0.8
最大値が「99」であるが、この数値に順序としての意味はないので数値を欠損値として扱う必要がある。よって変数の変換を行う。
defense<-Q4_1 #Q4_1変数をもとに、新たに「defense」という名前の変数を作成
defense[Q4_1==99]<-NA #「Q4_1=99」にあたる観察を「NA」に置き換える
describe(defense)## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 450 1.9 1.13 2 1.69 1.48 1 5 4 1.25 0.81 0.05
同様に先制攻撃についても変換。
premptive<-Q4_2 #Q4_2変数をもとに、新たに「premptive」という名前の変数を作成
premptive[Q4_2==99]<-NA #「Q4_2=99」にあたる観察を「NA」に置き換える
describe(premptive)## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 440 3.33 1.1 3 3.35 1.48 1 5 4 0.06 -0.58 0.05
②質的変数であることから、先ほどのピアソン積率相関係数を利用することは適切ではない。よって質的な変数のための、ケンドール順位相関係数によって、質的変数の相関を計算する。
2つの変量、\(x\)と\(y\)がある時、対応する2つの観察\((x_s,y_s)\)と\((x_t,y_t)\)を取り出したときに、
\(P\):\(x_s\)と\(x_t\)、\(y_s\)と\(y_t\)の大小関係が同じ向きである組の数
\(Q\) =\(x_s\)と\(x_t\)と\(y_s\)と\(y_t\)、との大小関係が異なる向きである組の数
\(T_x\) = \(x_s=x_t\)である組の数
\(T_y\) =\(y_s=y_t\)である組の数
\(N\)=\(\frac{n(n-1)}{2}\) (組の総数)
であると設定すると、ケンドールの順位相関係数\(\tau\)は、次式によって定義されてる。 \[ \tau = \frac{P - Q} {\sqrt{N - T_x}\sqrt{N - T_y}} \]
##
## Kendall's rank correlation tau
##
## data: defense and premptive
## z = 12.112, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.4934934
ケンドールの順位相関検定では、z検定により有意性を評価する。政策態度、防衛強化と先制攻撃容認の間の相関関係はどのように解釈できるだろうか。
③では、上記の作業をもとにして、「小さな政府」志向の政策態度と防衛強化の相関を計算してみよう。
##
## Kendall's rank correlation tau
##
## data: defense and welfare
## z = 11.966, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.4948624
上記と同じ推定結果が得られただろうか。そしてこの結果はどのように解釈できるだろうか。