Büyük alfa ve beta içeren bir beta dağıtımı için yaklaşık değerleri sayısal olarak nasıl hesaplayabilirim


12

Büyük tamsayı alfa, beta (örn. Alfa, beta> 1000000) için bir beta dağılımının değerlerini hesaplamanın sayısal olarak kararlı bir yolu var mı ?

Aslında, bir şekilde sorunu daha kolay hale getirirse, mod çevresinde sadece% 99 güven aralığına ihtiyacım var.

Ekle : Üzgünüm, sorum düşündüğüm kadar net bir şekilde ifade edilmedi. Yapmak istediğim şu: Konveyör banttaki ürünleri kontrol eden bir makinem var. Bu ürünlerin bir kısmı makine tarafından reddedilir. Şimdi makine operatörü bir denetim ayarını değiştirirse, ona tahmini reddetme oranını ve mevcut tahminin ne kadar güvenilir olduğuna dair bazı ipuçları göstermek istiyorum.

Bu yüzden gerçek reddetme oranına rastgele bir değişken X olarak davrandığımı ve reddedilen nesnelerin N ve kabul edilen nesnelerin M sayısına göre rasgele değişken için olasılık dağılımını hesapladığımı düşündüm. X için düzgün bir önceki dağılım varsayarsak, bu N ve M'ye bağlı olarak beta dağıtımı Bu dağıtımı doğrudan kullanıcıya gösterebilir veya [l, r] aralığı bulabilir, böylece gerçek reddetme oranı p> = 0.99 (shabbychef terminolojisini kullanarak) ile bu aralıkta olur ve bunu görüntüler Aralık. Küçük M, N için (yani parametre değişikliğinden hemen sonra), dağılımı doğrudan hesaplayabilir ve [l, r] aralığına yaklaşabilirim. Ancak büyük M, N için bu saf yaklaşım, yetersiz akış hatalarına yol açar, çünkü x ^ N * (1-x) ^ M, çift hassasiyetli bir şamandıra olarak temsil edilmek üzere küçüktür.

Sanırım en iyi bahisim, küçük M, N için saf beta dağılımımı kullanmak ve M, N bir eşiği aşar aşmaz aynı ortalama ve varyansla normal bir dağılıma geçmek. bu mantıklı mı?


1
Matematiği mi, yoksa R'deki bir kod çözümünü mi öğrenmek istiyorsunuz?
John

Matematik iyi olurdu, bu yüzden C # uygulamak gerekir. Bir kod örneği de iyi olurdu, eğer bazı yerleşik R / Matlab / Mathematica işlevine güvenmiyorsa, C #'a çeviremiyorum.
Ağustos'ta nikie

PDF, CDF mi yoksa ters CDF mi?
JM bir istatistikçi değil

Beta konusunda ısrar etmiyorsanız, çok benzer ve çok daha basit cebirsel bir şekle sahip olan Kumaraswamy dağılımını kullanabilirsiniz: en.wikipedia.org/wiki/Kumaraswamy_distribution
Tim

Yanıtlar:


13

Normal bir yaklaşım, özellikle kuyruklarda son derece iyi çalışır . Ortalama bir ve varyansını kullanın . Örneğin, gibi zorlu bir durumda kuyruk olasılığındaki mutlak göreceli hata (çarpıklık söz konusu olabilir) civarında zirve yapar ve siz daha azdır. ortalamadan 1 SD'den fazla. (Bunun nedeni beta'nın çok büyük olması değildir : ile mutlak göreli hatalar ile sınırlıdırα βα/(α+β) α=106,β=1080.000260.00006α=β=1060.0000001αβ(α+β)2(1+α+β)α=106,β=1080.000260.00006α=β=1060.0000001.) Bu nedenle, bu yaklaşım esasen% 99'luk aralıkları içeren herhangi bir amaç için mükemmeldir.

