菌叢解析結果の比較 ( 2 ) バートレット検定

今回はphylumごとのrelative abundanceの分散が各群で等しいのかどうかを判定します。前回の記事でバートレット検定をすれば良いということはわかりました。バートレット検定はこのサイトによると

バートレット検定は、多群のデータの等分散性または分散の一様性、すなわち、各データの分散が等しいかどうかを検定する手法のひとつである。2群間の等分散性を検定するF検定 (F-test) に対し、バートレット検定は複数群のデータの等分散性を扱う。イギリスの統計学者、Maurice Stevenson Bartlettによって考案された。データ間の等分散性は分散分析をはじめとする多くの検定で要求される。Rでは、コマンド ‘bartlett.test’ にて実行することができる。

とのことです。では早速やっていきましょう。今回はこのデータセットを用います。(実際のデータの値をいじったのでどこかで不具合が出るかも…)

Test,Subject,Bacteroidetes,Firmicutes,TM7
A,1,0.07796,0.85083,0.00003
A,2,0.01425,0.85460,0.00003
A,3,0.02437,0.82825,0.00000
B,1,0.15056,0.78085,0.00000
B,2,0.02434,0.84956,0.00001
B,3,0.01166,0.65960,0.00001
C,1,0.26662,0.70874,0.00003
C,2,0.03627,0.92031,0.00000
C,3,0.03614,0.90674,0.00004
D,1,0.25501,0.72111,0.00002
D,2,0.03244,0.89324,0.00000
D,3,0.03220,0.91035,0.00002
E,1,0.14751,0.81945,0.00003
E,2,0.03030,0.85788,0.00000
E,3,0.01677,0.84533,0.00000

二度手間ですが、テキストファイルにコピーしてExcelで開いてみてください。Excelで表全体を選択してコピーしておきます。

[splus]
#.コピーしたExcelデータを読み込む
X=data.frame(read.delim(pipe("pbpaste")))
#.バートレット検定を行う
bartlett.test(X[,3],X$Test)
[/splus]

と入力すると

Bartlett test of homogeneity of variances

data: X[, 3] and X$Test
Bartlett’s K-squared = 3.1529, df = 4, p-value = 0.5326

という結果が返って来ますので、Bacteria;__Actinobacteriaに関しては分散は等しいということがわかります。これを他のphylumでも行います。ここでは3種類ですので、数も少ないので手作業でもできますが、実際には数百数千となるspecies levelを相手にするので、手作業では不可能ですのでスクリプトを書く必要があります。

少し回りくどいスクリプトだとは思いますが、こんな感じで

[splus]
#.BTableを初期化しておく
#.前の解析のデータが残っていたりすると不便なので
BTable=NULL
for ( i in 3:ncol(X))
{
#.バートレット検定を行い、P値を取り出しBPに代入する
BP=bartlett.test (X[,i],X$Test)$p.value
#.P値に応じて判定する
if(BP<0.01){
SD<-"**"
}else if(BP<0.05){
SD<-"*"
}else{
SD<-"n.s."
}
BResult=c(colnames(X)[i],BP,SD)
#.[i]で代入して得られたベクトルを[i-1]で得られたデータに代入する
BTable=rbind(BTable,BResult)
}
#.BTableの列ラベルを設定する
colnames(BTable)=c("Phylum","P.value","SD")
#.csvファイルで書き出す
write.csv(BTable,"BartlettTest_Result.csv",row.names=FALSE)
[/splus]

とすると、Rの作業ディレクトリに、” BartlettTest_Result.csv “ができていると思います。それを開くと

“Phylum”,”P.value”,”SD”
“Bacteroidetes”,”0.532577365726786″,”n.s.”
“Firmicutes”,”0.0803489400883996″,”n.s.”
“TM7″,”0.637276102471321″,”n.s.”

と、各phylumのバートレット検定の結果がまとまった表ができると思います。めでたしめでたし。ということで、次回はFriedman検定について扱います。

Share on Facebook0Share on Google+0Share on Tumblr0Tweet about this on TwitterEmail this to someone

菌叢解析結果の比較 ( 2 ) バートレット検定」への2件のフィードバック

  1. ピンバック: 菌叢解析結果の比較 ( 3 ) 二元配置分散分析 | Note of Pediatric Surgery

  2. ピンバック: 菌叢解析結果の比較 ( 4 ) フリードマン検定 | Note of Pediatric Surgery

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です