Normal Dağılımdaki çekimleri kullanarak Tekdüzen Dağıtımdan çekimleri simüle etme


15

Yakın zamanda , olasılık sorularından birinin aşağıdaki gibi olduğu bir veri bilimi görüşme kaynağı satın aldım :

Bilinen parametrelerle normal bir dağılımdan çekilişler verildiğinde, düzgün bir dağılımdan çekilişleri nasıl simüle edebilirsiniz?

Orijinal düşünce sürecim, ayrı bir rastgele değişken için, her alt bölümün normal eğri altında eşit bir alana sahip olduğu K benzersiz alt bölümlerine normal dağılımı kırabileceğimizdi. Sonra, değişkenin hangi K değerlerini aldığını, değişkenin normal eğrinin hangi alanına düştüğünü fark ederek belirleyebiliriz.

Ancak bu sadece ayrık rasgele değişkenler için işe yarar. Bence sürekli rastgele değişkenler için aynı şeyi nasıl içine biraz araştırma yaptım, ama ters bu kadar kullanırsınız örnekleme dönüşümü gibi ne yazık ki sadece teknikleri bulabildiğim girdi tekdüze rasgele değişken ve could çıkış diğer bazı dağılımından rasgele değişkenler. Tekdüzen rasgele değişkenler elde etmek için belki de bu işlemi tersine çevirebileceğimizi düşünüyordum?

Ayrıca muhtemelen normal rasgele değişkenleri doğrusal bir doğuştan üreteç içine girdi olarak kullanmayı düşündüm, ama bunun işe yarayıp yaramayacağından emin değilim.

Bu soruya nasıl yaklaşabileceğim hakkında bir fikrin var mı?

Yanıtlar:


30

