LoginSignup
11
12

More than 3 years have passed since last update.

統計検定のための、Rの出力結果からわかること(分散分析編)

Posted at

はじめに

今回は「回帰分析編」の続編で分散分析編(一元配置分散分析)です。
Rの出力結果と分散分析表の見方、分散分析で使うF分析についてまとめています。

お題

平成24年の生しいたけの生産量を地域ごとに整理。(単位:t)
「生産量は地域ごとに差があるといえるかどうか?」を分散分析で考察します。
使用するデータは以下とします。

1 2 3 4 5 6 7 8 9
北海道 / 東北 7963 284 5093 752 3112 1255 1285
関東 687 2439 3966 933 533 245 271
中部 2285 1207 911 257 180 879 1875 1517 731
近畿 895 485 229 142 1094 402 1084
中国 189 1918 1082 949 148
四国 8154 343 585 432
九州 / 沖縄 682 95 3399 1100 1481 1871 1048 11

分散分析の予備知識

出力結果を見る前に、分散分析の用語と考え方を簡単に整理しておきましょう。

用語

分散分析に出てくる用語、因子水準についてまとめておきます。

用語 意味 このデータでは
因子 データの値に影響を与える要因 「地域」が該当し、因子数は1
水準 因子の種類 「北海道/東北」「関東」「中部」「近畿」「中国」「四国」「九州/沖縄」が該当し、水準数は7

データの値に影響を与える因子が1つの場合の分散分析を、一元配置分散分析と呼びます。
因子が2つであれば、二元配置分散分析。3つ以上では、多元配置分散分析と呼びます。

なお、出力結果に「Residuals(残差)」という項目があります。
回帰分析でも登場しますが、誤解を恐れずに言えば、分散分析では偶然性(誤差)を示す値として意識しておくと理解が進むかと思います。

考え方

今回のデータをから考えられることは、次のどちらかです。

  • 生産量に「地域」ごとの差はありそうだ。(水準間による差がある
  • 生産量の差があるのは偶然であり、地域ごとの差があるとは言えない。(残差による差であるとは言えない

その判断を行うための方法が分散分析です。(F分布による検定)
このデータでは「水準間の差が偶然性を示す残差より大きければ」地域による差がある。と判断できます。

出力結果

分散分析の結果をanova関数で出力すると下記のようになりました。

出力結果
Analysis of Variance Table

Response: production
          Df    Sum Sq Mean Sq F value Pr(>F)
area       6  24898858 4149810  1.3977 0.2394
Residuals 40 118760199 2969005   

分散分析表に当てはめると次のようになります。

平方和 自由度 平方平均 F値 Pr(>F)
(F検定のp値)
地域 24898858 6 4149810 1.3977 0.2394
残差 118760199 40 2969005

統計検定の出題では、Rの出力結果ではなく、分散分析表で出題される場合もあります。
Rの出力結果と分散分析表の両方の見方を確認しておくと良いです。

以下、詳細を見ていきます。

Df(自由度)

算出方法 出力例では
水準間の自由度 水準数 − 1 7 − 1 = 6(地域数 − 1)
残差の自由度 データ数 − 水準数 47 − 7 = 40

なお、2つの自由度より「出力結果には無いデータ数」が47であることもわかります。
算出方法は逆算の「水準間の自由度 + 残差の自由度 + 1」です。

Sum Sq(平方和)

平方和からは「データの標本分散(不偏分散)」がわかります。

算出方法 出力例では
データの標本分散
(不偏分散)
全平方和 ÷ (データ数 − 1) 36774877 ÷ (47 - 1) = 799453.8478

全平方和」は下記で算出します。

算出方法 出力例では(areaのSum Sq ÷ ResidualsのSum Sq)
全平方和 水準間平方和 + 残差平方和 24898858 + 11876019 = 36774877

Mean Sq(平方平均)

平方和 ÷ 自由度 で算出される値です。

算出方法 出力例では(Sum Sq ÷ Df)
水準間の平方平均 水準間の平方和 ÷ 自由度 24898858 ÷ 6 = 4149810
残差の平方平均 残差の平方和 ÷ 自由度 118760199 ÷ 40 = 2969005

F value(F値)

水準間の平方平均を残差の平方平均で割ることで算出される値です。

算出方法 出力例では(areaのMean Sq ÷ ResidualsのMean Sq)
F値 水準間の平方平均 ÷ 残差の平方平均 4149810 ÷ 2969005 = 1.3977

この値はF検定のF値として扱います。

Pr(>F)(F検定のP値)

Pr(>F)は、F検定統計量のF値をp値に置き換えたものです。
F検定のp値として扱います。

F検定

分散分析ではF分布によるF検定を行います。

Pr(>F)(F検定のP値)を使ったF検定

想定する仮説は

  • 帰無仮説:「すべての水準間で母平均が等しい」
  • 対立仮説:「少なくとも1組の水準間で母平均が異なる」

であり、今回のお題では下記のようになります。

  • 帰無仮説:「各地域の生産量の平均は等しい」
  • 対立仮説:「少なくとも1つの地域で生産量の平均は、他の地域の平均と異なる」

F検定の有意水準を5%とした場合、p値 < 0.05であれば帰無仮説は棄却され、対立仮説が採択されます。
また対立仮説の採択で「少なくとも1地域で生産量の平均の95%の信頼区間は他の地域と重なりがない」こともわかります。

出力例では、0.2394 > 0.05で帰無仮説は棄却されず、「各地域の生産量の平均は等しい」となり、「生産量の差があるのは偶然であり、地域ごとの差があるとは言えない」と判断します。

F value(F値)を使ったF検定

F値を使ったでも想定する仮説や解釈は、Pr(>F)(F検定のP値)を使ったF検定と同じです。

違いはF検定の有意水準を5%とした場合、F値 > F分布上側5%の値であれば帰無仮説は棄却され、対立仮説が採択されます。

出力例では、自由度(6,40)のF分布上側5%の値を確認し、1.3977 < 2.421 となるので帰無仮説は棄却されず、「各地域の生産量の平均は等しい」となり、「生産量の差があるのは偶然であり、地域ごとの差があるとは言えない」と判断します。

おわりに

分散分析は計算が面倒なので、Rのanova関数で結果が出力できるのは助かります。
ひとまず、まとめておきたいことは一通り書けたとは思いますが、間違いや加筆できる内容があれば、随時更新していきます。

また、お時間のある方は「統計検定のための、Rの出力結果からわかること(回帰分析編)」もお読みいただけますと幸いです。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12