ほくそ笑む

R言語と統計解析について

やったー!僕にもANOVAの原理がわかったよ!

以前のエントリにも書いたけど、マイクロアレイ発現解析は基本的に2つのグループ間での発現量の比較をします。例えば「病気の人 v.s. 健康な人」とか「薬を飲んだ人 v.s. 飲んでない人」とかです。こういうときは2群間検定(t検定とか)を使えば発現量の差が有意な遺伝子を特定できます。
しかし、たまに癌のグレード(重症度)とかのデータでコントロール(健常者)のデータが無いときがあります。このとき比較したいのは「グレード1 v.s. グレード2 v.s. グレード3」という、3つのグループ間で発現量を比較することになります。
3つのグループ間での発現量を比較するときは、t検定のような2群間比較の手法を「グループ1 v.s. グループ2」「グループ2 v.s. グループ3」「グループ3 v.s. グループ1」のように複数回行えばできるのですが、検定には間違う確率が常に付きまとうので、何度も検定を繰り返すうちに間違う確率がどんどん増えてしまいます。
そこで、便利なのが ANOVA(analysis of variance,分散分析)です。
ANOVA は、なんと複数のグループ間で発現量に差があるかどうかを1回で検定できるという優れモノです。
僕はこれまで「ANOVA便利やなー(^p^)」とか言いながらアホのように使ってきましたが、その原理については何も知りませんでした。
今回、この本を読んで、ANOVAの原理がすごくわかりやすく説明してあったので紹介したいと思います。

ANOVA の原理

あるデータに対して、平均値からの差のことを偏差といいます。例えば [10,15,20,25,30] というデータがあったとして、平均は 20 なので、10 の偏差は -10, 15 の偏差は -5, 30 の偏差は +10 という感じです。偏差平方和というのは、すべての偏差を2乗して足したものです。上の例でいけば偏差平方和は 100+25+0+25+100=250 ということになります。
ANOVA では、2つの偏差平方和を計算します。一つは、全体の平均からの偏差の平方和(SSY)で、もう一つは群平均からの偏差の平方和(SSE)です。
この2つの偏差平方和の比(SSY/SSE)が十分大きいとき、グループ間で有意な差があるとするのが ANOVA の原理です。

図で説明

極端な2つの場合について図で説明したいと思います。
まずは、グループ間に有意な差が無い場合について。下のグラフの左5つのデータがグループA、まんなか5つがグループB、右の5つがグループCとします。グループ間に有意な差が無い場合、全体の平均からの偏差平方和と、それぞれの群の平均からの偏差平方和では、それほど違いはありません。

次に、グループ間に有意な差がある場合。この場合は、全体の平均からの偏差平方和と、それぞれの群の平均からの偏差平方和で大きな差がでてきます。

つまり、全体の平均からの偏差平方和と群平均からの偏差平方和との比を見れば、グループ間の平均値に差があるかどうかを判定できるというわけです。これが ANOVA の原理です。

まとめ

本当のところは偏差平方和を自由度で割った、1自由度あたりの群間変動と1自由度あたりの群内変動の比がF分布に従うことから検定できるのですが、おおざっぱに言うと上の説明がわかりやすいと思います。
原理がわかったので、これからは ANOVA を使うとき、「ANOVA便利やなー(^p^)」ではなくて「ANOVA便利やろ?(`・ω・´)」という感じで使って行けるのではないかと思います。

一般線形モデルによる生物科学のための現代統計学―あなたの実験をどのように解析するか

一般線形モデルによる生物科学のための現代統計学―あなたの実験をどのように解析するか