Önyükleme küçük örneklem büyüklüğü için bir “tedavi” olarak görülebilir mi?


71

Bu soru, bu lisans düzeyinde istatistik ders kitabında okuduğum ve bu sunum sırasında (bağımsız olarak) istatistiksel bir seminerde duyduğum bir şeyle tetiklendi. Her iki durumda da, ifade "satırlarının boyutu oldukça küçük olduğu için, bu parametrik yöntemi yerine (veya bununla birlikte) önyükleme yoluyla tahmin yapmaya karar verdik .X

Ayrıntılara girmediler, ama muhtemelen akıl yürütme aşağıdaki gibiydi: yöntem , verilerin belirli bir parametrik dağılım takip ettiğini varsayar . Gerçekte dağılım tam olarak değildir , ancak örneklem büyüklüğü yeterince büyük olduğu sürece sorun olmaz. Bu durumda, örneklem büyüklüğü çok küçük olduğu için, herhangi bir dağıtım varsayımı yapmayan (parametrik olmayan) önyüklemeye geçelim. Sorun çözüldü!D DXDD

Benim düşünceme göre, önyükleme bunun için değil. İşte nasıl görüyorum: bootstrap yeteri kadar veri olmadığı veya daha az belirgin olduğu durumlarda tek bir avantaj sağlayabilir, ancak standart hatalar, p değerleri ve benzer istatistikler elde etmek için kapalı bir form çözümü yok. Klasik bir örnek, iki değişkenli normal dağılımdan bir örnek verilen korelasyon katsayısı için bir CI elde ediyor: kapalı form çözümü var, ancak önyükleme işleminin daha kolay olduğu anlaşıldı. Bununla birlikte, hiçbir şey önyüklemenin bir şekilde küçük bir örneklem boyutundan kurtulmasına yardımcı olacağı anlamına gelmez.

Benim algım doğru mu?

Bu soruyu ilginç bulursanız, benden başka, daha spesifik bir önyükleme sorusu var:

Önyükleme: Aşırı yükleme sorunu

PS “Önyükleme yaklaşımı” nın korkunç örneklerini paylaşmaya yardım edemiyorum. Yazarın adını açıklamıyorum, ancak 2004'te Kantitatif Finans üzerine bir kitap yazan eski nesil “terimlerden” biri. Bu örnek oradan alınmıştır.

Şu problemi göz önünde bulundurun: her biri için 4 aktif ve 120 aylık iade gözleminiz olduğunu varsayalım. Amaç, yıllık getiri olan 4 boyutlu eklem CDF'sini oluşturmaktır. Tek bir varlık için bile, görev sadece 10 yıllık gözlemlerle elde edilemeyecek gibi gözüküyor, 4 boyutlu cdf tahminini bırak. Ancak endişelenmeyin, “önyükleme” size yardımcı olacaktır: mevcut 4 boyutlu gözlemlerin hepsini alın, yerine 12 örnek koyun ve bunları tek bir "önyükleme" 4 boyutlu yıllık geri dönüşlü tek vektör oluşturmak için birleştirin. Bunu 1000 kez tekrarlayın ve bakalım, kendinize 1000 yıllık iadelerden oluşan bir “önyükleme örneği” aldınız. Bunu cdf kestirimi amacıyla veya 1000 yıllık bir tarihe göre çizilebilecek başka herhangi bir çıkarım için 1000 boyutunda bir örnek olarak kullanın.


18
İlk paragrafınıza benzer düşünceler duyuyorum ya da okudum, ancak aynı fikirde değilim. Genellikle bootstrapping'ı küçük örneklerde mutlaka yararlı görmüyorum. Gerekçesi asimptotik / büyük örneklemdir ve birçok durumda pratikte küçük örneklem performansı problemlidir; örneğin aralıkların kapsamı, nominal orandan genellikle oldukça farklıdır. Bu başka bir faydalı araç ama yıllar içinde haber verilen birçok diğerleri gibi, bazılarının hayal ettiği dergi değil. Bunun çok küçük örneklere bir çözüm olduğunu sanmıyorum.
Glen_b

Simon Sheather'ın kitabında (Şekil 3.40), örneklem büyüklüğü büyük olmadığı ve hataların normal dağılmadığı durumlarda çıkarım için önyükleme yapılmasını öneren regresyon için bir akış şeması bulunmaktadır.
Tony Ladson,

2
Dördüncü paragraftaki sorunun cevabı evet (ya da en azından sınıfımdaki bir sınavda bu cevabı verirseniz, tartışmanız için bir kredi alırsınız). Bu tartışmayı kontrol ettin mi? In my cevap , ben önyükleme yapar yaklaşımlar bir açıklama verdi ve her önyükleyici yöntemi sınırlamaları farkında olmak okumalısınız darbe-your-mind kağıda bir başvuru verdi. Sorunuzu tetikleyen kitaplara / makalelere / sunumlara referans görmek güzel olurdu
StasK

