カイ二乗検定とは
カイ二乗検定は、主に二つのカテゴリカル変数間に有意な関連があるかどうかを判断するために使用される、仮説検定の手法の一つです。
他の一部の検定とは異なり、カイ二乗検定は母集団の分布についての仮定を必要とせず、「非パラメトリック」と呼ばれています。この検定は、数値データではなく、ジェンダー、色、ブランドの好みなどのカテゴリカルまたは名義尺度のデータを分析するために特別に設計されています。
要するに、カイ二乗検定は、交叉表の各カテゴリにおける観測度数を期待度数と比較します。期待度数は、変数間に関連がない場合に予測される度数です。これらの度数の比較により、研究者は研究対象となる変数の関係についての帰無仮説を受け入れるか棄却するかを決定するのに役立ちます。
カイ二乗検定の概念
カイ二乗検定は、予想される分布と実際の分布の間に有意な差異があるかどうかを判断するために使用される統計手法です。カイ二乗検定は、正の値しか取らず右に歪んだカイ二乗分布を基にした一連の分布です。検定統計量もこの性質に従います。
カイ二乗検定は、データの観測度数と期待度数の差を比較します。ここで、「観測度数」とは実際に収集したデータのことです。「期待度数」とは、変数間に関連がない場合に交叉表の各セルで予想される度数です。
観測度数:
● | ▲ | Total | |
---|---|---|---|
✖︎ | a | c | i |
■ | b | d | j |
Total | x | y | N |
期待度数:
● | ▲ | |
---|---|---|
✖︎ | ||
■ |
カイ二乗統計量は、次の式を使用して計算されます。
ここで、
= カイ二乗統計量\chi^2 = 観測度数O_i = 期待度数E_i は交叉表の全てのセルに対してこの計算を行うことを示しています。\sum
この計算の結果得られる
カイ二乗検定の仮説
全ての仮説検定と同様に、カイ二乗検定では帰無仮説と対立仮説が使用されます。
カイ二乗検定の帰無仮説(
対立仮説(
カイ二乗検定の種類
カイ二乗検定は、カイ二乗分布に従う仮説の下で、複数の統計的検定からなるグループです。いくつかの異なるタイプのカイ二乗検定が存在しますが、特に一般的なものには次の3つがあります: 独立性のカイ二乗検定、適合度のカイ二乗検定、均質性のカイ二乗検定です。
独立性のカイ二乗検定
独立性のカイ二乗検定、または関連性のカイ二乗検定とも呼ばれるものは、二つのカテゴリカル変数間に有意な関連があるかどうかを判断するために使用されます。つまり、変数が独立しているか関連しているかを検定します。
この検定の帰無仮説は、変数が独立しているということを述べます。一方、対立仮説は、変数が独立していない、つまり関連性や関係性があることを述べます。
適合度のカイ二乗検定
適合度のカイ二乗検定は、観測されたカテゴリカルデータがある期待される分布に適合しているかどうかを判断するために使用されます。この検定は、観測された頻度分布が特定の理論的分布に適合するという仮説を検定するために一般的に使用されます。
適合度のカイ二乗検定の帰無仮説は、観測データが期待される分布に適合しているということを述べます。一方、対立仮説は、観測データが期待される分布に適合していないということを述べます。
均質性のカイ二乗検定
均質性のカイ二乗検定は、複数のサンプル(集団)が単一のカテゴリカル変数の分布を共有しているかどうかを判断するために使用されます。例えば、政党の選好が3つの異なる年齢層で同じ分布を持つかどうかを検定するために、均質性のカイ二乗検定を使用することがあります。
均質性のカイ二乗検定の帰無仮説は、集団が同じ分布を持つ、つまり均質であるということを述べます。一方、対立仮説は、集団が同じ分布を持たず、均質ではないということを述べます。
カイ二乗検定の実施手順
カイ二乗検定の実施にはいくつかのステップがあります。以下に一般的に行われる手順を示します。
仮説の定義
まず最初に、帰無仮説と対立仮説を定義します。カイ二乗検定では、帰無仮説は通常、変数が独立していることを述べ、対立仮説は変数が独立していないことを述べます。
検定統計量の計算
次に、観測度数の交叉表を作成します。この表から、期待度数を計算します。交叉表の各セルの期待度数は、(行の合計 × 列の合計)/ 全体の合計
で計算されます。
その後、次の式を使用してカイ二乗統計量を計算します。
ここで、
= カイ二乗統計量\chi^2 = 観測度数O_i = 期待度数E_i は交叉表の全てのセルに対してこの計算を行うことを示しています。\sum
臨界値の決定
次のステップは、カイ二乗分布から臨界値を決定することです。これには、検定の自由度を知る必要があります。独立性のカイ二乗検定の場合、自由度は(行の数 - 1)×(列の数 - 1)
で計算されます。
自由度が分かれば、カイ二乗分布表から臨界値を見つけることができます。臨界値は、帰無仮説を棄却するために検定統計量が超えなければならない数値です。
結果の解釈
最後に、カイ二乗検定統計量を臨界値と比較して、帰無仮説を受け入れるか棄却するかを判断します。
- カイ二乗検定統計量が臨界値よりも大きい場合、帰無仮説を棄却します。これは、観測度数が期待度数と有意に異なることを示し、変数間に有意な関連があることを示唆しています。
- カイ二乗検定統計量が臨界値以下である場合、帰無仮説を棄却できません。これは、観測度数が期待度数と有意に異ならず、変数間の関連がないことを示しています。
Pythonによるカイ二乗検定の実装
Pythonでのカイ二乗検定の実装は非常に簡単です。以下にその例を示します。
まず、必要なライブラリをインポートします。
import numpy as np
import scipy.stats as stats
次に、観測度数を交叉表として定義します。
# Observed data in each category
observed = np.array([[10, 15, 20], [20, 15, 15]])
scipy.stats
のchi2_contingency
関数を使用して、カイ二乗検定を実行します。この関数は、観測された交叉表の観測度数に対するカイ二乗統計量とp値を計算します。
chi2, p, dof, expected = stats.chi2_contingency(observed)
この関数は、次の4つの値を返します。
chi2
: カイ二乗統計量p
: 検定のp値dof
: 自由度expected
: 期待度数(交叉表の周辺合計から計算される)
最後に、これらの値を出力します。
print("Chi-square statistic = ", chi2)
print("p-value = ", p)
print("Degrees of freedom = ", dof)
print("Expected contingency table: \n", expected)
Chi-square statistic = 3.7949735449735464
p-value = 0.14994499194861846
Degrees of freedom = 2
Expected contingency table:
[[14.21052632 14.21052632 16.57894737]
[15.78947368 15.78947368 18.42105263]]
カイ二乗検定の結果に基づいて、次のように結果を解釈できます。
-
カイ二乗統計量
カイ二乗統計量の値が3.79で、これは観測データと仮説が独立している場合に期待される値との間の差を測定しています。 -
p値
p値が0.1499であり、観測データ(またはそれ以上の極端なデータ)が仮説が真である場合に得られる確率です。通常、0.05の閾値( )が使用されます。p値が\alpha よりも小さい場合、帰無仮説を棄却します。この場合、p値は0.05よりも大きいため、帰無仮説を棄却することはできません。つまり、データに基づいて、変数間に有意な関連があるという十分な証拠はないことを示しています。\alpha -
自由度
検定の自由度は2です。これは、交叉表の行数から1を引いた値と、列数から1を引いた値をかけ合わせたものです。 -
期待度数の交叉表
これは、帰無仮説が真である場合に期待される交叉表です。これらの値は、観測データの周辺合計に基づいて計算されます。観測データと比較して、どのセルでもっとも大きな差異があるかを確認することができます。
カイ二乗検定の結果から、対象となる変数間には有意な関連がないことが示唆されます。p値が0.05よりも大きいため、帰無仮説を棄却する十分な証拠はありません。