Eşikli bir Beta dağıtımını etkili bir şekilde örnekleme


10

Aşağıdaki dağıtımdan nasıl etkili bir şekilde numune almalıyım?

xB(α,β), x>k

Eğer çok büyük olmadığından daha sonra ret örnekleme iyi yaklaşım olabilir, ama ben emin zaman devam etmek nasıl olduğumu k büyüktür. Belki de uygulanabilecek asimptotik bir yaklaşım vardır?kk


1
" " ile neyi kastettiğiniz net değil . Bir ifade ediyor kesilmiş (en solda kesilmiş beta dağılımını k )? xB(α,β), x>kk
Glen_b

@Glen_b tam olarak.
user1502040

5
1'den büyük her iki şekil parametresi için beta dağılımı log içbükeydir, bu nedenle ret örneklemesi için üstel zarflar kullanılabilir. Kesilmemiş beta varyasyonları oluşturmak için zaten kesilmiş üstel dağılımlardan (bu yapmak kolaydır) örnekleme yapıyorsunuz, bu yöntemi uyarlamak basit olmalıdır.
Scortchi - Monica'yı eski durumuna getirin

Yanıtlar:


14

Herhangi bir kesik dağılım için geçerli olan en basit ve en genel yol (her iki taraftaki kesime de genelleştirilebilir), ters dönüşüm örneklemesi kullanmaktır . Eğer ilgi kümülatif dağılım, daha sonra kümesidir p 0 = F ( k ) ve takeFp0=F(k)

UU(p0,1)X=F1(U)

nerede bir örnektir F at-kesilmiş sol k . Kuantil fonksiyon F - 1 , olasılıkları F'den alınan numunelerle eşleştirecektir . U değerlerini yalnızca kesilmemiş bölgeden alınan beta dağılımı değerleriyle eşleşen "alandan" aldığımızdan , yalnızca bu değerleri örneklersiniz.XFkF1FU

Bu yöntem, kesik alanın gri bir dikdörtgenle işaretlendiği, kırmızı noktaların dağılımından çizildiği ve daha sonra B ( 2 , 8 ) örneklerine dönüştürüldüğü aşağıdaki görüntüde gösterilmiştir .U(p0,1)B(2,8)

Kesik dağılımdan ters dönüşüm örneklemesi


5
(+1) Miktarsal fonksiyonun o kadar kolay değerlendirilemediğini belirtmek gerekir.
Scortchi

1
@Scortchi a veya b 1 veya en az bir tamsayı ise, o kadar da kötü bir form yoktur (bkz. Wikipedia ). Ve Python'da scipy.special.betaincters ve R'de vardır pbeta.
Graipher

3
@Graipher: "Genel olarak ucuza" demeliydim - mümkünse Newton-Raphson veya diğer yinelemeli çözümlerden kaçınmak daha iyi olurdu. (BTW qbetaR'deki kuantil fonksiyon içindir.)
Scortchi - Monica'yı eski durumuna getirin

1
@Scortchi haklısınız, ancak çoğu durumda, günümüz bilgisayarları için bu büyük bir sorun olmamalıdır. Bu yaklaşımı, çoğu yazılımda doğrudan mevcut olduğu ve yalnızca bir kantil fonksiyona erişimi varsa, herhangi bir kesik dağılım için genelleştirilebildiği için de tavsiye ederim .
Tim

1
kk

8

k

αβk1<k2

f(x)=x(α1)(1x)(β1)B(k2,α,β)B(k1,α,β)

xLxUα,β>1

g(x)=cλeλ(xxL)

bulunλ

λ=a1xb11x
c
c=f(x)λeλ(xxL)

resim açıklamasını buraya girin

A=c(1eλ(xUxL))
xλc

Q(x)=xa(1x)b(a+b2)xa+1[exp((b1)(xxL)1x+xL(a1)x(a1))exp((b1)(xxU)1x+xU(a1)x(a1))]

dQdxxdQdx=0

k1k2Ulog(1U)λλ

resim açıklamasını buraya girin

Bu yaklaşımın güzelliği, tüm sıkı çalışmaların kurulumda olmasıdır. Zarf işlevi tanımlandıktan sonra, kesilen beta yoğunluğu için normalleştirme sabiti hesaplanır, geriye kalan tek şey rasgele değişkenler oluşturmak ve bunlara birkaç basit aritmetik işlem, günlük ve güç ve karşılaştırma yapmaktır. Zarf işlevinin (yatay çizgiler veya daha üstel eğrilerle) sıkılması elbette reddetme sayısını azaltabilir.


1
+1 Güzel fikir. Beta, parametrelerinin mütevazı ila büyük değerleri için yaklaşık normal olduğundan, birbirlerine ne kadar yakın olduklarına bağlı olarak, bir Gauss zarfı kullanmak henüz biraz daha verimli olabilir.
whuber

α<1β<1

1
αβ

@whuber: (1) Zarfları inşa etmek için burada kullandığım yaklaşım işe yaramaz çünkü yoğunluklar kütük içbükey değildir. (2) (a) Kesinlikle cebirsel fonksiyonlar + kütükler ve güçler, trig demek istedim. isteseydim ve belki de gamma işlevleri bile - kesin bir fikrim olmadığını itiraf ediyorum. (b) Alınan nokta - hızlı fonksiyon değerlendirmeleri kapalı formları olanlarla sınırlı değildir.
Scortchi - Eski durumuna getir Monica

1
α<1β<1
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.