crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

宗教統計調査データの分析3 - R言語で一元配置分散分析(oneway.test関数)と交互作用図(interaction.plot関数)をしてみる。

 

www.crosshyou.info

 の続きです。

今回は、

都道府県知事の所轄の団体数と文部科学大臣の管轄の団体数の比率が宗派によって違うのかを調べてみます。分散分析ですね。

まずは、mutate関数で比率を表す変数を作成しましょう。

f:id:cross_hyou:20190309103924j:plain

hiritsuという変数が都道府県知事所轄 / 文部科学大臣所轄 の値です。キリスト教系は13.8ぐらいですね。
tapply関数とmean関数で宗派ごとのhiritsuを計算します。

f:id:cross_hyou:20190309104117j:plain

合計や都道府県知事合計、文部科学大臣合計というこのchidaというデータフレーム内には存在しないファクタ水準が残っていますね。削除しましょう。as.character関数で文字列に変換し、as.factor関数でファクタに変換します。

f:id:cross_hyou:20190309105150j:plain

すっきりした出力になりましたね。

キリスト教系は13.8, 諸教は137.7, 神道系は393.1, 仏教系は177.6と宗派によって全然違いますね。

分散分析で宗派によって比率が違うかどかを検定します。この場合は一元配置分散分析でしょうか。oneway.test関数を使います。

f:id:cross_hyou:20190309105651j:plain

p-value < 2.2e-16 となっていますから、各宗派の比率はすべて等しいという帰無仮説は棄却されました。宗派によって比率はことなるということです。

同じようにYearによってhiritsuが異なるか見てみましょう。

f:id:cross_hyou:20190309110016j:plain

2005年は186、2017年は174と違うようです。グラフにしてみましょうか。barplot関数を使いました。

f:id:cross_hyou:20190309110322j:plain

f:id:cross_hyou:20190309110358j:plain

だんだんと比率が低下しているようですね。

それではoneway.test関数で一元配置分散分析をします。

f:id:cross_hyou:20190309110843j:plain

p-value < 2.2e-16 なので、Yearの違いでhiritsuに違いがあることがわかりました。

hiritsuはType(宗派)にもYear(年)にも影響されているということですね。

それでは次に、TypeとYearの交互作用図を作成してみましょう。

intaraction.plot関数を使います。

f:id:cross_hyou:20190309111542j:plain

f:id:cross_hyou:20190309111618j:plain

4本の線は、ほぼ同じような形状なので年と宗派の交互作用は無いようですね。

今回は

 

Rクックブック

Rクックブック

 

 の「レシピ8.20一元配置分散分析を行う」と「レシピ8.21交互作用図を作成する」を参考にしました。

今回は以上です。

次回は

 

www.crosshyou.info

 

です。

最後に今回のR言語のコマンドを記載しておきます。


# 比率を表す変数を作成
chida <- chida %>%
mutate(hiritsu = Number_chiji / Number_daijin)
chida

# 各宗派ごとのhiritsuの平均値
tapply(chida$hiritsu, chida$Type, mean)

# ファクタ水準の整理
chida$Type <- as.character(chida$Type)
chida$Type <- as.factor(chida$Type)
tapply(chida$hiritsu, chida$Type, mean)

# 一元配置分散分析(hiritsu ~ Type)
oneway.test(chida$hiritsu ~ chida$Type)

# Yearごとのhiritsuの平均値
tapply(chida$hiritsu, chida$Year, mean)

# グラフ
barplot(tapply(chida$hiritsu, chida$Year, mean), ylim = c(0, 200))

# 一元配置分散分析(hirits ~ Year)
oneway.test(chida$hiritsu ~ chida$Type)

# YearとTypeの交互作用図
interaction.plot(chida$Year, chida$Type, chida$hiritsu)