Normal dağılım yüzdesinin hesaplanması


9

Bu Wikipedia sayfasına bakın:

http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Agresti-Coull_Interval

Agresti-Coull Aralığı almak için, bir ihtiyacı normal dağılımın bir yüzdelik denilen hesaplamak . Yüzdelik dilimi nasıl hesaplayabilirim? Wolfram Mathematica ve / veya Python / NumPy / SciPy'de bunu yapan hazır bir işlev var mı?z


1
"Tam Wiki'den aldığım normal cdf" deki integral ifade maalesef faktörü ile kapalı . Normal cdf veya bunun tersi için, standart fonksiyonları ( vb.) İçeren sınırlı sayıda terim kullanarak bilinen kesin bir formül yoktur ancak hem normal cdf hem de tersi çok fazla ve yaklaşık olarak incelenmiştir. Her ikisi için formüller, istatistiksel paketlerden bahsetmemek için birçok hesap makinesine, elektronik tablolara programlanmıştır. R'ye aşina değilim ama aradığınız şey zaten olmasaydı şaşırırdım. 1/πexp,log,sincos
Dilip Sarwate

@DilipSarwate, düzeltildi! Bunu ters dönüşüm kullanarak yapıyorum, aynı zamanda çok fazla yerleşik kullanmasına izin verilmiyor. Sanırım öğrenme uğruna.
user1061210

1
@Dilip: Sadece bilinen tam bir formül yok, daha da iyisi, böyle bir formülün bulunamayacağı biliniyor !
kardinal

1
Box-Muller yöntemi bağımsız standart normal rastgele değişkenlerin ortak dağılımından örnekler üretir . Böylece üretilen değerlerin histogramları standart normal dağılımlara benzeyecektir. Ancak Box-Muller yöntemi, bu arada değerlerini hesaplamak için bir yöntem değildir , ancak " değeri veya daha düşük olan standart normal örnek oluşturdum ve böylece , ve .Φ(x)10484011Φ(1)0.8401Φ1(0.8401)1
Dilip Sarwate

1
Beklediğiniz sayı türlerine örnek olarak seçtim . ve oluşturmak, böylece , standart normal dağılımın örnekleri, Karşılaşabileceklerinizin yakın için arasında değeri için numuneler . Box-Muller yöntemini doğru bir şekilde uyguluyorsunuz, ancak aldığınız ve bunları 8401Φ(1)=0.84131048413100001
cdf

Yanıtlar:


3

İçin Mathematica $VersionNumber > 5 kullanabilirsiniz

Quantile[NormalDistribution[μ, σ], 100 q]

qYüzdelik dilim için .

Aksi takdirde, önce uygun İstatistik paketini yüklemelisiniz.


(7. sürümüm var.) İstatistik paketini yüklerken sorun yaşamıyorum. Ama oradaki fonksiyon ne? Çünkü bu Quantilesatırın formülü kullanmak yerine hesaplamayı elle yapacağına dair bir izlenim edindim.
Ram Rachum

(Yani değil atama değerleri do sembolik parametrelerle değerlendirin mu, sigmave q); ters hata işlevini içeren bir ifade almalısınız.
JM bir istatistikçi değil

16

John Cook'un Scipy'deki Dağılımları sayfası, bu tür şeyler için iyi bir referanstır:

In [15]: import scipy.stats

In [16]: scipy.stats.norm.ppf(0.975)
Out[16]: 1.959963984540054

4

Peki, R hakkında soru sormadınız, ama R'de? Qnorm

(Aslında kantil değil, yüzdelik değer, ya da inanıyorum)

> qnorm(.5)
[1] 0
> qnorm(.95)
[1] 1.644854

1
Kuantil ve persentil (sadece bir terminoloji meselesi), j.mp/dsYz9z .
chl

1
Biz içerideyken, R Wald ayarlı CI'ler (örn. Agresti-Coull) PropCIspakette mevcuttur . Wilson yöntemi varsayılan Hmisc::binconfdeğerdir (Agresti ve Coull tarafından önerildiği gibi).
chl


0

MatLab ve Mathematica'da bulunan ters erf işlevini kullanabilirsiniz .

Normal CDF için,

y=Φ(x)=12[1+erf(x2)]

Biz olsun

x=2 erf1(2y1)

Log-normal CDF için,

y=Fx(x;μ,σ)=12erfc(logxμσ2)

Biz olsun

log(x)=μ+σ2 erfc1(2y)

2
bu bir cevaptan çok bir yorum değil mi?
Makro

Benim fikrim erf ve erfc fonksiyonları için ters varsa, o zaman sorun çözüldü oldu. MatLab, örneğin, bu gibi önceden programlanmış fonksiyonlara sahiptir.
Jean-Victor Côté

@ Jean-VictorCôté Lütfen, cevaplarınızda fikirlerinizi geliştirin. Aksi takdirde, yalnızca yukarıda önerildiği gibi bir yorum gibi görünür.
chl

Lognormal hesaplama doğru görünmüyor. Sonuçta, onun ters CDF olmalıdır özdeş kullanımı için ayrı normal, ters CDF yerine . log(x)x
whuber
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.