Önyükleme bu sürekli veriler için uygun mu?


11

Ben tam bir acemiyim :)

Yaklaşık 745.000 kişilik bir nüfustan 10.000 örnek büyüklüğünde bir çalışma yapıyorum. Her örnek bir "yüzde benzerliği" temsil eder. Numunelerin büyük çoğunluğu% 97-98 civarındadır, ancak birkaçı% 60 ile% 90 arasındadır, yani dağılım ciddi şekilde çarpıktır. Sonuçların yaklaşık% 0.6'sı% 0'dır, ancak bunlar numuneden ayrı olarak işlenecektir.

Tüm 10.000 örneğin ortalaması% 97.7'dir ve sadece Excel'de StdDev 3.20'dir. StdDev'in burada gerçekten geçerli olmadığını anlıyorum, çünkü sonuçlar normal olarak dağıtılmıyor (ve +3.20 sizi% 100'ün üzerine çıkaracaktır!).

Sorularım:

  1. Bootstrapping (benim için yeni bir konsept) uygun mu?
  2. Doğru önyükleme yapıyor muyum :)
  3. Yeterli numune büyüklüğü nedir?

Yaptığım şey 10.000 sonucumu yeniden örneklemek (yerine koymak) ve yeni bir ortalama hesaplamak. Bunu birkaç bin kez yapıyorum ve her ortalamayı bir dizide saklıyorum. Sonra "ortalamaların ortalaması" nı hesaplıyorum ve bu benim istatistiksel sonucum. % 99 CI'yi çözmek için% 0,5'lik değeri ve% 99,5'lik değeri seçerim ve bu çok sıkı bir aralık oluşturur:% 97,4 -% 98,0. Bu geçerli bir sonuç mu yoksa yanlış bir şey mi yapıyorum?

Örnek büyüklüğüne gelince, nüfusun sadece% 1.3'ünü örnek alıyorum - bunun "yeterli" olup olmadığı hakkında hiçbir fikrim yok. Örneğimin popülasyonu temsil edip etmediğini nasıl bilebilirim? İdeal olarak, +/-% 0,50 yüzde puanı (yani% 97,2 -% 98,2) olan bir ortalamanın% 99'undan emin olmak istiyorum.

Herhangi bir ipucu için şimdiden teşekkür ederim!

Yanıtlar:


19

Standart sapma burada başka herhangi bir yerde olduğu gibi geçerlidir: verilerin dağılımı hakkında yararlı bilgiler verir. Özellikle, sd'nin numune büyüklüğünün kare köküne bölünmesi standart bir hatadır: ortalamanın örnekleme dağılımının dağılımını tahmin eder. Şimdi hesaplayalım:

3.2%/10000=0.032%=0.00032.

Bu küçük - aradığınız hassasiyetten çok daha küçük .±0.50%

Veriler Normal olarak dağıtılmasa da, örnek boyutu çok büyük olduğu için örnek ortalaması Normal olarak dağıtılır. Burada, örneğin, sizinkilerle aynı özelliklere sahip bir numunenin histogramı ve sağında, aynı popülasyondan bin ek numune aracının histogramı.

Şekil 1

Normal'e çok yakın görünüyor, değil mi?

Böylece, doğru şekilde önyükleme yaptığınız görünse de, önyükleme gerekli değildir: her zamanki gibi, standart hatayı standart Normal dağılımın uygun bir yüzdelik değeri ile çarparak ortalama için simetrik bir güven aralığı elde edilir ( wit, ) ve bu mesafeyi ortalamanın her iki tarafına taşıma. Sizin durumunuzda, , yani güven aralığı100α%Z1α/200Z1α/200=2.575899%

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

Yeterli bir örneklem büyüklüğü , örneklem büyüklüğü için bu ilişki ters çevrilerek bulunabilir. Burada bize örnek bir boyuta ihtiyacınız olduğunu söyler

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

Bu, ortalamanın örnekleme dağılımının Normal olduğu sonucunu tekrar kontrol etmek isteyebileceğimiz kadar küçüktür . Nüfusumdan örnek aldım ve ortalamasını ( iterasyonları için) :2729999

şekil 2

Elbette, Normal görünüyor. Aslında, önyüklemeli güven aralığı Normal teorisi CI ile hemen hemen aynıdır .(97.16%,98.21%)(97.19%,98.24%)

Bu örneklerin gösterdiği gibi , mutlak örnek büyüklüğü popülasyon boyutunun oranından ziyade tahminlerin doğruluğunu belirler. (Aşırı ama sezgisel bir örnek, tek bir damla deniz suyunun, bu damla tüm deniz suyunun çok küçük bir kısmı olmasına rağmen, okyanustaki tuz konsantrasyonunun doğru bir tahminini sağlayabilmesidir.) Belirtilen amaçlarınız için bir örnek elde etmek ve (birden fazla gerektirir bir örnek olarak çok iş zamanları overkill).1000036272


RBu analizleri yapmak ve bu grafikleri çizmek için kod. Ortalama ve SD olan Beta dağılımına sahip bir popülasyondan örnekler .0.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
Bu yazının oldukça eski olduğunu biliyorum ama son derece yararlı. Bilginizi paylaştığınız için teşekkür ederiz.
RDizzl3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.