Rによるクロス集計と独立性の検定2
ボーンシュテット&ノーキ「社会統計学」(Bohnstedt & Knoke 1988=1990:88)に紹介されている1984年GSS調査の「信仰する宗教と支持政党」データを用いる(引用元データは百分率クロス集計表なので、サンプルサイズから度数を復元している)。
宗教 | 民主党 | 支持政党なし | 共和党 | 合計 |
---|---|---|---|---|
プロテスタント | 329 | 301 | 284 | 914 |
カトリック | 166 | 142 | 65 | 373 |
ユダヤ教 | 9 | 10 | 7 | 26 |
無宗教 | 29 | 63 | 12 | 104 |
その他 | 10 | 8 | 0 | 18 |
合計 | 543 | 524 | 368 | 1435 |
1984年GSS調査 |
このデータから信仰する宗教と支持政党にどのような傾向を読み取れるか。
- George W. Bohnstedt & David Knoke,1988,Statistcs Fo Social Data Analysys 2nd.edithion(=1990,海野道郎・中村隆訳 社会統計学-社会調査のためのデータ分析入門 ハーベスト社)
スクリプト
#直接クロス集計表を作成する。 table.data <- matrix(c(329,301,284,166,142,65,9,10,7,29,63,12,10,8,0), byrow=T, ncol=3) rownames(table.data) <- c("プロテスタント","カトリック","ユダヤ教","無宗教","その他") colnames(table.data) <- c("民主党","支持政党なし","共和党") #集計前データに変換 source("http://kyoto-edu.sakura.ne.jp/weblesson/statistics/socialStatisticsBasic.R", encoding="UTF-8") data <- convert.weighted.data.to.original(convert.crosstable.to.weighted.data(table.data)) #クロス集計 crossTable <- crosstab(data$var1,data$var2) #χ2検定他 result <- summary(crossTable) #結果出力 result #帯グラフ barplot(t(result$row.ratio), horiz=T, legend=colnames(result$row.ratio)) #ファイルへの書き出し write.output(result,"output.crosstable.csv")
convert.crosstable.to.weighted.data関数(socialStatisticsBasic.Rで読み込まれる自作関数)
- convert.crosstable.to.weighted.data(matrix)
-
度数クロス表を重み付きデータに変換する。
- matrix=クロス集計表(matrix型)
convert.weighted.data.to.original関数(socialStatisticsBasic.Rで読み込まれる自作関数)
- convert.weighted.data.to.original(data.frame, freq.name)
-
重み付きデータから元データを復元する。
- data.frame=重み付きデータ(data.frame型)
- freq.name="Freq" 度数変数の項目(変数)名
出力結果
クロス集計表
$crossTable 共和党 支持政党なし 民主党 カトリック 65 142 166 その他 0 8 10 プロテスタント 284 301 329 ユダヤ教 7 10 9 無宗教 12 63 29 $row.ratio 共和党 支持政党なし 民主党 カトリック 0.1742627 0.3806971 0.4450402 その他 0.0000000 0.4444444 0.5555556 プロテスタント 0.3107221 0.3293217 0.3599562 ユダヤ教 0.2692308 0.3846154 0.3461538 無宗教 0.1153846 0.6057692 0.2788462 $column.ratio 共和党 支持政党なし 民主党 カトリック 0.17663043 0.27099237 0.30570902 その他 0.00000000 0.01526718 0.01841621 プロテスタント 0.77173913 0.57442748 0.60589319 ユダヤ教 0.01902174 0.01908397 0.01657459 無宗教 0.03260870 0.12022901 0.05340700
比率は$row.ratio(行方向の比率)を見る。
χ2検定
$chisq.test chi sq df P Peason 62.79974 8 1.312058e-10 Fisher NA NA 4.997501e-04
- $chisq.test
-
- Peason→「Pearsonのカイ2乗:漸近有意確率(両側)」
- Fisher→「Fhisherの直接法:正確な有意確率(両側)」
- クロス表が2*2ではないのでYates修正は出力されない。
残差分析
$residualAnalysis 共和党 支持政党なし 民主党 カトリック -4.2251998 0.7246084 3.0849080 その他 -2.5073732 0.7030883 1.5595828 プロテスタント 6.2364101 -3.7343606 -1.9078036 ユダヤ教 0.1506593 0.2079675 -0.3421110 無宗教 -3.4206410 5.2917429 -2.1735470 $res.p.value 共和党 支持政党なし 民主党 カトリック 0.0000 0.4687 0.0020 その他 0.0122 0.4820 0.1189 プロテスタント 0.0000 0.0002 0.0564 ユダヤ教 0.8802 0.8353 0.7323 無宗教 0.0006 0.0000 0.0297
符号に着目。プロテスタントは共和支持が相対的に強く、カトリックは民主支持が強い。無宗教は「支持政党なし」。
効果量Cramer's V
$Cramer [,1] Cramer's V 0.1479238
- Cramer's V
-
Cramer's Vの目安 効果量V 効果の目安 0.5 大 0.3 中 0.1 小 0 なし
考察例
![信仰する宗教と支持政党比率の帯グラフ](/weblesson/statistics/image/R/cross-graph002.png)
信仰する宗教によって支持政党に影響するかどうかをクロス集計表により検証を行った。
クロス集計表はχ2検定(Peason)により1%水準で有意であり(χ2(8)=62.80, p<.01, V=0.15)、信仰する宗教によって支持政党が異なる傾向があると言える。
残差分析より、プロテスタントは共和支持が相対的に強く、カトリックは民主支持が強い。また無宗教は支持政党を持たない傾向が強い。