2014年1月2日木曜日

Rを使ったχ自乗検定

χ自乗検定には、観測された頻度分布が理論分布と同じかどうかを検定する適合性検定と2つの変数に対する2つの観察(2x2分割表で表される)が互いに独立かどうかを検定する独立性検定の2種類がある。

χ自乗検定の手順は、
  1. データについて仮説を立てる(帰無仮説)。
  2. クロス表の頻度と理論的な頻度の差であるχ自乗値を求める。
χ自乗値は、



Rでχ自乗値の確率を求めるには、pchisq()関数の第1引数にχ自乗値を、第2引数dfに自由度を指定して実行する。pchisq()は、そのχ自乗値より小さな値が得られる確率を出力する。
2x2分割表を使った独立性検定の場合、expectedの期待度数を観測度数から求める作業が少し面倒な気もする。このサイトの例題がわかりやすかった。
pchisq()でχ自乗値の確率を出したら、その確率を1から引くことで、指定されたχ自乗値以上の値が得られる確率が求められる。

    3. χ自乗値とデータの自由度から確率を求める。
  4. 求まった確率があらかじめ定めた確率未満であれば、帰無仮説を捨てる。

独立性検定の場合、帰無仮説が棄却されれば、クロス表の項目、例えば、性別とアンケートの回答に関連があり、男女の回答には有意に異なるといった判断ができる。
Rで直接、χ自乗検定を行うなら、chisq.test()を使えばいい。
デフォルトでイェーツの補正が行われており、クロス表の頻度の整数を補正しχ二乗分布への近似を改善してくれる。

> x <- matrix(c(229, 98, 286, 58), ncol = 2)
> x
     [,1] [,2]
[1,]  229  286
[2,]   98   58
> chisq.test(x)

 Pearson's Chi-squared test with Yates' continuity correction

data:  x 
X-squared = 15.4185, df = 1, p-value = 8.614e-05

>

自由度1、確率p=0.05ならχ自乗値は3.84(分布表はここで)
3.84<15.4185となり、帰無仮説は棄却される。
p-valueの結果からも、このクロス表が偶然えられる可能性はほとんどなく、明らかなデータ間の差が認められる。

0 件のコメント:

コメントを投稿