💡

手を動かして学ぶ!Excelで学ぶ一元配置分散分析の基本

に公開

【Excelで完全理解】1元配置分散分析を手計算してみる

はじめに

「1元配置分散分析(One-way ANOVA)」という言葉、統計の授業やデータ分析で見かけたことはありませんか?

でも、

  • 計算の仕組みがよく分からない
  • RやPythonで出せるけど、どうしてその結果になるかモヤモヤしている
  • 手を動かして理解したい!

そんなあなたに向けて、Excelで1元配置分散分析を手計算する方法を解説します。

この記事では、数式や専門用語をなるべく避けながら、「自分の手で計算できる」をゴールに解説していきます。


1. 1元配置分散分析とは?

**1元配置分散分析(One-way ANOVA)**は、**複数のグループの平均値に有意な差があるか?**を調べるための統計手法です。

📚 たとえばこんなときに使う:

  • 「A、B、C の3つの学習法を試したとき、テストの点数に違いがあるか?」
  • 「3種類の肥料で育てた作物の平均収穫量に差があるか?」

🎯 仮説の立て方

分散分析では、次のような2つの仮説を立てます。

  • 帰無仮説(H₀):すべてのグループの平均値は等しい
  • 対立仮説(H₁):少なくとも1つのグループの平均値は他と異なる

💡 ポイント

分散分析では、単に「平均が違うか」を調べるだけでなく、
「ばらつき(分散)に基づいて平均の違いが偶然かどうか」を判断します。


2. 例題データ

今回は、次のような架空のテスト結果データを使って、1元配置分散分析を行ってみます。

🧪 学習法別テスト結果(各3名)

グループ 1人目 2人目 3人目
A 65 70 68
B 75 78 72
C 60 62 58

このデータは以下のような前提で作られています:

  • 各グループに属する人数は3人
  • 各数値は、テストの点数とします
  • グループ A/B/C は異なる学習法を試した受験者グループです

🎯 目的

この3つのグループ間で、平均点に統計的に有意な差があるのか? を分散分析で確認してみましょう。


3. 手計算ステップ(Excelで実装)

※小数点以下の表記で実際の計算と少しずれている部分もあります。

ステップ①:各群の平均と全体平均を求める

まずは、各グループの平均値と、全体の平均値を計算します。

グループ データ 平均値の計算式 平均値
A 65, 70, 68 =AVERAGE(65,70,68) 67.67
B 75, 78, 72 =AVERAGE(75,78,72) 75.00
C 60, 62, 58 =AVERAGE(60,62,58) 60.00

次に、全体の平均(グランド平均)を計算します。

=AVERAGE(65,70,68,75,78,72,60,62,58)

ステップ②:群間平方和(SSB)の計算

**群間平方和(SSB: Sum of Squares Between)**は、各グループの平均と全体平均の差を使って、グループ間のばらつきを表します。


公式:

SSB = n × Σ (X̄ᵢ − X̄)²

  • (n) は各グループの人数(今回の例では3)
  • (k) はグループ数(今回の例では3)
  • (\bar{X}_i) はグループiの平均値
  • (\bar{X}) は全体平均値

計算手順

  1. 各群の平均から全体平均を引く
  2. その差を二乗する
  3. すべてのグループについて足し合わせる
  4. グループの人数 (n = 3) をかける

実際の計算

グループ グループ平均 diff = (xi - GrandMean) diff^2
A 67.67 67.67 − 67.56 = 0.11 0.01234
B 75.00 75.00 − 67.56 = 7.44 55.419753
C 60.00 60.00 − 67.56 = -7.56 57.086419

合計に人数 (n = 3) をかけて、

SSB = 3 * 112.5185 = 337.5555


ステップ③:群内平方和(SSW)の計算

**群内平方和(SSW: Sum of Squares Within)**は、各データとその所属グループの平均との差を二乗して合計したものです。
これは「グループ内のばらつき」を示します。


計算手順

  1. 各データ点と自分のグループ平均の差を求める
  2. その差を二乗する
  3. グループごとに二乗和を計算
  4. 全グループの合計を求める

実際の計算

  • A群(平均 67.67)
    (65 - 67.67)^2 + (70 - 67.67)^2 + (68 - 67.67)^2 = 7.11 + 5.43 + 0.11 = 12.65

  • B群(平均 75.00)
    (75 - 75)^2 + (78 - 75)^2 + (72 - 75)^2 = 0 + 9 + 9 = 18.00

  • C群(平均 60.00)
    (60 - 60)^2 + (62 - 60)^2 + (58 - 60)^2 = 0 + 4 + 4 = 8.00


群内平方和の合計

SSW = 12.65 + 18.00 + 8.00 = 38.65


ステップ④:自由度と分散の計算

分散分析では、「自由度」と「分散(平均平方)」を計算します。


指標 計算方法 値
グループ数(k) — 3
全データ数(N) — 9
群間自由度(df₁) k − 1 3 − 1 = 2
群内自由度(df₂) N − k 9 − 3 = 6
群間分散(MSB) SSB ÷ df₁ 337.77 ÷ 2 = 168.89
群内分散(MSW) SSW ÷ df₂ 38.65 ÷ 6 = 6.44

ポイント

  • 自由度は、それぞれのばらつきを評価するときに「使える情報の量」を意味します。
  • **分散(MSB、MSW)**は平方和を自由度で割った値で、平均的なばらつきを表します。

ステップ⑤:F値の計算

分散分析の中心となる指標が F値 です。

F = MSB / MSW = 168.89 / 6.44 ≒ 26.23

  • MSB(群間分散)が大きく、MSW(群内分散)が小さいほど、グループ間の平均値の差が有意である可能性が高まります。

ステップ⑥:p値の計算(Excel関数)

Excelでp値を計算するには、以下の関数を使います。

=F.DIST.RT(26.23, 2, 6)
  • 第一引数:計算したF値

  • 第二引数:群間自由度(df₁)

  • 第三引数:群内自由度(df₂)

計算結果は、p ≒ 0.0005となり、通常の有意水準0.05を下回るため、帰無仮説は棄却されます。


4. ANOVA表(分散分析表)

これまでの計算結果を、分散分析の標準的な形式である「ANOVA表」にまとめましょう。

要因 自由度(df) 平方和(SS) 分散(MS) F値 p値
群間 2 337.77 168.89 26.23 0.0005
群内 6 38.65 6.44
合計 8 376.42

用語の対応関係

  • SS(Sum of Squares):平方和
  • df(Degree of Freedom):自由度
  • MS(Mean Square):分散(平方和 ÷ 自由度)
  • F値:群間分散 ÷ 群内分散
  • p値:F値が偶然出る確率

📷 ExcelでのF値とp値の計算例
分散分析表


この表を見れば、F検定の結果を一目で確認できます。


5. 結論と考察

🎯 結論

今回の分散分析では、F値が 26.23、p値が 0.0005 となりました。

これは、通常の有意水準(例:0.05)よりも十分に小さいため、

帰無仮説(グループ間に差はない)を棄却
→ グループ間には有意な差がある

と結論できます。


🤔 考察

この結果からわかること:

  • 学習法A・B・Cのいずれかのグループは、他と異なる成績を出している可能性が高い
  • ただし「どのグループとどのグループに差があるか」は、分散分析では特定できません

そのため、次のような多重比較検定を行う必要があります:

  • TukeyのHSD検定
  • Bonferroni法 など

7. おわりに

今回は、Excelだけを使って1元配置分散分析(One-way ANOVA)を手計算する方法を、例題付きで丁寧に解説しました。


Discussion