順列検定は正確な検定であるため、正確なp値が得られます。順列テストのブートストラップは意味がありません。
次に、検定統計量の周りの信頼区間を決定することも、推定ではなくサンプルに基づいて計算されるため、意味がありません。平均などの推定値の信頼区間を決定しますが、検定統計量は決定しません。
置換テストは、可能なすべての置換をこれ以上計算できないほど大きいデータセットでは使用しないでください。その場合は、ブートストラップ手順を使用して、使用する検定統計量のカットオフを決定します。しかし、これも95%の信頼区間とはほとんど関係ありません。
例:ここでは古典的なT統計を使用しますが、統計の経験的分布を計算するためにブートストラップに簡単なアプローチを使用します。これに基づいて、経験的なp値を計算します。
x <- c(11.4,25.3,29.9,16.5,21.1)
y <- c(23.7,26.6,28.5,14.2,17.9,24.3)
t.sample <- t.test(x,y)$statistic
t.dist <- apply(
replicate(1000,sample(c(x,y),11,replace=F)),2,
function(i){t.test(i[1:5],i[6:11])$statistic})
# two sided testing
center <- mean(t.dist)
t.sample <-abs(t.sample-center)
t.dist <- abs(t.dist - center)
p.value <- sum( t.sample < t.dist ) / length(t.dist)
p.value
この両面テストは対称分布でのみ機能することを考慮に入れてください。非対称分布は、通常、片側のみでテストされます。
編集:
わかりました、質問を誤解しました。差の推定値の信頼区間を計算する場合は、ここに記載されているコードを使用して、各サンプル内のブートストラップを行うことができます。心に留めておいてください、これは偏った見積もりです:一般的にこれは小さすぎるCIを与えます。信頼区間とp値に異なるアプローチを使用する必要がある理由として、そこに示されている例も参照してください。
sample
and を使用してサンプルを生成してもreplace=TRUE
よろしいですか?のようなパッケージを使用する理由はありますboot
か?