零細米粉研究員の備忘録

米粉に関することなどをたまに書いていきます

統計ソフト「R」を用いて多重比較し、アルファベットを付ける方法

試料間で多重比較を行い、a, b, c…のアルファベットを付ける(別のアルファベットは有意差ありを示す)方法が分かったので書いてみる。

統計ソフト「R」を用い、「multcomp」パッケージの、「cld」というコマンドを用いる。

RはCRANのサイト等からダウンロードしてインストールし、起動後に「パッケージ」→「パッケージの読み込み」を選択して、「multcomp」をダウンロードしておく。

 

測定した実験データを下のようにエクセルにコピーする。

試料名や測定項目(この場合アミロース含量)を1行目に書いておくようにしている。

f:id:aonori1118:20150102001819j:plain

デスクトップにcsvファイルで保存しておく。

 自分の場合、名前は「Book1.csv」のままにしている。

 

ここまでしたら、以下のコマンドを入力する。

太字がコマンドであり、色を付けたのは試料名や測定項目名などに応じて変更するところを示す。

「#」以下は説明文

 

 > library(multcomp)  

      # パッケージ「multcomp」の読み込み

> setwd("C:/Users/Aonori/Desktop") 

     # 作業ディレクトリのデスクトップへの変更

     #\」ではなく「/」を用いることに注意

> d <- read.csv("Book1.csv", header=T) 

     # CSVファイルの読み込み

     #「header=T」は、1行目(今回はSample、Amylose)にラベルがあることを示す

 

> df <- data.frame(S = d$Sample, A = d$Amylose)
     # データフレームの作成。以後の解析のためには、読み込んだ行列式をデータフレームに変換する必要があるらしい

     # 上の「S」「A」は、フレームにおける列の名前。自分は書く量を減らすために1文字にしている

> ichi <- aov(A ~ S, data=df)

     # 一元配置分析
> taju <- glht(ichi, linfct = mcp(S = "Tukey"))

     # 多重比較
> cld(taju, level = 0.05, decreasing = TRUE)

     # アルファベットの付与(試料数が多いと時間がかかる)

     #「decreasing = TRUE」で、最も数値の高いサンプルが「a」となる
     #これは有意水準を5%としている。1%とするなら、level=0.05を0.01にする

 

以上のコマンドを打ち込んで問題がなければ、次のように出力されるはずである。

 Hokuriku_193   Hoshiyutaka   Koshihikari   Mizuhochikara   Takanari 

                  "d"                   "a"               "c"                      "b"              "c"

 

なぜこのようなことをすることになったのかというと、論文を書いたので見てもらった時に、試料間で多重検定を行い、有意差があるかどうかを書き加えるよう指摘があったためである。

値の横にアルファベットを書き、別の文字が書かれている試料間で有意差があるというのをしてみることになったのだが、これまでは数点での比較だったので特別なソフトを利用する必要はなかった。

しかし、今回は試料数は20点以上あり、測定項目が10くらいあるので、これで全部アルファベットをつける作業は異常に面倒であることが分かった。

知り合いに聞いてみたら、「JMP」という統計ソフトを使っているらしいが、10万円以上すると聞いて購入を断念した。エクセルではこういうのを自動で行う関数はないらしい

 

最近、統計ソフト「R」の使い方の基礎を教わったので、なんとかこれでできないものかと思い、 Rに詳しい人に自動的に計算する方法について聞いてみた。

そうしたところ、その人も知らなかったようだが、ありがたいことにわざわざ調べてくれて、multcompパッケージのcldというコマンドを用いればよいことを教えてもらった。

 

いくつかのコマンドを書かないといけないのが面倒なのと、それぞれの計算に5~10分くらい時間がかかってしまうが、それでも自動的に計算してくれるのはありがたい。

なんといっても、Rは無料であるのは助かる。

開発者に感謝したい。