サンプル平均の分布を近似する方法について読んでいると、ノンパラメトリックブートストラップ法に出くわしました。明らかに一つの分布近似することができるの分布によってˉ X * N - ˉ X N、ˉ X * nは、ブートストラップサンプルのサンプルの平均を意味します。
私の質問は、「センタリングが必要ですか?」です。何のために?
私だけでおおよそのことができませんでしたによるP (ˉ X * N ≤ X )?
サンプル平均の分布を近似する方法について読んでいると、ノンパラメトリックブートストラップ法に出くわしました。明らかに一つの分布近似することができるの分布によってˉ X * N - ˉ X N、ˉ X * nは、ブートストラップサンプルのサンプルの平均を意味します。
私の質問は、「センタリングが必要ですか?」です。何のために?
私だけでおおよそのことができませんでしたによるP (ˉ X * N ≤ X )?
回答:
はい、あなたができる近似によるP (ˉ X * N ≤ X )が、それは最適ではありません。これは、パーセンタイルブートストラップの形式です。ただし、サンプルサイズが大きい場合を除き、母集団の平均値を推測しようとすると、パーセンタイルブートストラップはうまく機能しません。(サンプルサイズが小さい場合を含む、他の多くの推論問題でうまく機能します。)この結論は、ウィルコックスの社会および行動科学の現代統計、CRC Press、2012年から得ています。 。
センタリングアプローチのバリエーションは次のステップに進み、再サンプリングの標準偏差とサンプルサイズでセンタリングされたブートストラップ統計をスケーリングし、統計と同じ方法で計算します。これらのt統計の分布からの分位数は、信頼区間の構築または仮説検定の実行に使用できます。これはbootstrap-t方式であり、平均について推論するときに優れた結果が得られます。
LET 分母としてのn-1を使用して、ブートストラップ再標本に基づいて、再サンプル標準偏差であるが、sは元のサンプルの標準偏差です。させる
シミュレートされた分布の97.5パーセンタイルと2.5パーセンタイルは、次の方法でμの信頼区間を作成できます。
以下のシミュレーション結果を検討してください。歪んだ混合分布では、この方法の信頼区間には、パーセンタイルブートストラップ法またはブートストラップなしのat統計の従来の反転よりも頻繁に真の値が含まれます。
compare.boots <- function(samp, reps = 599){
# "samp" is the actual original observed sample
# "s" is a re-sample for bootstrap purposes
n <- length(samp)
boot.t <- numeric(reps)
boot.p <- numeric(reps)
for(i in 1:reps){
s <- sample(samp, replace=TRUE)
boot.t[i] <- (mean(s)-mean(samp)) / (sd(s)/sqrt(n))
boot.p[i] <- mean(s)
}
conf.t <- mean(samp)-quantile(boot.t, probs=c(0.975,0.025))*sd(samp)/sqrt(n)
conf.p <- quantile(boot.p, probs=c(0.025, 0.975))
return(rbind(conf.t, conf.p, "Trad T test"=t.test(samp)$conf.int))
}
# Tests below will be for case where sample size is 15
n <- 15
# Create a population that is normally distributed
set.seed(123)
pop <- rnorm(1000,10,1)
my.sample <- sample(pop,n)
# All three methods have similar results when normally distributed
compare.boots(my.sample)
これにより、以下が得られます(conf.tはブートストラップtメソッドです; conf.pはパーセンタイルブートストラップメソッドです)。
97.5% 2.5%
conf.t 9.648824 10.98006
conf.p 9.808311 10.95964
Trad T test 9.681865 11.01644
歪んだ分布からの1つの例:
# create a population that is a mixture of two normal and one gamma distribution
set.seed(123)
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mean(pop)
compare.boots(my.sample)
これにより、以下が得られます。「conf.t」-ブートストラップtバージョン-は、他の2つよりも信頼区間が広いことに注意してください。基本的に、人口の異常な分布への対応が優れています。
> mean(pop)
[1] 13.02341
> compare.boots(my.sample)
97.5% 2.5%
conf.t 10.432285 29.54331
conf.p 9.813542 19.67761
Trad T test 8.312949 20.24093
最後に、どのバージョンが最も頻繁に正しい信頼区間を提供するかを確認するための1000のシミュレーションがあります。
# simulation study
set.seed(123)
sims <- 1000
results <- matrix(FALSE, sims,3)
colnames(results) <- c("Bootstrap T", "Bootstrap percentile", "Trad T test")
for(i in 1:sims){
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mu <- mean(pop)
x <- compare.boots(my.sample)
for(j in 1:3){
results[i,j] <- x[j,1] < mu & x[j,2] > mu
}
}
apply(results,2,sum)
これにより、以下の結果が得られます-数値は、信頼区間にシミュレートされた母集団の真の値が含まれる1,000回のうちの時間です。すべてのバージョンの真の成功率は95%よりもかなり低いことに注意してください。
Bootstrap T Bootstrap percentile Trad T test
901 854 890