手を動かして学ぶ!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}) は全体平均値
計算手順
- 各群の平均から全体平均を引く
- その差を二乗する
- すべてのグループについて足し合わせる
- グループの人数 (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)**は、各データとその所属グループの平均との差を二乗して合計したものです。
これは「グループ内のばらつき」を示します。
計算手順
- 各データ点と自分のグループ平均の差を求める
- その差を二乗する
- グループごとに二乗和を計算
- 全グループの合計を求める
実際の計算
-
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