Normal dağılımın hesaplanmasıyla ilgisi olmayan basit cebirsel hesaplamaları kullanma ruhu içinde aşağıdakilere yaslanırım. Onları düşündüğüm gibi sıralanırlar (ve bu nedenle daha fazla yaratıcılığa ihtiyaç duyarlar), ancak en iyi ve en şaşırtıcı olanı kurtarmak için kurtardım.

  1. Box-Mueller tekniğini ters çevirin : her bir normal çiftten atan2 ( Y , X ) olarak iki bağımsız üniforma yapılabilir ( [ - π , π ] aralığında(X,Y)atan2(Y,X)[π,π] ) ve ) Y 2 ) / 2 ) ( [ 0 , 1 ] aralığında ).exp((X2+Y2)/2)[0,1]

  2. Normalleri iki kişilik gruplar halinde alın ve sequence dizisi elde etmek için karelerini dağılımı özellikleri, Y1,Y2,...,Y,I,.... Çiftlerden elde edilenifadelerχ22Y1,Y2,,Yi,

    Xi=Y2iY2i1+Y2i

    Tekdüze olan bir dağılımına sahip olacaktır .Beta(1,1)

    Bunun sadece temel, basit aritmetik gerektirdiği açık olmalıdır.

  3. Çünkü Pearson korelasyon katsayısının tam olarak dağılımı , standart iki değişkenli normal dağılımdan dört çift numune eşit dağıtılır , basitçe (yani, sekiz değerleri dört çift grupta normallere alabilir her küme) ve bu çiftlerin korelasyon katsayısını döndürür. (Bu basit aritmetik artı iki kare kök işlemi içerir.)[1,1]

  4. Antik çağlardan beri kürenin silindirik bir izdüşümünün (üç uzaydaki bir yüzey) eşit alan olduğu bilinmektedir . Bu, küre üzerindeki düzgün bir dağılımın projeksiyonunda, hem yatay koordinatın (boylama karşılık gelen) hem de dikey koordinatın (enleme karşılık gelen) düzgün dağılımlara sahip olacağı anlamına gelir. Üç değişkenli Normal dağılım küresel olarak simetrik olduğundan, küreye izdüşümü eşittir. Boylamı elde etmek aslında Box-Mueller yöntemindeki ( qv ) açı ile aynı hesaplamadır , ancak öngörülen enlem yeni. Kürenin üzerindeki izdüşüm sadece üç koordinatı normalleştirir i - 2 , X 3 i - 1 , X 3 i ve hesaplama gruplarında alın ve bu noktada z , öngörülen enlemdir. Bu nedenle, Normal değişkenleri üç, X 3'lü gruplar halinde alın(x,y,z)zX3i2,X3i1,X3i

    X3iX3i22+X3i12+X3i2

    için .i=1,2,3,

  5. En işlem sistemlerinde sayıları temsil için ikili , düzgün sayı üretimi genellikle eşit dağılmış üreterek başlar tamsayılar arasında ve 2 32 - 1 (ya da yüksek güç 2 bilgisayar kelime uzunluğu ile ilgili olan) gerektiği gibi ve bunları yeniden olçeklendirme. Bu tamsayılar dahili olarak 32 ikili basamak dizeleri olarak temsil edilir . Bir Normal değişkeni medyanıyla karşılaştırarak bağımsız rastgele bitler elde edebiliriz. Bu nedenle, Normal değişkenleri istenen bit sayısına eşit büyüklükteki gruplara ayırmak, her birini ortalamasıyla karşılaştırmak ve elde edilen doğru / yanlış sonuç dizilerini bir ikili sayıya birleştirmek yeterlidir. Yazma k02321232kbit sayısının ve işareti (olduğunu H ( x ) = 1 olduğunda X > 0 ve H ( x ) = 0 , aksi takdirde) biz elde edilen standartlaştırılmış homojen bir değeri ifade edebilir [ 0 , 1 ) aşağıdaki formüle sahipHH(x)=1x>0H(x)=0[0,1)

    j=0k1H(Xkij)2j1.

    Dağılımı özellikleri çıkarılabilecek bir eden medyan, sürekli dağıtım 0 (örneğin, standart bir Normal gibi); bunlar, k grubu halinde işlenir ve her bir grup, böyle bir sözde tekdüze değer üretir.Xn0k

  6. Reddetme örneklemesi , rastgele dağılımlardan rasgele değişkenler çekmenin standart, esnek ve güçlü bir yoludur. Hedef dağıtımın PDF dosyası olduğunu varsayalım . Değeri Y, uygun olarak çizilir bir PDF ile dağıtım g . Reddetme adımında, 0 ile g ( Y ) arasında uzanan muntazam bir değer U , Y'den bağımsız olarak çizilir ve f ( Y ) ile karşılaştırılır : daha küçükse, YfYgU0g(Y)Yf(Y)Ykorunur ancak aksi halde işlem tekrarlanır. Yine de bu yaklaşım dairesel gözüküyor: başlangıçta tekdüze bir değişkene ihtiyaç duyan bir işlemle tek tip bir değişken nasıl üretebiliriz?

    Cevap, reddetme adımını gerçekleştirmek için tek tip bir değişkene ihtiyacımız olmadığıdır. Bunun yerine ( varsayarak ) rastgele 0 veya 1 elde etmek için adil bir para çevirebiliriz . Bu, [ 0 , 1 ) aralığında tekdüze bir U değişkeninin ikili gösterimindeki ilk bit olarak yorumlanacaktır . Sonuç ise 0 , bu araçlar 0 u < 1 / 2 ; aksi halde, 1 / 2 u < 1 . g(Y)001U[0,1)00U<1/21/2U<1 Zamanın yarısı , bu ret adımına karar vermek için yeterlidir: eğer , ancak jeton 0 , Y, kabul edilmelidir; Eğer f ( E ) / g ( E ) < 1 / 2 , ancak jeton 1 , Y, reddedilmelidir; Aksi takdirde, bir sonraki U bitini elde etmek için jetonu tekrar çevirmemiz gerekir. Çünkü - f değeri ne olursa olsun ( Yf(Y)/g(Y)1/20Yf(Y)/g(Y)<1/21YU - bir orada 1 / 2 , her kapak sonra durdurma şansı çevirir beklenen sayısı sadece 1 / 2 ( 1 ) + 1 / 4 ( 2 ) + 1 / 8 ( 3 ) + + 2 - n ( n ) + = 2 .f(Y)/g(Y)1/21/2(1)+1/4(2)+1/8(3)++2n(n)+=2

    Beklenen reddetme sayısının az olması koşuluyla, reddetme örneklemesi faydalı olabilir (ve etkili olabilir). Bunu, Normal PDF'nin altına mümkün olan en büyük dikdörtgeni (tekdüze bir dağılımı temsil eden) yerleştirerek başarabiliriz.

    Normal and Uniform PDFs

    Dikdörtgen'ın alanı optimize etmek Matematik kullanarak, kendi uç yalan gerektiğini bulacaksınız yüksekliği eşittir, exp ( - 1 / 2 ) / ±1, daha onun alanı biraz daha büyük hale0.48. Bu standart Normal yoğunluğugolarak kullanarakve aralığın dışındaki tüm değerleri reddederek[-1,exp(1/2)/2π0.2419710.48gotomatik olarakve aksi takdirde ret prosedürünü uygulayarak, [ - 1 , 1 ] 'de düzgün değişkenler elde ederiz:[1,1][1,1]

    • Zamanın , Normal varyant ötesindedir2Φ(1)0.317ve hemen reddedilir. ( Φ standart Normal CDF'dir.)[1,1]Φ

    • Zamanın geri kalan kısmında, ortalama iki Normal değişiklik gerektiren ikili ret prosedürü izlenmelidir.

    • Genel prosedür ortalama adım.1/(2exp(1/2)/2π)2.07

    Her bir homojen sonucu üretmek için gereken Normal değişken sayısı

    2eπ(12Φ(1))2.82137.

    Her ne kadar bu oldukça verimli olsa da, (1) Normal PDF hesaplamasının üstel bir hesaplama gerektirdiğini ve (2) değerinin bir kez ve herkes için önceden hesaplanması gerektiğini unutmayın. Hala Box-Mueller yönteminden ( qv ) biraz daha az hesaplama .Φ(1)

  7. Sıra istatistikleri düzgün bir dağılım eksponansiyel boşlukları vardır. İki Normalin (sıfır ortalama) karelerinin toplamı üstel olduğundan, bu tür Normallerin çiftlerinin karelerini toplayarak, bunların kümülatif toplamını hesaplayarak, sonuçların aralıkta düşmesini yeniden düzenleyerek bağımsız üniforma gerçekleştirebiliriz. [ 0 , 1 ] ve sonuncusunu düşürme (her zaman 1'e eşit olacaktır ). Bu hoş bir yaklaşımdır çünkü sadece kareleme, toplama ve (sonunda) tek bir bölüm gerektirir.n[0,1]1

    değerleri otomatik artan düzende olacaktır. Böyle bir sıralama isteniyorsa, bu yöntem, bir tür O ( n log ( n ) ) maliyetinden kaçındığı sürece , diğerlerine göre hesaplama açısından daha üstündür . Bununla birlikte, bir dizi bağımsız üniforma gerekiyorsa, bu n değerlerini rastgele sıralamak hile yapacaktır. (Box-Mueller yönteminde görüldüğü gibi, qv ) her bir Normal çiftinin oranları, her bir çiftin karelerinin toplamından bağımsız olduğu için, bu rastgele permütasyonu elde etme araçlarımız zaten var: kümülatif toplamları karşılık gelen oranlara göre sıralayın . (Eğer nnO(nlog(n))nn çok büyük olduğundan , bu işlem küçük verimlilik kaybı olan küçük k gruplarında gerçekleştirilebilir , çünkü her bir grup k muntazam değerler oluşturmak için sadece 2 ( k + 1 ) Normal'e ihtiyaç duyar . Sabit k için asimptotik hesaplama maliyeti bu nedenle O ( n log ( kk2(k+1)kk = O ( n ) 'dir , 2 n ( 1 + 1 / k ) gerektirir. Normal, n eşit değerüretmek için değişir.)O(nlog(k))O(n)2n(1+1/k)n

  8. Mükemmel bir yaklaşıma göre, büyük bir standart sapmaya sahip olan herhangi bir Normal varyasyonu , çok daha küçük değer aralıklarında eşit görünür . Bu dağılımı aralığına yuvarladıktan sonra (değerlerin sadece kesirli kısımlarını alarak), böylece tüm pratik amaçlar için eşit olan bir dağılım elde ederiz. Bu son derece verimlidir ve hepsinin en basit aritmetik işlemlerinden birini gerektirir: her Normal değişkeni en yakın tamsayıya yuvarlayın ve fazlalığı koruyun. Pratik bir uygulamayı incelediğimizde bu yaklaşımın sadeliği zorlayıcı hale gelir :[0,1]R

    rnorm(n, sd=10) %% 1
    

    [ 0 , 1 ]n aralığında sadece Normal değişkenler pahasına ve neredeyse hiç hesaplama olmadan güvenilir bir şekilde eşit değerler üretir .[0,1]n

    (Standart sapma olsa bile , bu yaklaşımın PDF'si, aşağıdaki şekilde gösterildiği gibi, 10 8'de bir kısımdan daha azıyla tekdüze bir PDF'den farklılık gösterir ! Güvenilir bir şekilde tespit etmek için 10 16 değere sahip bir örnek gerekir. Standart bir rasgele testin kapasitesinin ötesinde bir durumdur.Daha büyük bir standart sapma ile tekdüzeliklik o kadar küçüktür, örneğin kodda gösterildiği gibi 10'luk bir SD ile , bir üniformadan maksimum sapma PDF yalnızca 10 - 857'dir .)110810161010857

    Approximate PDF


Her durumda "bilinen parametreleri olan" normal değişkenler, kolayca yukarıda açıklanan Standart Normallere yeniden girilebilir ve yeniden ölçeklendirilebilir. Daha sonra, elde edilen homojen dağılmış değerler, istenen herhangi bir aralığı kapsayacak şekilde yeniden girilebilir ve yeniden ölçeklendirilebilir. Bunlar sadece temel aritmetik işlemleri gerektirir.

Bu yapıların kolaylığı, Rçoğu için sadece bir veya iki satır kullanan aşağıdaki kodla kanıtlanmıştır . Bunların doğruluğu Elde edilen yakın üniform tanıklık eder göre histogramları her bir durumda, bağımsız bir değerleri (her yedi simülasyonlar için yaklaşık 12 saniye gerektiren). Referans için - bu grafiklerin herhangi birinde görünen varyasyon miktarı konusunda endişeleriniz varsa - sonunda üniform rasgele sayı üreteci ile simüle edilmiş tek biçimli değerlerin bir histogramı eklenir .100,000R

Histograms

χ210003%R

set.seed(17)
n <- 1e5
y <- matrix(rnorm(floor(n/2)*2), nrow=2)
x <- c(atan2(y[2,], y[1,])/(2*pi) + 1/2, exp(-(y[1,]^2+y[2,]^2)/2))
hist(x, main="Box-Mueller")

y <- apply(array(rnorm(4*n), c(2,2,n)), c(3,2), function(z) sum(z^2))
x <- y[,2] / (y[,1]+y[,2])
hist(x, main="Beta")

x <- apply(array(rnorm(8*n), c(4,2,n)), 3, function(y) cor(y[,1], y[,2]))
hist(x, main="Correlation")

n.bits <- 32; x <-  (2^-(1:n.bits)) %*% matrix(rnorm(n*n.bits) > 0, n.bits)
hist(x, main="Binary")

y <- matrix(rnorm(n*3), 3)
x <- y[1, ] / sqrt(apply(y, 2, function(x) sum(x^2)))
hist(x, main="Equal area")

accept <- function(p) { # Using random normals, return TRUE with chance `p`
  p.bit <- x <- 0
  while(p.bit == x) {
    p.bit <- p >= 1/2
    x <- rnorm(1) >= 0
    p <- (2*p) %% 1
  }
  return(x == 0)
}
y <- rnorm(ceiling(n * sqrt(exp(1)*pi/2))) # This aims to produce `n` uniforms
y <- y[abs(y) < 1]
x <- y[sapply(y, function(x) accept(exp((x^2-1)/2)))]
hist(x, main="Rejection")

y <- matrix(rnorm(2*(n+1))^2, 2)
x <- cumsum(y)[seq(2, 2*(n+1), 2)]
x <- x[-(n+1)] / x[n+1]
x <- x[order(y[2,-(n+1)]/y[1,-(n+1)])] 
hist(x, main="Ordered")

x <- rnorm(n) %% 1 # (Use SD of 5 or greater in practice)
hist(x, main="Modular")

x <- runif(n)      # Reference distribution
hist(x, main="Uniform")

2
Z=(X1X2)/(X3X4) is standard Cauchy (regardless of the mean and variance of X), which has a nice cdf.
cardinal

1
More generally, the principle is to find a pivotal quantity from the sample with a computationally amenable cdf. This ties in nicely with constructing confidence intervals and hypothesis tests, with the twist that we might seek to optimize the number of elements used rather than the latter cases which focus more on maximizing the information from a fixed sample size.
cardinal

@Cardinal Thank you for the interesting comments, as well as the ninth method (Cauchy). Even finding a pivotal quantity is unnecessary when only a good approximation is sought. For instance, (8) works perfectly well if you reserve a small number of initial results to establish a rough scale.
whuber

8

You can use a trick very similar to what you mention. Let's say that XN(μ,σ2) is a normal random variable with known parameters. Then we know its distribution function, Φμ,σ2, and Φμ,σ2(X) will be uniformly distributed on (0,1). To prove this, note that for d(0,1) we see that

P(Φμ,σ2(X)d)=P(XΦμ,σ21(d))=d.

The above probability is clearly zero for non-positive d and 1 for d1. This is enough to show that Φμ,σ2(X) has a uniform distribution on (0,1) as we have shown that the corresponding measures are equal for a generator of the Borel σ-algebra on R. Thus, you can just tranform the normally distributed data by the distribution function and you'll get uniformly distributed data.


4
It's the inverse of inverse transform sampling!
Roger Fan

Could you possibly elaborate on the second sentence of your second paragraph? I am having trouble understanding the following: "This is enough to show that Φμ,σ2(X) has a uniform distribution on (0,1) as we have shown that the corresponding measures are equal for a generator of the Borel σ-algebra on ℝ."
wellington

To show that some real random variable, X, has a uniform distribution, we should show that its corresponding measure, X(P) equals that of the uniform distribution for all measurable sets of the real line. However, it's actually enough to consider some generator of the σ-algebra, due to a uniqueness of measures-theorem. If they are equal on sets of the generator, they'll be equal for all measurable sets. This is just a measure-theoretic attachment to the answer.
swmo
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.