メインコンテンツへスキップ

カイ二乗検定 — 適合度と独立性

サイコロの公正さも、出身地と血液型の独立性も、同じ式が答える。観測値と期待値のズレを 1 つの数字に圧縮する道具。

I.06 / CHI-SQUARED TEST

カイ二乗検定 — ズレを数値化する

ここまでは「平均」の検定だった。でも世の中にはカテゴリしかないデータがある — アンケートの選択肢、サイコロの出目、病気と喫煙の組み合わせ。こういうデータの「ズレ」を測るのが カイ二乗検定。期待からのズレが大きいほど、χ² 統計量が光る。

適合度検定は「観測されたカテゴリ分布は、理論分布と合っているか?」を調べる。サイコロが公正かどうか、が典型例。
独立性検定は「2つのカテゴリ変数は独立か?」を調べる。クロス集計表の各セルで期待度数とのズレを計算し、χ² = Σ (O−E)²/E を合計する。
なぜ E で割る? → 「期待10人に対して2人のズレ」と「期待1000人に対して2人のズレ」は重みが違う。E で割ることで相対的なズレに揃えている。
どちらも χ²分布に従う統計量を使い、右裾の面積が p 値になる。自由度は適合度なら k−1、独立性なら (r−1)(c−1)。

実験ガイド — 適合度検定
  1. Step 1: 「公正なサイコロ」で ▶ 自動試行 → n が増えても χ² は小さく、p値が大きいまま。
  2. Step 2: 「イカサマ」に切り替えて自動試行 → χ² が急上昇し、p値が α 以下に。不正検出の瞬間。
  3. Step 3: α を 0.01 に下げると判定が厳しくなる。少しのズレでは棄却されない。

▶ ① 適合度検定 — サイコロは公正か?

🎲 左側のバーをクリックして出目を1つずつ追加(Shift+クリックで−1)
試行回数 n 0
検定統計量 χ²
自由度 df
p値
判定

// ここで使われる公式

具体例で読む(サイコロを120回振った)
・公正なサイコロなら各目が E=20 回ずつ出るはず
・実際の結果:[25, 17, 15, 23, 22, 18]
・1の目:(25−20)²/20 = 1.25
・2の目:(17−20)²/20 = 0.45 ...と全部足す → χ² = 3.80
・df=6−1=5 で α=0.05 の臨界値は 11.07。3.80 < 11.07 → 棄却できない。公正と矛盾しない

各パーツの役割
・O:観測度数(実際に数えた値)
・E:期待度数(理論が正しいなら「こうなるはず」の値)
・(O−E)²/E:単純に(O−E)²だと、もともと大きいカテゴリほどズレが大きく出て不公平。E で割って「期待に対する相対的なズレ」にする
・全カテゴリ分を合計 → 1つの数字で「全体のフィット具合」が分かる

実験ガイド — 独立性検定
  1. Step 1: 左上のセルだけクリックして偏りを作る → χ² が跳ね上がり、独立性が棄却される。
  2. Step 2: ↺ リセットして各セルを均等にクリック → χ² は小さいまま。偏りなし=独立。
  3. Step 3: α を変えて「どこまでの偏りなら独立と判定されるか」を確認。

▶ ② 独立性検定 — 2変数は独立か?

左側のセルをクリックして観測値を+1(Shift+クリックで−1)
総数 n 0
検定統計量 χ²
自由度 df
p値
判定

// ここで使われる公式

具体例で読む(性別×喫煙の2×2表)
・男性200人中60人が喫煙、女性300人中60人が喫煙、計500人
・「性別と喫煙が無関係(独立)」なら、男性の喫煙者の期待値は?
・E = 200×120/500 = 48人 ← 行合計×列合計÷総数
・「もし独立なら48人のはずなのに実際は60人」→ この差が大きいほど「独立じゃなさそう」

自由度 = (r−1)(c−1) の直感
・2×2 表:行合計と列合計が決まれば、1つのセルの値を決めると残り3つは自動的に決まる → df=1
・3×4 表:df = 2×3 = 6

注意:期待度数が5未満のセルが多いと
・χ²近似が不正確になる。目安として「Eが5未満のセルが全体の20%以上」なら、小頻度向けの正確検定(exact test)を使うか、カテゴリを統合する

// 適合度検定 と 独立性検定 — 何が違う?

どちらも χ² = Σ(O−E)²/E を使うけど、問いが違う:

  • 適合度検定:「このサイコロは公正か?」「このデータは正規分布に従うか?」→ 1つの変数を理論分布と比較
  • 独立性検定:「性別と喫煙に関連はあるか?」→ 2つの変数の関連を調べる

期待度数 E の計算方法も違う:

  • 適合度:理論から直接計算(サイコロなら n/6)
  • 独立性:データの行合計×列合計÷総数(独立を仮定して逆算)

// 常に「右裾だけ」を見る理由

χ²の値は「ズレの二乗の合計」なので、必ず 0 以上。ズレが大きいほど右に大きくなる。

  • χ² が大きい → 理論と合わない → 棄却
  • χ² が小さい → 理論とよく合っている → 棄却しない
  • だから棄却域は常に右裾のみ。左側の棄却域はない

// よくある誤解

❌「χ²検定で有意 = 因果関係がある」

「関連がある」と言えるだけ。「喫煙と肺がんに関連」≠「喫煙が原因」。背後に交絡因子がある可能性は排除できない。

❌「適合度も独立性も自由度は k−1」

適合度は k−1 だけど、独立性は (r−1)(c−1)。2×3 表なら df=2 であって df=5 ではない。

❌「χ²値が小さいほうが良い結果」

χ²が小さいのは「データが理論とよく合っている」だけで、「良い・悪い」の問題ではない。検定の目的は「合っているか疑わしいか」を判定すること。

// よく出会う形

χ²検定にまつわる場面では、繰り返し同じ部品が顔を出します。

  • 自由度の形:独立性検定では (r−1)(c−1) が必ず出てくる。2×3 表なら (2−1)(3−1) = 2 という形に収まる
  • 期待度数の形:「行合計 × 列合計 ÷ 総数」が分母に総数を置く絵で、独立を仮定した世界での期待値として現れる
  • χ² の組み立て方:各カテゴリの (O−E)²/E を足し上げる形。「ズレの二乗を期待値で割って合計」という同じ手順が、適合度でも独立性でも繰り返し顔を出す
  • 期待度数5未満の場面:小頻度向けの正確検定(exact test)に切り替えるか、カテゴリを統合する形に持ち込む、という分岐がついて回る

χ²臨界値はインタラクティブ確率分布表で自由度を変えながら確認できる

次は —3群以上を一度に比較する I8 分散分析(ANOVA)