Önyükleme aralığım neden kapsama alanı çok kötü?


29

Bir t-aralığını bir önyükleme aralığına göre karşılaştırdığım ve her ikisinin de kapsama olasılığını hesapladığım bir sınıf gösteri yapmak istedim. Verilerin çarpık bir dağılımdan gelmesini istedim, böylece verileri exp(rnorm(10, 0, 2)) + 1değiştirilmiş bir lognormal'den 10 büyüklüğünde bir örnek olarak oluşturmayı seçtim . 1000 örnek çizmek için bir senaryo yazdım ve her bir örnek için 1000 kopyaya göre% 95 t-aralığı ve% 95 önyükleme yüzdesi aralığını hesapladım.

Senaryoyu çalıştırdığımda, her iki yöntem de birbirine çok benziyor ve her ikisi de% 50-60 arasında kapsama olasılığına sahip. Şaşırdım çünkü önyükleme aralığının daha iyi olacağını düşündüm.

Benim sorum

  • kodunda bir hata mı yaptın?
  • aralıkları hesaplamada hata mı yaptınız?
  • Önyükleme aralığının daha iyi kapsama özelliklerine sahip olmasını bekleyerek hata mı yaptınız?

Ayrıca, bu durumda daha güvenilir bir CI oluşturmanın bir yolu var mı?

 tCI.total <- 0
 bootCI.total <- 0
 m <- 10 # sample size
 true.mean <- exp(2) + 1

for (i in 1:1000){
 samp <- exp(rnorm(m,0,2)) + 1
 tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)

 boot.means <- rep(0,1000)
 for (j in 1:1000) boot.means[j] <- mean(sample(samp,m,replace=T))
 bootCI <- sort(boot.means)[c(0.025*length(boot.means), 0.975*length(boot.means))]

 if (true.mean > min(tCI) & true.mean < max(tCI)) tCI.total <- tCI.total + 1
 if (true.mean > min(bootCI) & true.mean < max(bootCI)) bootCI.total <- bootCI.total + 1 
}
tCI.total/1000     # estimate of t interval coverage probability
bootCI.total/1000  # estimate of bootstrap interval coverage probability

3
İnsanlar önyüklemenin başka bir kullanımını sıklıkla unuturlar: önyargıları belirlemek ve düzeltmek . Sanırım önyükleme işleminize bir önyargı düzeltmesi eklerseniz, CI'den çok daha iyi performans alacağınızdan şüpheleniyorum.
whuber

@whuber: güzel nokta, +1. Hatırladığım kadarıyla, Bootstrap Metodları ve Uygulamaları Davison & Hinkley tarafından önyargılı düzeltme ve bootstrap üzerindeki diğer iyileştirmeler için güzel ve erişilebilir bir giriş sağlar.
S. Kolassa - Monica

1
Diğer önyükleme varyantlarını, özellikle de temel önyüklemeyi denemeye değer.
Frank Harrell

3
Önyükleme büyük bir örnek prosedürdür. , özellikle log-normal veriler için büyük değildir . n=10
Cliff AB,

Yanıtlar:


16

Canto, Davison, Hinkley ve Ventura (2006) tarafından yapılan ön yükleme diyagnostikleri ve çözümleri , mantıklı bir çıkış noktası gibi görünüyor. Önyüklemenin parçalanabileceği birden fazla yöntemi tartışıyorlar ve - daha önemlisi burada - teşhis ve olası çözümler sunuyor:

  1. Aykırı
  2. Yanlış yeniden örnekleme modeli
  3. Nonpivotality
  4. Önyükleme yönteminin tutarsızlığı

