独立性検定とは、クロス集計表を作成したとき、2つの属性が独立であるかどうかを統計的に判定する方法である。
独立性検定を行う手順は次の通りである。

  1. 仮説を立てる。
    • 帰無仮説H0:属性Ai(i=1,…,m)とBj(j=1,…,n)は独立である。
    • 対立仮説H1:属性Ai(i=1,…,m)とBj(j=1,…,n)は少なくとも一つ以上は独立でない。
  2. B1 B2 ・・・ Bn 合計
    A1 x11 x12 ・・・ x1n a1
    A2 x21 x22 ・・・ x2n a2
    ・・・ ・・・ ・・・ ・・・ ・・・ ・・・
    Am xm1 xm2 ・・・ xmn am
    合計 b1 b2 ・・・ bn N
  3. AiとBjの期待度数yijを次の式により求める。
    chi-square-test-test-of-independence-expectation
  4. 検定統計量Tを次のように計算する。
    chi-square-test-test-of-independence-test-statistic
  5. このとき、検定統計量Tは自由度(m-1)(n-1)のカイ二乗分布に従うので、有意水準のカイ二乗値kと比較する。
  6. T>kであれば、帰無仮説を棄却して、対立仮説を採用する。

男女200人に朝食・昼食・夕食について、どの時間帯の食事を最も重要視するかの調査を行った結果、次の表になった。このとき、男女と朝食・昼食・夕食について独立であるかどうかを調べる。

朝食 昼食 夕食 合計
50 15 55 120
10 40 30 80
合計 60 55 85 200
  • 帰無仮説H0:男女と朝食・昼食・夕食は独立である。

期待度数の計算式は次のようになる。

朝食 昼食 夕食 合計
200×(120/200)×(60/200) 200×(120/200)×(55/200) 200×(120/200)×(85/200) 120
200×(80/200)×(60/200) 200×(80/200)×(55/200) 200×(80/200)×(85/200) 80
合計 60 55 85 200

期待度数の値は次のようになる。

朝食 昼食 夕食 合計
36 33 51 120
24 22 34 80
合計 60 55 85 200

検定統計量は次のようになる。

朝食 昼食 夕食 合計
(50-36)2/36 (15-33)2/33 (55-51)2/51
(10-24)2/24 (40-22)2/22 (30-34)2/34
合計
朝食 昼食 夕食 合計
5.4444 9.8181 0.3137 15.5762
8.1666 14.7272 0.4705 23.3643
合計 13.611 24.5453 0.7842 38.9405

これから検定統計量はT=38.9405となる。
これは、自由度(2-1)(3-1)=2のカイ二乗分布に従うので、有意水準を0.05とすると、カイ二乗値は5.991465となる。
エクセルでこの値を求めるときは、CHIINV関数を使えばよい。

CHIINV(確率,自由度)

今回の例では、セルに「=CHIINV(0.05,2)」を入力する。

chi-square-test-test-of-independence-excel-chiinv

T=38.9405>5.991465から棄却域に入るので、帰無仮説H0は棄てられる。よって、男女と朝食・昼食・夕食は少なくとも一つ以上は独立でない。

Rで計算する

Rで独立性検定を行う場合は、次のようになる。


> chisq.test(matrix(c(50, 15, 55, 10, 40, 30), ncol=3, byrow=T))

	Pearson's Chi-squared test

data:  matrix(c(50, 15, 55, 10, 40, 30), ncol = 3, byrow = T)
X-squared = 38.9409, df = 2, p-value = 3.5e-09

よって、有意水準を5%(=0.05)とすると、p-value=3.5e-09<0.05となるため、帰無仮説は棄却される。

Pythonで計算する

Pythonで独立性検定を行う場合は、次のようになる。あらかじめ、numpyとscipyパッケージをインストールしておく。


import numpy as np
from scipy import stats

print(stats.chi2_contingency(np.array([[50, 15, 55], [10, 40, 30]]))

これを実行すると、次のように表示される。


(38.940879382055854, 3.5002211279659769e-09, 2, array([[36., 33., 51.], [24., 22., 34.]]))

これは、次のような意味である。

  • 検定統計量:38.940879382055854
  • p値:3.5002211279659769e-09
  • 自由度:2
  • 期待度数:array([[36., 33., 51.], [24., 22., 34.]])

関連する記事

  • 決定木 – 分類木決定木 – 分類木 決定木とは、分類ルールを木構造で表したものである。分類したいデータを目的変数(従属変数)、分類するために用いるデータを説明変数(独立変数)という。目的変数がカテゴリデータなどの場合は「分類木」、連続値などの量的データの場合は「回帰木」と呼ばれる。 決定木の最大のメリットは、結果にグラフを用いることができるため、視覚的に確認できることである。 ここでは、R言語の「r […]
  • 決定木 – 回帰木決定木 – 回帰木 ここでは、決定木の目的変数が連続値である場合の回帰木について、R言語の「rpart」パッケージを用いて簡単に見ていく。 まずは必要となるパッケージのインストールとロードを行う。「rpart」パッケージは決定木を行うためのものだが、「rpart.plot」と「partykit」パッケージは結果を視覚的に表示するために使うので、あらかじめインストールとロードをしておく。 […]
  • カイ二乗検定 – 適合度検定カイ二乗検定 – 適合度検定 適合度検定とは、観測度数分布が期待度数分布と同じかどうかを統計的に確かめる方法である。 適合度検定を行う手順は次の通りである。 仮説を立てる。 帰無仮説 H0:観測度数分布と期待度数分布が同じ。 対立仮説 […]
  • Journal of Statistical Software: 記事一覧 Journal of Statistical Software の記事一覧をご紹介する。英語での説明文をgoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 確認日:2017/03/24 論文数:1089 Introduction to stream: An Extensible Framework for Data Stream […]
  • 相関係数相関係数 相関係数とは2変量のデータ間の関係性の強弱を計る統計学的指標である。相関係数rがとる値の範囲は-1≦r≦1である。相関係数rの値により以下のように呼ばれる。 -1≦r<0ならば負の相関 r=0ならば無相関 0<r≦1ならば正の相関 一般的に、強弱も合わせて以下のように呼ばれる。 […]
カイ二乗検定 – 独立性検定