高知と農業、あと哲学とか

農業のこと, 高知のことなどなど. ゆるゆる更新する雑記ブログ

【スポンサーリンク】

R で分散分析 (一元配置)・多重比較を行う方法

f:id:yzxnaga:20190129194444p:plain

本記事では, R で分散分析 (一元配置) を行う手順を紹介します.

分散分析とは

そもそも, 分散分析とは一体どういった統計的手法なのでしょうか.

2 つのグループの平均を比較するときは, t 検定を行いますが, 3 つ以上のグループの平均を比較するときに, t 検定を用いることはできません. 3 つ以上のグループの平均値の差の検定は, 分散分析という方法を用います.

たとえば以下のような表があり, これが何かの調査結果だとします. 何でもいいんですが, x が花の品種 a, b, c で, y が種子の重さにしましょう. a, b, c の種子重さには, 差があるでしょうか.

f:id:yzxnaga:20190129194028p:plain

検定の手順ですが, まずは, 統計解析の基本である, 帰無仮説, 対立仮説を立てます.

ここでは, a, b, c の母平均が等しいかどうかを検定しますので,

  • 帰無仮説 H0: μ1 = μ2 = μ3
  • 対立仮説 H1: 少なくとも 1 つの母平均が他の母平均と異なる

というふうになります.

続いて有意水準を設定します. 慣例に倣って,

としましょう.

続いて, 使用する統計的手法の決定ですが, 今回は, 要因が 1 つ (品種だけ) ですので, 一元配置分散分析を行うことになります. これが, 要因が 2 つになる, たとえば「品種と施肥量によって, 種子の重さは変化するのか?」になると, 二元配置分散分析になります.

R で一元配置分散分析

R で一元配置分散分析をする関数は「oneway.test」です.

たとえば上の表を csv ファイルか何かで作り, data1 として R へ読み込んだ場合,

oneway.test(y ~ x, data=data1, var.equal=T)

と入力すれば, 結果を得ることができます.

結果は,

One-way analysis of means
data: y and x
F = 4.5688, num df = 2, denom df = 18, p-value = 0.02485

と表示されます.

この p-value が α=0.05 より小さければ, 帰無仮説が棄却され, 品種間の種子の重さに差があるということになります. この場合は「差がある」ということになりますね.

なお,

summary(aov(y ~ x, data=data1))

で, 分散分析表を得ることができます.

Df Sum Sq Mean Sq F value Pr(>F)
x 2 1.637 0.8186 4.569 0.0248 *
Residuals 18 3.225 0.1792

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

多重比較: Tukey HSD 法

しかしこれでは, どの品種とどの品種の間に差があるかまではわかりません. それを行うのが多重比較です.

多重比較の方法はさまざまありますが, ここでは, Tukey の HSD 法を紹介します.

R で Tukey HSD 法を実行するには,「TukeyHSD」関数を使えば良いわけですが (そのまんま過ぎる…), 今まで使用してきた data1 を用いると,

TukeyHSD(aov(y ~ x, data=data1))

となります.
これで,

Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = y ~ x, data = data1)
$x
diff lwr upr p adj
b-a -0.61000000 -1.1874374 -0.032562556 0.0374637
c-a -0.57285714 -1.1502946 0.004580301 0.0520448
c-b 0.03714286 -0.5402946 0.614580301 0.9852646

という結果を得ることができます.
p adj (もっとも右の値) をみると, a-b 間しか, α=0.05 を下回っていませんね. ということは, a-b 間には, 平均の差はあります = 有意な差はありますが, a-c 間, b-c 間にはないということになります. ただ, a-c 間は, p 値 = 0.052 ですので,「ない」と切り捨てるには微妙な値ではあります.

ところで, 論文などを読むと, 多重比較の有意差を示す表に, アルファベットがついていることがあります. それについては, 以下の記事を参考にしてください.

www.xtraetc.xyz

【スポンサーリンク】