読者です 読者をやめる 読者になる 読者になる

残差分析を行う

 今回は、分割表の残差分析の方法を紹介します。分析データは、3つのコーパスにおける3つの語の頻度を集計したものとします。*1

# 分割表の作成
dat <- matrix(c(61, 7, 172, 6, 37, 47, 49, 85, 69), nrow = 3)
colnames(dat) <- c("Corpus A", "Corpus B", "Corpus C")
rownames(dat) <- c("Word X", "Word Y", "Word Z")
# 分割表の確認
dat

 上記のスクリプトを実行すると、以下のような結果が表示されます。

       Corpus A Corpus B Corpus C
Word X       61        6       49
Word Y        7       37       85
Word Z      172       47       69

 では、このデータに対して、カイ2乗検定を行ってみましょう。

# カイ2乗検定
result <- chisq.test(dat)
# 検定結果の確認
result

 上記のスクリプトを実行すると、以下のような結果が表示されます。

	Pearson's Chi-squared test

data:  dat
X-squared = 122.128, df = 4, p-value < 2.2e-16

 次に、残差分析を行います。まずは、標準化残差と調整済み残差を確認してみましょう。

# 標準化残差
result$residuals
# 調整済み残差
result$stdres

 上記のスクリプトを実行すると、以下のような結果が表示されます。

# 標準化残差
        Corpus A   Corpus B   Corpus C
Word X  1.213103 -3.0700445  0.7251427
Word Y -6.702975  3.2605787  5.1172423
Word Z  3.716179 -0.2337969 -3.8850053
# 調整済み残差
         Corpus A   Corpus B  Corpus C
Word X   1.849792 -3.8071675  1.041899
Word Y -10.384135  4.1079897  7.469913
Word Z   7.392766 -0.3782518 -7.282472

 そして、調整済み残差からp値を求めるには、以下のような処理を行います。*2

# p値
pnorm(abs(result$stdres), lower.tail = FALSE) * 2

 上記のスクリプトを実行すると、以下のような結果が表示されます。

           Corpus A     Corpus B     Corpus C
Word X 6.434351e-02 1.405675e-04 2.974584e-01
Word Y 2.928114e-25 3.991178e-05 8.024795e-14
Word Z 1.438052e-13 7.052436e-01 3.277586e-13

*1:このデータは、石川・前田・山崎 (2010) の71ページにおけるサンプルデータです。

*2:この処理にあたっては、こちらを参考にさせて頂きました。

広告を非表示にする