Sorudaki düzenlemeler ışığında, bir kişinin integrali gerçekte entegre ederek beta integrallerini hesaplamadığını unutmayın: tabii ki deşarjlar alacaksınız (gerçekten önemli olmasa da, integrale kayda değer katkıda bulunmadıkları için) . Johnson & Kotz'da (İstatistiklerde Dağılımlar) belgelendiği gibi, integrali hesaplamanın veya yaklaşık olarak hesaplamanın birçok, birçok yolu vardır. Çevrimiçi hesap makinesi http://www.danielsoper.com/statcalc/calc37.aspx adresinde bulunabilir . Aslında bu integralin tersine ihtiyacınız var. Tersi hesaplamak için bazı yöntemler http://functions.wolfram.com/GammaBetaErf/InverseBetaRegularized/ adresindeki Mathematica sitesinde belgelenmiştir.. Kod Sayısal Tarifler'de (www.nr.com) verilmektedir. Gerçekten güzel bir çevrimiçi hesap makinesi Wolfram Alpha sitesidir (www.wolframalpha.com): inverse beta regularized (.005, 1000000, 1000001)sol uç nokta ve inverse beta regularized (.995, 1000000, 1000001)sağ uç nokta için girin ( ,% 99 aralık).α=1000000,β=1000001


Mükemmel! Her zaman masamda nr kitap vardı, ama asla oraya bakmayı düşündüm. Çok teşekkürler.
nikie

3

Hızlı bir grafik deneyi, alfa ve beta'nın her ikisi de çok büyük olduğunda beta dağılımının normal bir dağılıma benzediğini gösterir. "Beta dağıtım limiti normal" i arayarak http://nrich.maths.org/discus/messages/117730/143065.html?1200700623 , bir el yıkama 'kanıtı' buldum .

Beta dağıtımı için wikipedia sayfası ortalama, modunu (v büyük alfa ve beta için ortalamaya yakın) ve varyansı verir, böylece bir tahmin elde etmek için aynı ortalama ve varyansla normal bir dağılım kullanabilirsiniz. Bunun amaçlarınız için yeterince iyi olup olmadığı amaçlarınızın ne olduğuna bağlıdır.


Aptalca soru: Bu grafik deneyi nasıl yaptınız? Alfa / beta dağıtımını 100 civarında çizmeye çalıştım, ancak taşma hataları nedeniyle hiçbir şey göremedim.
nikie

İntegrali çizmek istemezsiniz: integrali çizmek istersiniz. Ancak, integrandi birçok yönden edinebilirsiniz. Bunlardan biri Wolfram Alpha sitesinde "D32 (beta (x, 1000000, 2000000), x) / beta (1, 1000000, 2000000) 0.3325'den 0.334'e" girmektir. İntegralin kendisi "Plot beta (x, 1000000, 2000000) / beta (1, 1000000, 2000000) ile 0.3325 ila 0.334" arasında görülür.
whuber

Stata'da integrali, yani beta dağıtımının pdf'sini çizdim - pdf için yerleşik bir işlevi var. Büyük alfa ve beta için, grafiğin normale yakın olduğunu görmek için arsa aralığını sınırlamanız gerekir. Eğer kendimi programlasaydım, onun logaritmasını hesaplayıp sonunda üsse. Bu, taşma sorunlarına yardımcı olmalıdır. Paydadaki beta işlevi, tamsayı alfa ve beta faktöriyellerine eşdeğer olan gama fonksiyonları olarak tanımlanır ve birçok paket / kütüphane bunun yerine / yerine gama () ve faktöriyel () fonksiyonlarını içerir.
onestop

2

Beta RV'den rastgele bir çekilme olasılığı 0.99 ile aralıkta olacak şekilde bir aralık isteyeceksiniz , ve için bonus noktaları mod etrafında simetrik olacaktır. Tarafından Gauss Eşitsizliği veya Vysochanskii-Petunin eşitsizliği, bu aralığı içeren aralıkları gerçekleştirebilmesi ve oldukça iyi yaklaşımlar olacaktır. Yeterince büyük , ve farklı sayılar olarak temsil ederken bile sayısal yetersizlik sorunlarınız olacaktır , bu nedenle bu rota yeterince iyi olabilir.l r [ l , r ] α , β l r[l,r]lr[l,r]α,β lr