Bu durumda 1, 2 ve 4 ile bir sorun görmüyorum. 3'e bakalım. @Ben Ogorek'in belirttiği gibi ( @Glen_b'nin normallik tartışmasının kırmızı bir ringa balığı olabileceği konusunda hemfikir olmama rağmen), açılış önyüklemesinin geçerliliği ilgilendiğimiz istatistiklerin önemine bağlı.

Canty ve diğ. Her bir önyükleme örneğinde parametre tahmini için bir önyargı ve değişkenlik ölçüsü elde etmek için örneklerin içinde yeniden örnekleme yapılmasını önerir . İşte formülleri p'den kopyalamak için kullanılan kod. Makalenin 15'i:

library(boot)
m <- 10 # sample size
n.boot <- 1000
inner.boot <- 1000

set.seed(1)
samp.mean <- bias <- vars <- rep(NA,n.boot)
for ( ii in 1:n.boot ) {
    samp <- exp(rnorm(m,0,2)) + 1
    samp.mean[ii] <- mean(samp)
    foo <- boot(samp,statistic=function(xx,index)mean(xx[index]),R=inner.boot)
    bias[ii] <- mean(foo$t[,1])-foo$t0
    vars[ii] <- var(foo$t[,1])
}

opar <- par(mfrow=c(1,2))
    plot(samp.mean,bias,xlab="Sample means",ylab="Bias",
        main="Bias against sample means",pch=19,log="x")
    abline(h=0)
    plot(samp.mean,vars,xlab="Sample means",ylab="Variance",
        main="Variance against sample means",pch=19,log="xy")
par(opar)

önyükleme tanılama

Günlük ölçeklerini not edin - günlükler olmadan, bu daha da belirgindir. Önyükleme ortalama tahmininin varyansının önyükleme örnekleminin ortalaması ile nasıl arttığını oldukça iyi görüyoruz. Bu bana düşük güven aralığı kapsama bir suçlu olarak suçsuzluğa suçu bağlamak için yeterli bir tüfek gibi görünüyor.

Ancak, mutlu bir şekilde birçok yoldan gelebileceğini kabul ediyorum. Örneğin, belirli bir önyükleme kopyasından gelen güven aralığının gerçek ortalamayı içerip içermediğini, belirli bir kopyanın ortalamasına bağlı olup olmadığına bakabiliriz.

Çözümlere gelince, Canty ve ark. dönüşümleri tartışın ve burada akla gelen logaritmalar (örneğin, önyükleme ve ortalamalar için değil, ancak kaydedilen verilerin ortalaması için güven aralıklarını oluşturmak) ama gerçekten çalışmasını sağlayamadım.

Canty ve diğ. Örnekleme ve pürüzsüzleştirmenin yanı sıra pivot parsellerine güven bantları ekleyerek hem iç önyükleme sayısını hem de kalan gürültüyü nasıl azaltabileceğini tartışmaya devam edin.

Bu akıllı bir öğrenci için eğlenceli bir tez projesi olabilir. Hatalı olduğum yerin yanı sıra diğer tüm literatürdeki işaretçileri takdir ediyorum. Ve diagnosticbu soruya etiketi ekleme özgürlüğünü alıyorum .


13

μ^-μ
μ^t
mμ^-μσ^
birlikte ön yükleme ile. Sonuç 0,8 civarında bir kapsama alanıydı. Tam bir çözüm değil, bir iyileştirme.

Sonra tüm kurulum hakkında biraz daha düşündüm. Sadece 10 gözlem ve aşırı eğri dağılım ile, temelde imkansız değil mi? doğru kapsama alanıyla güven aralıkları oluşturabilen ortalamaları parametrik olmayan bir şekilde tahmin midir?

e2+1=8.39P(X2)=0.84X~N-(0,4)0.840.8410=0.178. Bu nedenle, vakaların% 18'inden biraz daha azında, en büyük gözlem ortalamanın altındadır. 0.82'den büyük bir kapsama alanı elde etmek için en büyük gözlemin ötesine geçen ortalama için bir güven aralığı yapısına ihtiyacımız var. Dağıtımın aşırı çarpık olduğu varsayımları olmadan böyle bir yapının nasıl yapıldığını (ve gerekçelendirildiğini) hayal etmekte zorlanıyorum. Ancak herhangi bir öneriyi bekliyoruz.


Size katılıyorum. Gerçekten bu dağıtımdan bir örnek almış birinin bakış açısıyla düşünmek istedim. Bu durumda önyükleme yapmayı karmaşa ile kullanmanın güvenli olmadığını nasıl bilebilirdim? Aklıma gelen tek düşünce, analizi yapmadan önce kütük almış olabileceğimi düşünüyorum, ancak diğer cevaplayıcılardan biri bunun gerçekten yardımcı olmadığını söylüyor.
Flounderer

1
Yalnızca 10 veri noktasından güvenli mi, güvensiz mi olduğunu bilemezsiniz. Eğiklik veya ağır kuyruklardan şüpheleniyorsanız, çözüm ortalamanınkinden farklı bir parametreye odaklanmak olabilir. Örneğin log-ortalama veya ortanca. Bu, ek varsayımlar yapmazsanız, ortalamanın bir tahminini (veya güven aralığını) vermeyecektir, ancak dağıtımın kuyruklarına daha az duyarlı bir parametreye odaklanmak tamamen daha iyi bir fikir olabilir.
NRH

6

Hesaplamalar doğruydu, tanınmış paket açılışını kontrol ettim . Ek olarak, yüzdelik önyükleme aralığının önyargılı düzeltilmiş bir sürümü olan BCa-aralıkını (Efron tarafından) ekledim:

for (i in 1:1000) {
  samp <- exp(rnorm(m, 0, 2)) + 1

  boot.out <- boot(samp, function(d, i) sum(d[i]) / m, R=999)
  ci <- boot.ci(boot.out, 0.95, type="all")

  ##tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)
  tCI <- ci$normal[2:3]
      percCI <- ci$perc[4:5]
  bcaCI <- ci$bca[4:5]
      boottCI <- ci$student[4:5]

  if (true.mean > min(tCI) && true.mean < max(tCI)) tCI.total <- tCI.total + 1
  if (true.mean > min(percCI) && true.mean < max(percCI)) percCI.total <- percCI.total + 1 
  if (true.mean > min(bcaCI) && true.mean < max(bcaCI)) bcaCI.total <- bcaCI.total + 1
}

tCI.total/1000     # estimate of t interval coverage probability
0.53
percCI.total/1000  # estimate of percentile interval coverage probability
0.55
bcaCI.total/1000  # estimate of BCa interval coverage probability
0.61

Orjinal örneklem büyüklüğü 10'dan büyükse, 20 veya 50 gibi aralıkların daha iyi olacağını varsayalım.

Ayrıca bootstrap-t yöntemi genellikle çarpık istatistikler için daha iyi sonuçlara yol açar. Bununla birlikte, iç içe geçmiş bir döngüye ve dolayısıyla 20+ kat daha fazla hesaplama süresine ihtiyaç duyar.

Hipotez testi için 1 taraflı ortalamaların iyi olması da çok önemlidir. Bu yüzden sadece 2 taraflı kanallara bakmak çoğu zaman yanıltıcı olabilir.


1
n<100

5

Bu konuda kafam çok karıştı ve 1996 DiCiccio ve Efron Önyükleme Güven Güven Aralıklarında çok zaman geçirdim , için gösterecek çok fazla .

Aslında önyüklemenin daha azını genel amaçlı bir yöntem olarak düşünmemi sağladı. Sıkışıp kaldığın zaman seni sıkışmadan çıkaracak bir şey olarak düşünürdüm. Ama onun kirli küçük sırrını öğrendim: önyükleme güven aralıklarının tümü bir şekilde normalliğe dayanıyor. Açıklamama izin ver.

x~N-(μ,σ2)
σ
z=x-μσ~N-(0,1)
μPr(-1.96x-μσ1.96)=0.95

Normal dağılımın yüzdeliklerini güven aralıklarıyla ilgili neyin haklı çıkardığını düşündüğünüzde, tamamen bu elverişli önemli miktarına dayanır. Keyfi bir dağılım için, örnekleme dağılımının yüzdeleri ile güven aralıkları arasında teorik bir bağlantı yoktur ve önyükleme örneklemesi dağılımının ham oranlarını almak bunu kesmez.

Böylece, Efron'un BCa (bias düzeltilmiş) aralıkları, yaklaşık normallik elde etmek için dönüşümler kullanır ve bootstrap-t yöntemleri, sonuçta elde edilen t-istatistiklerinin yaklaşık olarak önemli olmasına dayanır. Şimdi önyükleme kayışı, momentlerin dışını tahmin edebiliyor ve her zaman normallik varsayıyor ve +/- 2 * SE standardını kullanıyorsunuz. Ancak bootstrap ile parametrik olmayan tüm çalışmaları göz önüne alındığında, oldukça adil görünmüyor, değil mi?


2
Bir şeyi kaçırmış olabilirim, ancak önyükleme işleminin önemli veya yakın önemli miktarlarla ilişkili olduğu gerçeği, normalde herhangi bir ilişki anlamına gelmez. Önemli miktarlar, belirli durumlarda her tür dağılıma sahip olabilir. Ayrıca ikinci son paragrafınızdaki italik cümlenin nasıl geldiğini de anlamıyorum.
Glen_b -Reinstate Monica

1
O zaman normallikle ilgili iddia nasıl takip edilir?
Glen_b -Reinstate Monica

1
FΦ-1[F(X)]

2
F

2
@Glen_b'e eklemek için: normal bir dağılıma dönüşüm sadece yöntemin doğru olduğunu kanıtlamak için var olmalıdır. Yöntemi kullanmak için onu bulmanız gerekmez. Ek olarak, normal dağılımları sevmiyorsanız, ispatın tamamını başka bir simetrik, sürekli dağılımla yeniden yazabilirsiniz. Normal dağılımların kullanılması teknik olarak yararlıdır, ancak kesin olarak gerekli değildir, verilerin kaynağı veya örnek ortalaması hakkında hiçbir şey söylemez.
Peter,

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.