エクセル関数を使った一元配置分散分析(ANOVA)のやり方【コピペ用テンプレートあり】

はじめに
エクセルには、アドオンの「データ分析」ツールの中に一元配置分散分析ができる機能があります。
下にテンプレート(セルデータサンプル)があるので、
一元配置分散分析とは
分散分析(ANOVA, Analysis of Variance)とは、「3つ以上 の群(グループ)の母平均の間に有意差があるか」を判定する統計的仮説検定の1つです。
分散分析表を作成することで、p値が算出されます。
いつ使うのか?
一元配置分散分析は、以下のような場合に使用します。
- データが量的データである。
- データが3つ以上のグループに分かれている。
- 各群のデータは正規分布に従う(正規性)。
- 各群の分散は等しい(等分散性)。
- 各群のデータは独立である(当分酸性)。
算出値の意味
仮説検定では、 p値 を算出し、 有意水準α と比較を行います。 =F.DIST.RT
関数によって得られます。
p値 と 有意水準α による判定は以下の通りです。
- p値 < α のとき: 各群の母平均の間に有意な差が ある
- p値 ≥ α のとき: 各群の母平均の間に有意な差が ない
「どの群の間に有意差があるか」はわからない
一元配置分散分析では、「いずれか or すべての群の間に有意差があるかどうか」までしかわかりません。
「どの群の間に有意差があるか」を知るには、多重比較検定を行う必要があります。
エクセルでの算出方法
以下の 全セルをコピー
ボタンをクリックし、エクセルの A1
セルに貼り付けると、 J9
セルにp値(下記の場合 0.017212331
)、F14
セルに検定結果(下記の場合 (有意差)あり
)が出力されます。
データを書き換える場合は、 A
~ C
列のデータを書き換えてください。
A | B | C | D | E | F | G | H | I | J | K | |
1 | データ | 有意水準α | 0.05 | ||||||||
2 | X | Y | Z | ||||||||
3 | 105 | 112 | 101 | 偏差平方和 | |||||||
4 | 106 | 114 | 103 | =A2 | =B2 | =C2 | |||||
5 | 105 | 102 | 109 | =DEVSQ(A:A) | =DEVSQ(B:B) | =DEVSQ(C:C) | |||||
6 | 100 | 100 | 99 | ||||||||
7 | 105 | 117 | 95 | 分散分析表 | |||||||
8 | 98 | 105 | 104 | 要因 | 変動平方和 | 自由度 | 平均平方 | F値 | p値 | ||
9 | 97 | 109 | 98 | 群間 | =F11-F10 | =COUNT(A3:C3)-1 | =F9/G9 | =H9/H10 | =F.DIST.RT(I9,G9,G10) | ||
10 | 103 | 100 | 群内 | =SUM(E5:G5) | =COUNT(A:C)-COUNT(A3:C3) | =F10/G10 | |||||
11 | 92 | 全体 | =DEVSQ(A:C) | =COUNT(A:C)-1 | |||||||
12 | |||||||||||
13 | 結果 | ||||||||||
14 | 有意差 | =IF(J9<=F1,"あり","なし") | |||||||||
15 | |||||||||||
16 |
算出手順
エクセルで一元配置分散分析を行うための手順は、以下の4つです。
1. パラメータの設定
有意水準αを 事前 に設定します。
2. 偏差平方和の算出
データセットの各列(群)の偏差平方和を算出します。 DEVSQ()
関数を使用します。
DEVSQ関数
各データとその平均との差(偏差)の二乗の総和を返す。
第2引数, 第3引数, ... を追加することで、計算に用いるデータを増やすことができる(省略可、最大引数255)。例:
=DEVSQ(A:A)
- 第1引数 (
A:A
): 計算に使用する データの範囲 (必須)- 第2,3,...引数 : 評価に追加するデータの範囲(オプション)
3. 分散分析表の作成
データおよび手順2の結果を使用して、分散分析表を作成します。
以下で、各列ごとに作成手順を説明します。
a. 変動平方和の列の作成
この列の各行には、以下の通りに記入します。
- 群間 の行:
=F11-F10
( 群内 の値 - 全体 の値) - 群内 の行:
=SUM(E5:G5)
(手順2のの結果の合計) - 全体 の行:
=DEVSQ(A:C)
(データ全体の偏差平方和)
b. 自由度の列の作成
この列の各行には、以下の通りに記入します。
- 群間 の行:
=COUNT(A3:C3)-1
( 群の数 - 1) - 群内 の行:
=COUNT(A:C)-COUNT(A3:C3)
( 全データ数 - 群の数 ) - 全体 の行:
=COUNT(A:C)-1
( 全データ数 - 1)
c. 平均平方の列の作成
平均平方とは、変動平方和に対応する自由度で割った値です。
- 群間 の行:
=F9/G9
( 群の数 - 1) - 群内 の行:
=F10/G10
( 全データ数 - 群の数 )
d. F値の算出
F値は、平均平方(手順cで算出)の比です。
- F値:
=H9/H10
e. p値の算出
ここまでに算出したF値と、データの自由度を F.DIST.RT()
関数に使い、p値を算出します。
- p値:
=F.DIST.RT(I9,G9,G10)
F.DIST.RT関数
F分布で、入力したF値の右側の確率を返す。
例:
=F.DIST.RT(I9,G9,G10)
- 第1引数 (
I9
): F値(必須)- 第2引数 (
G9
): 分布の自由度の値1(必須)- 第3引数 (
G10
): 分布の自由度の値2(必須)
4. 結果の表示
設定した有意水準と、算出したp値を比較した結果を表示します。 IF
関数を使用しています。
IF関数
第1引数の条件式を基に、返す結果を分岐させる。
- 第1引数 = TRUEのとき: 第2引数の値を返す
- 第1引数 = FALSEのとき: 第3引数の値を返す
例:
=IF(J9<=F1,"あり","なし")
- 第1引数 (
K3<=K2
): 分岐の条件式(必須)- 第2引数 (
あり
): TRUEのときに返す値(必須)- 第3引数 (
なし
): FALSEのときに返す値(オプション)