0

これは、私が以前に尋ねた質問に触発された質問です: t.tests に tapply/dapply などを使用する

次のようなインターラボ研究からのデータフレームがありますhttp://pastebin.com/AD57AYD1

基本的に lab=実験室、mat=素材、fab=強度、thick=厚さ

材料の種類ごとに各ラボを比較する t.test データが必要です。つまり、mat=v の場合、t.test を実行してラボ B とラボ S を比較したいと考えています。材料 c、n、l についても同様です。

私の以前の質問は、plyr を使用して、これらの組み合わせごとに t.tests を実行できるようにすることについてでした。ただし、複数の比較を検討する問題があると指摘されました。

私は自分のデータで paired.t.test 関数を使用しようとしましたが、あまりにも多くの比較を行いました (つまり、ラボ B のニトリルとラボ S のビニルの t 検定を行いましたが、これは無関係です。私は次のように呼びました:

pairwise.t.test(interlab$fab,interaction(interlab$mat,interlab$lab),paired=FALSE, pool.sd=FALSE)

そしてそれは私にくれました

> pairwise.t.test(interlab$fab,interaction(interlab$mat,interlab$lab),paired=FALSE, pool.sd=FALSE)

Pairwise comparisons using t tests with non-pooled SD 

    data:  interlab$fab and interaction(interlab$mat, interlab$lab) 

    c.B     l.B     n.B     v.B     c.S     l.S     n.S    
    l.B 0.54484 -       -       -       -       -       -      
    n.B 3.8e-07 1.9e-06 -       -       -       -       -      
    v.B 0.93881 0.22393 3.6e-07 -       -       -       -      
    c.S 0.00576 0.93881 1.2e-05 0.00026 -       -       -      
    l.S 0.00067 0.48601 2.5e-05 4.6e-05 0.89883 -       -      
    n.S 4.3e-12 2.2e-10 0.92366 5.4e-12 6.7e-10 7.7e-10 -      
    v.S 0.93881 0.93881 1.9e-06 0.31885 0.01217 0.00169 1.3e-10

    P value adjustment method: holm 

材料 n を l と比較したり、l と c を比較したりしていないため、調整された p 値が間違っているのではないかと懸念しています。ラボ「B」および「S」)。

pairwise.t.test への適切な呼び出しで次の比較のみが得られるように、データをサブセット化/グループ化する方法はありますか?

        c.B     l.B     n.B     v.B     c.S     l.S     n.S    
    l.B -       -       -       -       -       -       -      
    n.B -       -       -       -       -       -       -      
    v.B -       -       -       -       -       -       -      
    c.S 0.00576 -       -       -       -       -       -      
    l.S -       0.48601 -       -       -       -       -      
    n.S -       -       0.92366 -       -       -       -      
    v.S -       -       -       0.31885 -       -       -      

よろしくピート

編集:@Johnからのコメントの後

そのようにpairwise.t.test関数を使用することはできないようですが、@droopyからの以前のソリューションは、p.adjust関数の呼び出しで利用できます。

 
> FUN<- function(x) {
   t.test(x[,"fab"] ~ x[,"lab"])$p.value
}

res<-ddply(interlab, .(mat), FUN)
res$adjpvalue<-p.adjust(res$V1)

res

mat           V1   adjpvalue
1   c 0.0004798071 0.001919228
2   l 0.0607510365 0.121502073
3   n 0.1847312857 0.184731286
4   v 0.0354274420 0.106282326

これを手伝ってくれた @John と @droopy に感謝します。

4

1 に答える 1