Rでカイ二乗検定 - 例:血液型にまつわる妄想

先日、カイ二乗検定を行う機会があったのでメモ。

カイ二乗検定は大きく分けて、観測された頻度分布が理論分布と同じかどうかを検定する「適合度検定」と、2つの変数に対する2つの観察(2x2分割表で表される)が互いに独立かどうかを検定する「独立性検定」の2種類あります。

Rでのカイ二乗検定は、chisq.testで行います。

(1)「適合度検定」の場合
例えば、赤い花と白い花を交配して、その孫集団F2の植物のつける花の色がそれぞれ461, 112個体というデータが得られた時に、この集団が理論値の3:1に分離しているかを以下のように検定します。

> chisq.test(c(461,112), p=c(0.75, 0.25))

Chi-squared test for given probabilities

data: c(461, 112)

X-squared = 9.0896, df = 1, p-value = 0.002571

カイ二乗検定を行うと,χ2=9.09, P<0.01であり,この場合は3:1に分離していると考えてよいでしょう。


(2)「独立性検定」の場合
A工場では4800個の製品を作った時に12個の不良品が出てきて、B工場では7000個の製品を作った際に10個の不良品が出てきた場合、A工場とB工場で差があるかどうかの検定は以下のように行います。

A, B
4800,7000
12, 10

というようなcsvファイルを用意して、

> x<-read.csv("test.csv")

でデータを読み込みます。

データの確認を行います。

> x
A B
1 4800 7000
2 12 10

カイ二乗検定をします。

> chisq.test(x, correct=FALSE)

Pearson's Chi-squared test

data: x
X-squared = 1.7496, df = 1, p-value = 0.1859

p値が0.18程度なので、6回データを取ると1回程度はこういったデータが偶然出てくる、つまりA工場とB工場では有意な差は認められないということになります。

わざわざcsvファイルと作るのもめんどくさいので、こういう場合にはmatrixで行列を使うと便利です。

次の例で試してみましょう。

Aさんが700回の実験で20回間違える、Bさんが650回の実験で11回間違えるとすると、感覚的にはAさんの方がうっかりさんに思えますが、以下のように検定してみると…

> y <- matrix(c(700,20,650,11), nrow=2, ncol=2)
> y
[,1] [,2]
[1,] 700 650
[2,] 20 11

カイ二乗検定をします。

> chisq.test(y, correct=FALSE)

Pearson's Chi-squared test

data: y
X-squared = 1.9477, df = 1, p-value = 0.1628

p値は、0.16程度なので、AさんもBさんもそれほど変わらないかもしれません。

ちなみに、correct=FALSEは通常のカイ二乗検定、correct=TRUEはイェイツ補正を行うパラメーターです。


ーーー
以下、胡散臭い話をカイ二乗検定してみましょう。

サッカーブラジルW杯時に話題になったニュースで、

サッカー日本代表23人の血液型は、A型9人, B型3人、AB型3人, O型8人でB型が少ない。

代表選手にB型が少ないのは、監督がチームワークを重視するプレーを求めているからではないでしょうか。B型の人は、マイペースで型にハマりません...

というものがありました。

さっそく統計検定をしてみましょう!

日本人の血液型は、およそA型40%, B型20%、AB型10%, O型30%なので、その割合を理論値として検定します。

> chisq.test(c(9,3,3,8), p=c(0.4, 0.2, 0.1, 0.3))

Chi-squared test for given probabilities

data: c(9, 3, 3, 8X-squared = 0.9493, df = 3, p-value = 0.8135

全然、有為な差はありませんね。
偶然、偶然。

(ちなみに、サンプル数が少ないので「カイ二乗検定は不正確かもしれません」とのメッセージが出てきます)

また、別の記事で

「早生まれ」不利じゃない W杯代表、23人中10人

というものもありました。

ほぉ~、早生まれが多いのかぁ~。

ではでは、さっきと同様に。

> chisq.test(c(10,13), p=c(0.25, 0.75))

Chi-squared test for given probabilities

data: c(10, 13X-squared = 4.1884, df = 1, p-value = 0.0407

ん~、なんか微妙。

サッカーのユース国際大会は1月生まれが学年の基準だそうで、そういう意味では早生まれの方が多少有利なのかもしれません。

この記事が気に入ったらサポートをしてみませんか?