Excelによる分散分析〜一元配置
例えば,このようなデータを分析してみましょう.これは男女100人の身長,体重のデータ(仮想)です.以下の様にExcelの表の上にデータが並んでいたとします.
※データはこの後にもならんでいます.
![]()
データは,性別,国籍,身長,父親の身長の順にならんでいます.ここでは国籍(つまり民族)の違いによって身長には違いがあるかを調べてみましょう.
ただし,このままのデータの並びでは分散分析に適さないので,以下のように並び替えをします.メニューバーの「データ(D)」→「並べ替え」などを使って国毎にソートすると良いでしょう.
![]()
でもっていよいよ分散分析を行ないます.今回は一元配置の分散分析を行ないます.
【手順】
の順で選択をすると,以下のダイアログが現れます.そこで,例えば次のようにデータ範囲,出力範囲を設定し,「OK」ボタンをクリックします(図の例ではそれぞれの国の男性についてのみ分散分析を試みています).
- メニューバーの「ツール(O)」
- 「分析ツール(D)」
- 「一元配置の分散分析」
- 棄却域の確率(α(A))は5%(0.05)となっています.
- 平均値の検定と異なり,帰無仮説を設定する項目(平均値の差)がありません.分散分析では,常に各グループの平均が等しいことが帰無仮説となります.
![]()
(出力結果)
実行すると以下の分析結果が出力されます.
![]()
「概要」ではそれぞれのグループ毎に平均と分散が計算されます.「分散分析表」では,グループ間,グループ内の自由度,分散が出力されます.「観測された分散比」というのがいわゆる「F値」になります.
(1) P値<実験者が設定する棄却域の確率 帰無仮説を棄却 (2) F 境界値<観測された分散比 帰無仮説を棄却 この分析における帰無仮説は「国籍にかかわらず身長の平均は等しい」という内容です.検定結果の解釈は,
したがって,例ではこの仮説は正しくないことが分かります.つまり,国籍によって身長の平均には差があることが分かりました.
- P値「3E-6」は1%や5%といった棄却域と比較して十分小さいです.
- 観測された分散比「14.54」という数値と「F境界値」(5%)を比べると分散比(F値)が上回っています.
Excelによる分散分析〜ニ元配置
ここでは,身長に影響を与える要因を性別と父親の身長の2つを考えます.2つの要因の組み合わせごとに得られた測定値の数を「繰り返し」の数と呼びます.
この例では,性別(2種),父親の身長(2種)の4つの条件でデータを分類します.残念ながらExcelでは,繰り返しの数が等しいデータ(バランスデータ)による2元配置の分散分析しか対応していません.そこで,サンプルデータを上記の4分類についてそれぞれ15人ずつ選びました.
- 元データを父親の身長(昇順)でソートし,父親の身長によりサンプルを2分割し,それぞれ1(低いほう),2(高いほう)とラベルを付ける.
- 性別と父親の身長により,以下のように15人ずつの身長を取り出してデータセットを作成する.
女性 男性 低い データ データ 高い データ データ 画面にもあるように,グループを識別するラベルも必要になります.わざと色を付けたのですが,各グループの並び方が分かるでしょうか?
![]()
【手順】
の順で選択すると画面のようなダイアログが現れます.画面にあるように,範囲(ラベルの部分も含めます),1標本あたりの行数も入力(この例では15)します.
- メニューバーの「ツール(O)」
- 「分析ツール(D)」
- 「繰り返しのある二元配置」
(出力結果)
分散比,P値の見方は1元配置と同じです.標本は父親の身長による効果,列は性別による効果,交互作用は両者による効果になります.結果からはどちらの分類でも差が出ていることが分かります.
![]()
Excelの関数で算出する分散分析
上記のように「分析ツール」を使っても良いのですが,算出した統計量をさらに次の分析に移したいときや,マクロを書くときなどには「分析ツール」よりも関数を用いたほうが便利です.
F分布に従う確率 ftest(配列1,配列2) F分布の値 fdist(値,自由度1,自由度2) F分布の逆関数の値 finv(確率,自由度1,自由度2) ■ ftest関数は検定結果として帰無仮説が棄却できる確率(P値)を算出します.けど,これだと2つのグループに対してしか機能しないような気がします.>MS社様
■ fdist関数はF分布表の代わりに用います.算式通りに計算して得られたF値を指定することで帰無仮説が棄却できる確率(P値)を求めることができます.
自由度1は分子,自由度2には分母のものを入力します.■ finv関数もF分布表の代わりに用います.棄却域(何%の有意水準で…というときの数値)と自由度を指定することで,そのときのF値(境界値)を求めることができます.
自由度1は分子,自由度2には分母のものを入力します.