人工知能を作りたい!

統計的仮説検定

独立性の検定(カイ二乗検定)




はじめに

数値という量的変数どうしの関係を調べる場合、散布図を描き、相関係数の検定無相関検定)を行います。

一方、「好き嫌い」という質的変数どうしの関係を調べる場合、クロス集計表を描き、独立性の検定カイ二乗検定)を行います。

質的変数どうしに関係がある時、「2つの質的変数に連関がある」、あるいは「2つの質的変数は独立ではない」と表現します。

質的変数どうしに関係がない時、「2つの質的変数に連関はない」、あるいは「2つの質的変数は独立である」と表現します。




例題

高校生20人にチョコレートとコーヒーの好き嫌いを聞き、以下の結果を得ました。(高校生一人一人に通し番号を付け、以下のように番号順に並べました。)

<チョコレートの好き嫌い>
"好き", "好き", "嫌い", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き"

<コーヒーの好き嫌い>
"嫌い", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い"

「チョコレートの好き嫌い」と「コーヒーの好き嫌い」の間に有意な連関があるといえるでしょうか。有意水準5%で検定を行ってください。




帰無仮説と対立仮説の設定

帰無仮説 H0:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立である(連関がない)
対立仮説 H1:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立ではない(連関がある)




Rによる統計解析

> チョコレート <- c("好き", "好き", "嫌い", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き")
> table(チョコレート)
チョコレート
嫌い 好き
     9 11


見やすいように修正して以下に表示します。


 チョコレート嫌い  チョコレート好き
 9  11


変数「チョコレート」にデータを格納します。関数 table() を使って度数分布を確認しました。


> コーヒー <- c("嫌い", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い")
> table(コーヒー)
コーヒー
嫌い 好き
   12 8


見やすいように修正して以下に表示します。


 コーヒー嫌い  コーヒー好き
 12  8


変数「コーヒー」にデータを格納します。関数 table() を使って度数分布を確認しました。


次に、変数「チョコレート」と変数「コーヒー」を組み合わせて、関数 table() を使ってみましょう。


> table(チョコレート, コーヒー)
                       コーヒー
チョコレート 嫌い 好き
               嫌い 7 2
               好き 5 6


見やすいように修正して以下に表示します。


   コーヒー嫌い  コーヒー好き
 チョコレート嫌い  7  2
 チョコレート好き  5  6




関数 chisq.test() を使ってカイ二乗検定を実行してみましょう。

関数 chisq.test() の書式は
chisq.test(クロス集計表, correct=FALSE)
です。

関数 table で作成したクロス集計表の結果を引数として指定します。correct=FALSE というオプションを指定すると、デフォルトで実行される連続性の補正を行いません。


> クロス集計表 <- table(チョコレート, コーヒー)


まず最初に、変数「クロス集計表」に、上記の関数 table(チョコレート, コーヒー) の結果を格納します。


> chisq.test(クロス集計表, correct=FALSE)
   Pearson's Chi-squared test

data: クロス集計表
X-squared = 2.1549, df = 1, p-value = 0.1421

 警告メッセージ:
 chisq.test(クロス集計表, correct = FALSE) で:
   カイ自乗近似は不正確かもしれません


「Pearson's Chi-squared test」は「ピアソンのカイ二乗検定」というタイトルです。

「data:」の横に検定の対象となる変数である「クロス集計表」が示されます。下の行に行くと、検定統計量 χ2 の実現値、カイ二乗分布の自由度、 p 値が示されます。

自由度は
(行の数-1)×(列の数-1)
で求められます。2×2のクロス集計表では
(2-1)×(2-1)=1
となります。

p 値が0.1421となり、有意水準0.05より大きいので、「帰無仮説 H0:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立である(連関がない)」は棄却されません。

「chisq.test(クロス集計表, correct = FALSE) で: カイ自乗近似は不正確かもしれません」という警告メッセージは、データから計算される期待度数が小さい時に発せられます。カイ二乗検定の結果が不正確である可能性を教えてくれます。