Alfa ve beta birbirinden çok uzakta olmadığında (yani alfa / beta yukarıda ve aşağıda sınırlandırılır), Beta a'nın SD'si 1 / sqrt (alfa) ile orantılıdır. Örneğin, alpha = beta = 10 ^ 6 için, SD 1 / Sqrt (8) / 1000'e çok yakındır. Bence sadece tek duyarlıklı şamandıralar kullansanız bile l ve r gösterimi ile ilgili bir sorun olmayacaktır. .
whuber

yani 'yeterince büyük' ​​değildir;)106
shabbychef

1
Evet, beta uygulaması için çılgın bir sayı. BTW, bu eşitsizlikler hiçbir zaman iyi aralıklar üretmeyecektir, çünkü bunlar tüm dağılımlara göre aşırı uçlardır (belirli kısıtlamaları karşılarlar).
whuber

@whuber: Haklısın, onlar çılgın sayılar. Benim saf algoritma ile, "aklı başında" numaraları kolay ve iyi çalıştı, ama ben "çılgın" parametreler için nasıl hesaplamak için hayal bile edemedim. Dolayısıyla soru.
nikie

2
Tamam, haklısın: alfa + beta 10 ^ 30'u aştığında, çiftlerle zorluk çekeceksin :-). (Ancak l ve r'yi alfa / (alfa + beta) ortalamasından farklı olarak temsil ederseniz, alfa veya beta yaklaşık 10 ^ 303'ü geçene kadar iyi olacaksınız.)
whuber

1

Eğer beta dağıtılmış bir değişkendir, o zaman yaklaşık olarak normal olarak dağıtılan (yani: log-olasılıklarıdır . Bu, gibi yüksek derecede eğimli beta dağılımları için bile geçerlidirp l o g ( p / ( 1 - p ) ) m i n ( α , β ) > 100pplog(p/(1p))min(α,β)>100

Örneğin

f <- function(n, a, b) {
    p <- rbeta(n, a, b)
    lor <- log(p/(1-p))
    ks.test(lor, 'pnorm', mean(lor), sd(lor))$p.value
}
summary(replicate(50, f(10000, 100, 1000000)))

tipik olarak

özet (kopya (50, f (10000, 100, 1000000))) Min. 1. Qu. Ortalama Ortalama 3. Qu. Maks. 0.01205 0.10870 0.18680 0.24810 0.36170 0.68730

yani tipik p değerleri 0.2 civarındadır.

Bu nedenle, 10000 numunede bile Kolmogorov-Smirnov testi, ile yüksek derecede çarpık bir beta dağıtılmış değişkenin log olasılık oranı dönüşümünü ayırt etme gücünden yoksundur .α=100,β=100000

Dağılımı üzerinde Ancak benzer bir test kendisip

f2 <- function(n, a, b) {
    p <- rbeta(n, a, b)
    ks.test(p, 'pnorm', mean(p), sd(p))$p.value
}
summary(replicate(50, f2(10000, 100, 1000000)))

gibi bir şey üretir

summary(replicate(50, f2(10000, 100, 1000000)))
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
2.462e-05 3.156e-03 7.614e-03 1.780e-02 1.699e-02 2.280e-01 

0,01 civarında tipik p değerleri olan

R qqnormişlevi ayrıca, log-odds dağılımı için yaklaşık normallik gösteren çok düz görünümlü bir grafik oluşturarak, beta dsitribute değişkeninin dağılımının normallik olmadığını belirten ayırt edici bir eğri üretir.

Bu nedenle , her ikisi de 100'ün üzerinde olduğu sürece yüksek çarpık değerleri için bile günlük olasılık alanında bir Gauss yaklaşımı kullanmak mantıklıdır .α,β

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.