Önyükleme öğesi size sadece kenarların genişlemesinde ekstra bir terim vermez mi - düzeltme terimiyle normal bir yaklaşım gibi?
Olasılık

Yanıtlar:


34

Bootstrapping için yüzdelik güven aralığı kullanmanın, T aralığı yerine Z aralığı kullanmaya ve payda için n - 1 yerine kullanılmasına denk olduğunu hatırlıyorum . Ne yazık ki, bunu nerede okuduğumu hatırlamıyorum ve hızlı aramalarımda referans bulamadım. Bu farklar, n büyük olduğunda çok önemli değildir (ve bootstrap'in avantajları, n büyük olduğunda bu küçük problemlerden daha ağır basar ), ancak küçük n'de bu sorunlara neden olabilir. İşte benzetmek ve karşılaştırmak için bazı R kodları:nn-1nn

simfun <- function(n=5) {
    x <- rnorm(n)
    m.x <- mean(x)
    s.x <- sd(x)
    z <- m.x/(1/sqrt(n))
    t <- m.x/(s.x/sqrt(n))
    b <- replicate(10000, mean(sample(x, replace=TRUE)))
    c( t=abs(t) > qt(0.975,n-1), z=abs(z) > qnorm(0.975),
        z2 = abs(t) > qnorm(0.975), 
        b= (0 < quantile(b, 0.025)) | (0 > quantile(b, 0.975))
     )
}

out <- replicate(10000, simfun())
rowMeans(out)

Bir koşu için sonuçlarım:

     t      z     z2 b.2.5% 
0.0486 0.0493 0.1199 0.1631 

α


6
Son cümle beni meraklandırdı, ben de senin örneğinle bunu denedim bootPaketi kullandım ve mümkün olan tüm aralıkları sağladım: birinci dereceden normal yaklaşım aralığı, temel önyükleme aralığı, öğrenci önyükleme aralığı, önyükleme yüzdesi yüzdesi (zaten kodunuzun sağladığı) ve ayarlanan önyükleme yüzdesi (BCa) Aralık. Sonuçlar esas olarak aynıydı (nominal reddetme oranları (.16-.17), nominal (.05) reddetme oranı olan (standart t-testi gibi olduğundan daha mantıklı olan) öğrenci aralığı dışında.
Wolfgang

2
@Wolfgang, ek simülasyonlar yaptığınız için teşekkürler. Diğer aralıklar biraz daha iyi olmadı, ancak 0.05 seviyesine uymadıklarına şaşırmadım.
Greg Snow,

1
Evet, ben de biraz şaşırdım! Bazen sezgimiz başarısız olur. Bu yüzden birkaç dakika içinde R'de küçük bir senaryo yazabilmek, 10,000 \times 10,000yinelemeleri çalıştırmak (tamamlanması birkaç dakika sürdü) ve işleri kontrol edebilmek çok harika. Örneğiniz güzel bir şekilde önyüklemenin, işler "iyi" olsa bile küçük örneklerle oldukça kötü bir performans sergilediğini gösteriyor (yani, veriler aslında normaldir).
Wolfgang

Aslında, bu simülasyonda görülen sorun tam olarak burada biraz önce sordum ve yorumlarda @whuber: stats.stackexchange.com/questions/323455/… tarafından cevaplandı . Bu nedenle, sorunun örneklem büyüklüğü olduğunu sanmıyorum, ancak her örnek içindeki parametrik çıkarım için bağımsızlığın ihlali olduğunu düşünüyorum.
yarım geçiş

2
zt

14

Küçük bir örneklem büyüklüğü varsa (bir yandan, "küçük" olanı, her araştırma alanındaki bazı geleneksel kurallara bağlı görünüyor), sihirbazı hiçbir önyükleme yapmaz. Bir veritabanının, incelenen iki değişkenin her biri için üç gözlem içerdiğini varsayarsak, anlam çıkarmaz. Tecrübelerime göre, parametrik olmayan bootstrap (1.000 veya 10.000 kopya), örnek dağılımları (her biri en az 10-15 gözlem) çarpık olduğunda t-testinin yerine iyi bir şekilde etki eder ve bu nedenle normal t-testi için ön koşullar yerine getirilmez. Ayrıca, gözlem sayısına bakılmaksızın, parametrik olmayan önyükleme verileri, her zaman sağlık hizmeti maliyetleri için olduğu gibi, pozitif olarak çarpıldığında zorunlu bir seçim olabilir.


1
Veriler pozitif olarak çarpıldığında bootstrap zorunlu bir seçim olabilir - bunun yerine neden lognormal veya benzeri eğri dağılım kullanmıyorsunuz? SAS ve R'nin birçok seçeneği var.
James,

1
James'in cevabı dikkate değer. Ancak, maliyet verilerinin kaydedilmesinde karşılaşılan genel sorun, karar vericilere sonuçları sunmadan önce orijinal metriğe geri dönüşümdür. Parametrik olmayan bootstrap ile bu sorunu önleyebilirsiniz.
Carlo Lazzaro

Carlo, kütük dönüşümüyle ilgili deneyiminiz olduğundan, başka bir soruya cevap vermek isteyebilirsiniz (50 puanlık bir ödül vardır): stats.stackexchange.com/a/111932/54099
James

James, birkaç dakika önce sorunuza geçici bir cevap verdim.
Carlo Lazzaro

tχ12

13

Diğer cevaplar bootstrap güven aralıklarının performansını eleştirir, bootstrap'i değil. Bu farklı bir problem.

Bağlamınız, önyükleme dağılımının yakınsaması (önyükleme örnekleri sayısı cinsinden yakınsama) için uygunluk koşullarını sağlıyorsa, yeterince büyük bir önyükleme örneği kullanırsanız yöntem çalışır.

Eğer gerçekten parametrik olmayan ön yükleme alanı kullanmanın sorunları bulmak istiyoruz, burada iki sorun vardır:

(1) Yeniden örneklemeyle ilgili konular.

Önyükleme ile ilgili sorunlardan biri, küçük veya büyük numuneler için, yeniden örnekleme adımıdır. Numunenin yapısını (bağımlılık, geçici, ...) tutarken her zaman yeniden örnekleme yapmak mümkün değildir. Bunun bir örneği üst üste gelen bir işlemdir .

Her birinin olaylarının zaman zaman gerçekleştiği bir dizi bağımsız kaynak olduğunu varsayalım. Herhangi bir kaynaktaki ardışık olaylar arasındaki aralıkların, hepsi aynı dağılıma sahip bağımsız rastgele değişkenler olduğu varsayılmaktadır, böylece her kaynak, bilinen bir tipte bir yenileme işlemini oluşturmaktadır. Kaynakların çıkışları bir havuzlanmış çıkışta birleştirilir.

Bağımlılığı bilinmeyen yapıyı korurken nasıl yeniden örnekleyeceksiniz ?

(2) Dar bootstrap örnekleri ve küçük numuneler için bootstrap güven aralıkları .

Küçük örneklerde, her bir alt örnek için tahmin edicilerin minimum ve maksimum değerleri dar bir aralık tanımlayabilir, daha sonra bazı modellerde güven aralıklarının sağ ve sol uç noktaları çok küçük olacaktır (ki bu, küçük örnek!

x1,x2~Tecrübe(λ)λ>0

set.seed(1)
x <- rexp(2,1)
# Maximum likelihood estimator
1/mean(x)

# Profile likelihood: provides a confidence interval with right-end point beyond the maximum inverse of the mean
Rp <- Vectorize(function(l) exp(sum(dexp(x,rate=l,log=T))-sum(dexp(x,rate=1/mean(x),log=T))))

curve(Rp,0,5)
lines(c(0,5),c(0.147,0.147),col="red")

λλ^=2/(x1+x2)

library(boot)
set.seed(1)
x <- rexp(2,1)
1/mean(x)
# Bootstrap interval: limited to the maximum inverse of the mean
f.boot <- function(data,ind) 1/mean(data[ind])
b.b <- boot(data=x, statistic=f.boot, R=100000)
boot.ci(b.b, conf = 0.95, type = "all")
hist(b.b$t)

x1x2


6

Bootstrap işleri iyi , ancak önyükleme gelmez (nominal 0.05 anlamlılık düzeyinde test gerçek boyutuna yakın olduğu örneğin) testlerin doğruluğunu sağlayarak küçük örneklem boyutlarda değil sihirli size ekstra güç verin. Küçük bir örneğiniz varsa, hikayenizin sonunda çok az gücünüz var.

Parametrik (lineer modeller) ve semiparametrik (GEE) regresyonları, düşük küçük örnekleme özelliklerine sahip olma eğilimindedir ... birincisi parametrik varsayımlara büyük bağımlılığın bir sonucu olarak, ikincisi küçük örneklerde sağlam standart hata tahminlerinin büyütülmesi nedeniyledir. Önyükleme (ve yeniden örneklemeye dayalı diğer testler) bu durumlarda gerçekten iyi performans gösterir .

Tahmin için, önyükleme işlemi size dahili geçerliliğe ilişkin daha iyi (daha dürüst) tahminler, bölünmüş örnek doğrulamadan daha iyi verir.

n


2
(örneğin, nominal 0,05 anlamlılık seviyesinin testin gerçek boyutuna yakın olduğu görülmüştür), - fakat yukarıdaki R kodunda bootstrap'ın test boyutunu koruyamadığını gördük, değil mi?
James

Görüyorum ki Greg Snow tarafından verilen cevaba değiniyorsun. Bu sonuçtan şaşırdım. Gerçeklerimi tekrar kontrol etmem ve cevabımı düzenlemem gerekecek. Teşekkürler.
AdamO
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.