ブートストラップはこの継続的なデータに適していますか?


11

私は完全な初心者です:)

人口約745,000人のサンプルサイズ10,000で調査を行っています。各サンプルは「類似性の割合」を表します。サンプルの大部分は約97%〜98%ですが、一部は60%〜90%です。つまり、分布は大きくマイナスに歪んでいます。結果の約0.6%は0%ですが、これらはサンプルとは別に処理されます。

すべての10,000個のサンプルの平均は97.7%であり、Excelだけでは、StdDevは3.20です。StdDevは実際には適用されないことを理解しています。これは、結果が正規分布されないためです(+3.20では100%を超えるため!)。

私の質問は:

  1. ブートストラップ(私にとっての新しいコンセプト)は適切ですか?
  2. 私は正しくブートストラップしていますか?:)
  3. 十分なサンプルサイズとは何ですか?

私がやっていることは、私の10,000件の結果を(置き換えて)再サンプリングし、新しい平均を計算することです。私はこれを数千回行い、それぞれの平均を配列に格納します。次に、「平均の平均」を計算します。これが私の統計結果です。99%CIを計算するために、0.5%番目の値と99.5%番目の値を選択すると、非常に狭い範囲(97.4%-98.0%)が生成されます。これは有効な結果ですか、それとも何か問題がありますか?

サンプルサイズについては、人口の約1.3%しかサンプリングしていません。これで「十分」かどうかはわかりません。私のサンプルが母集団の代表であるかどうかはどのようにしてわかりますか?理想的には、+ /-0.50%パーセンテージポイント(つまり、97.2%-98.2%)である平均の99%の信頼度を確保したいと考えています。

ヒントを事前にありがとう!

回答:


19

ここでは、標準偏差が他の場所と同じように適用されます。これは、データの分散に関する有用な情報を提供します。特に、サンプルサイズの平方根で除算されたsdは、1つの標準誤差です。これは、平均のサンプリング分布の分散を推定します。計算してみましょう:

3.2%/10000=0.032%=0.00032.

±0.50%

データは正規分布ではありませんが、サンプルサイズが非常に大きいため、サンプル平均は正規分布に非常に近くなります。 たとえば、ここに、あなたと同じ特徴を持つサンプルのヒストグラムがあり、その右側には、同じ母集団からの千の追加サンプルの平均のヒストグラムがあります。

図1

ノーマルに非常に近いですね。

100α%Z1α/200Z1α/200=2.575899%

(0.9772.5758(0.032)/10000, 0.977+2.5758(0.032)/10000)=(97.62%,97.78%).

この関係を反転させてサンプルサイズを解決することで、十分なサンプルサイズを見つけることができます。ここでは、サンプルサイズが必要であることを示しています

(3.2%/(0.5%/Z1α/200))2272.

2729999

図2

(97.16%,98.21%)(97.19%,98.24%)

1000036272


R0.9770.032

set.seed(17)
#
# Study a sample of 10,000.
#
Sample <- rbeta(10^4, 20.4626, 0.4817)
hist(Sample)
hist(replicate(10^3, mean(rbeta(10^4, 20.4626, 0.4817))),xlab="%",main="1000 Sample Means")
#
# Analyze a sample designed to achieve a CI of width 1%.
#
(n.sample <- ceiling((0.032 / (0.005 / qnorm(1-0.005)))^2))
Sample <- rbeta(n.sample, 20.4626, 0.4817)
cat(round(mean(Sample), 3), round(sd(Sample), 3)) # Sample statistics
se.mean <- sd(Sample) / sqrt(length(Sample))      # Standard error of the mean
cat("CL: ", round(mean(Sample) + qnorm(0.005)*c(1,-1)*se.mean, 5)) # Normal CI
#
# Compare the bootstrapped CI of this sample.
#
Bootstrapped.means <- replicate(9999, mean(sample(Sample, length(Sample), replace=TRUE)))
hist(Bootstrapped.means)
cat("Bootstrap CL:", round(quantile(Bootstrapped.means, c(0.005, 1-0.005)), 5))

2
この投稿はかなり古いですが、非常に役立ちます。あなたの知識を共有していただきありがとうございます。
RDizzl3
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.