2025/4/29

エクセルのカイ二乗検定(独立性の検定)のp値の求め方【コピペ用テンプレートあり】

Thumbnail for エクセルのカイ二乗検定(独立性の検定)のp値の求め方【コピペ用テンプレートあり】

はじめに

エクセル上で、カイ二乗(χ2\chi^2)の独立性の検定を行い、p値を求める方法を紹介します。

下にテンプレート(セルデータサンプル)があるので、 コピペですぐに使用できます。

カイ二乗の独立性の検定とは

カイ二乗の独立性の検定は、統計的仮説検定の一種です。 単純に「カイ二乗検定」と呼ばれることもあります。 2つのカテゴリ変数を持つデータセットに対して行う、母比率の差の検定です。 2つのカテゴリ変数は独立しているか、互いに関係性があるかの評価に使用されます。

ザックリとした手順は以下です。

  1. データから、観測度数のクロス集計表を作成
  2. 1から、期待度数(2変数が独立なとき)のクロス集計表を作成
  3. 1と2のそれぞれから計算される比率に、有意な差がないか検定

いつ使うのか?

カイ二乗の独立性の検定は、以下のような場合に使用します。

  • データが2つのカテゴリ変数(質的データ)で構成されている。
  • クロス集計表の期待度数が十分に大きい(少なくとも80%以上のセルが5以上、かついずれのセルも1以上)。

算出値の意味

仮説検定では、 p値 を算出し、 有意水準α と比較を行います。 p値 は、=CHISQ.TEST関数によって得られます。

p値有意水準α による判定は以下の通りです。

  • p値 < α のとき: 観測度数と期待度数に有意な差が ある 2つのカテゴリ変数は独立でない(関係性がある)
  • p値 ≥ α のとき: 観測度数と期待度数に有意な差が ない 2つのカテゴリ変数は独立でない とは言えない

エクセルでの算出方法

以下の 全セルをコピー ボタンをクリックし、エクセルの A1 セルに貼り付けると、 K3 セルにp値(下記の場合 0.17090352)、E6セルに検定結果(下記の場合 (有意差)なし)が出力されます。

A, B, C列のデータと、 クロス集計表(観測度数)のラベル(F4 ~ G4, H5 ~ H6)を書き換え、 データ数に応じて F5 ~ G6セル中の参照セル範囲を書き換えることで、 各自のデータにあわせて計算できます。 テンプレート・サンプルのクロス集計表のサイズは2x2ですが、 自由に拡張できます(2x3や3x3など)。

ABCDEFGHIJKL
1データクロス集計表
2ラベル性別回答有意水準α0.05
31YES観測度数p値=CHISQ.TEST(F5:G6,F11:G12)
42YESYESNO合計
53YES=COUNTIFS($B$3:$B$7,"="&$E5,$C$3:$C$7,"="&F$4)=COUNTIFS($B$3:$B$7,"="&$E5,$C$3:$C$7,"="&G$4)=SUM(F5:G5)結果
64YES=COUNTIFS($B$3:$B$7,"="&$E6,$C$3:$C$7,"="&F$4)=COUNTIFS($B$3:$B$7,"="&$E6,$C$3:$C$7,"="&G$4)=SUM(F6:G6)有意差=IF(K3<=K2,"あり","なし")
75NO合計=SUM(F5:F6)=SUM(G5:G6)=SUM(H5:H6)
8
9期待度数
10YESNO合計
11=$H5*F$7/$H$7=$H5*G$7/$H$7
12=$H6*F$7/$H$7=$H6*G$7/$H$7=SUM(F12:G12)
13合計=SUM(F11:F12)=SUM(G11:G12)=SUM(H11:H12)

算出手順

エクセルで対応のカイ二乗の独立性の検定を行うための手順は、以下の5つです。

1. クロス集計表(実測度数)の作成

データセットを2つのカテゴリ変数でクロス集計します。 集計には COUNTIFS 関数を使用します。

集計した値から、SUM 関数で合計値も算出します。

COUNTIFS関数

評価する データ範囲 と、 条件式 を指定し、条件に一致するセルの個数をカウントする。
データ範囲条件式 のペアの数は、最大127個まで指定可能( データ範囲条件式 を交互に引数に設定する)。

例:=COUNTIFS($B$3:$B$7,"="&$E5,$C$3:$C$7,"="&F$4)

  • 第1引数 ($B$3:$B$7): 評価する データ範囲 (必須)
  • 第2引数 ("="&$E5): 第1引数のデータ範囲に適用する 条件式 (必須)
  • 第3引数 ($C$3:$C$7): 追加で評価する データ範囲 (オプション)
  • 第4引数 ("="&F$4): 第3引数のデータ範囲に適用する 条件式 (オプション)

2. クロス集計表(実測度数)の作成

手順1で作成したクロス集計表(実測度数)の中の合計値を使い、 クロス集計表(期待度数)を作成します。

クロス集計表(期待度数)の各セルの値は、以下の式で算出します。

期待度数=行の合計値×列の合計値総合計値期待度数 = \frac{行の合計値 \times 列の合計値}{総合計値}

※ クロス集計表(期待度数)中の合計値の算出は必須ではありません。

3. パラメータの設定

有意水準αを 事前 に設定します。 0.05(5%)や 0.01(1%)が一般的です。

4. p値を算出

=CHISQ.TEST 関数を使用して、 実測度数と期待度数間のp値を算出します。

CHISQ.TEST関数

第1、第2引数の2つのデータセットを使って、カイ二乗検定における確率(p値)を返す。
第1、第2引数の範囲サイズは同じ必要がある。

例:=CHISQ.TEST(F5:G6,F11:G12)

  • 第1引数 (F5:G6): 検定に使用する実測値(必須)
  • 第2引数 (F11:G12): 検定に使用する期待値(必須)

(旧関数:CHITEST関数)

5. 結果の表示

設定した有意水準と、算出したp値を比較した結果を表示します。 ここで IF 関数を使用しています。

IF関数

第1引数の条件式を基に、返す結果を分岐させる。

  • 第1引数 = TRUEのとき: 第2引数の値を返す
  • 第1引数 = FALSEのとき: 第3引数の値を返す

例:=IF(K3<=K2,"あり","なし")

  • 第1引数 (K3<=K2): 分岐の条件式(必須)
  • 第2引数 (あり): TRUEのときに返す値(必須)
  • 第3引数 (なし): FALSEのときに返す値(オプション)