Bu doğru mu ? (Kesik-norm-çok değişkenli-Gauss üretme)


10

Eğer , yani XR,n, X~N-(0_,σ2ben)

fX(x)=1(2πσ2)n/2tecrübe(-||x||22σ2)

Çok değişkenli bir durumda kesik normal dağılımın benzer bir versiyonunu istiyorum .

Daha doğrusu, çok değişkenli bir norm kısıtlamalı ( a değerine ) Gaussian st buradabirY

fY(y)={c.fX(y), Eğer ||y||bir0, aksi takdirde .
c=1PrÖb{||X||bir}

Şimdi aşağıdakileri gözlemliyorum:

Eğer ,x=(x1,x2,...,xn)||x||bir

|xn|Tmaksimum(0,(bir2-Σ1n-1xben2))

Bu nedenle seçerek x1,...,xn-1 Gauss örnekleri olarak, bir kısıtlayabilir xn bir takım örnek olarak Kesik-normal dağılımı (bir Gauss-kuyruk aşağıdaki T dağılımı) N-T(0,σ2) , olasılık 1/2 ile rastgele seçilen işareti hariç 1/2.

Şimdi sorum şu,

I oluşturmak Eğer her vektör örneği (x1,...,xn) arasında (X1,...,Xn) olarak,

x1,...,xn-1~N-(0,σ2)

ve

Z 1{ ± 1 w.p. 1 / 2 } Z 2 ~ , N , T ( 0 , σ 2 ) T ( X 1 , ... , x , n - 1 ) xn=Z1*Z2  burada, , , (örn. ile kesilmiş skaler-normal RV Z1{±1 w.p. 1/2}Z2NT(0,σ2)T(x1,,xn1)max(0,(a21n1xi2))

Will olmak norm sınırlıysa ( ) çok değişkenli Gauss? (yani yukarıda tanımlanan aynı ). Nasıl doğrulamalıyım? Bu şekilde değilse başka bir öneriniz var mı?a Y(X1,X2,,Xn)aY

DÜZENLE:

Burada, 2B durumda noktaların "1" üzerindeki değerlere kısaltılmış noktaların dağılım grafiği Norm kesilmiş çok değişkenli Gauss

Not: Aşağıda bazı harika yanıtlar vardır, ancak bu teklifin neden yanlış olduğunun gerekçesi eksiktir. Aslında, bu sorunun ana noktası budur.


1
@ Xi'an Sorgunuz ve ilginiz için teşekkür ederiz. İşte benim mantıklı : Söz konusu algoritmanın örnek başına görüldüğünde Gauss ve Truncated-Gaussian olan ihtiyacı var ; daha spesifik olarak, dağılımlardan biri her numuneyi değiştirir. Bunlar ilgili marjinaller değildir . Çünkü, her iki terimle görünür: ve ; ve , her örnek için kesme eşiği değiştiğinden zamanla açıkça değişir. Verdiğiniz ayrışma kanıtının tam olarak aynı anlamda bir sorunu var. Marjinaller mevcut değildir. n - 1 x i , i = 1 , , n - 1 x i x n x nX1...Xnn-1xben,ben=1,...,n-1xbenxnxn
Olasılığı Seviyor

(Yanlış) algoritmanız önce ve ardından verilen . Bu nedenle, ilk nesil marjinalden, ikinci nesil şartlıdır. Kanıtım, marjinalin (n-1) boyutlu bir Gauss dağılımı olmadığını gösteriyor.
X1,,Xn1N(0,σ2)
XnNT(0,σ2)
X1,...,Xn-1
Xi'an

@ Xi'an Koşullu Gauss Marjinal Gauss anlamına gelmez !!
Olasılığı

@ Xi'an Tamam, demek istediğim bu. Zaman Gauss olarak üretilir ve daha sonra koşulları, bu değerlere bağlı, bir majinal olmaz Gauss olabilir. Söylediklerin tamamen aynı. "Şartlı Gauss" olabilirler ama kesinlikle "marjinal olarak Gauss" olmayabilirler. Daha önceki yorumum bu demektir. X 1 , , X n - 1X1,,Xn1X1,,Xn1
Olasılığı

1
@ Xi'an Hastanızın cevapları için çok teşekkürler. Sonunda stimülasyonunuzdaki hatamı anladım ve aynı şeyi açıklayan kendi detaylı cevabımı da yazdım . Ama üzgünüm, umursamıyorsun, muhtemelen sorunun gerçekte çözülmesine yardımcı olan ayrıntılı açıklaması için whuber'in cevabını kabul etmeliyim.
Olasılığı

Yanıtlar:


11

çok değişkenli normal dağılımı küresel olarak simetriktir. Dağıtım sen yarıçap yuvarlar aramaya aşağıda . Bu kriter yalnızca uzunluğuna bağlı olduğundan, kesik dağılım küresel olarak simetrik kalır. Yana küresel açısından bağımsızve bir sahiptir dağılımı , bu nedenle sadece bir kaç basit adımda kesilmiş dağılım değerleri oluşturabilir:ρ = | | X | | 2 a X ρ X / | | X | | ρXρ=||X||2birXρX/||X||χ ( n )ρσχ(n)

  1. Oluşturmak .XN(0,In)

  2. kesilmiş bir dağılımının karekökü olarak üretin .χ 2 ( d ) ( a / σ ) 2Pχ2(d)(a/σ)2

  3. Let.Y=σPX/||X||

1. adımda , standart bir normal değişkenin bağımsız gerçekleştirme dizisi olarak elde edilir .dXd

Adım 2'de, kolaylıkla quantile fonksiyonu çevrilmesi ile oluşturulur a dağılımı: üniform bir değişken oluşturmak arasında (tahminlerinin) aralığında desteklenen ve ve .F - 1 χ 2 ( d ) U F ( ( a / σ ) 2 ) 1 P = PF-1χ2(d)UF((bir/σ)2)1P=F(U)

Burada bir histogramıdır bu bağımsız gerçekleşmeleri için içinde aşağıda kesildi boyutları, . Algoritmanın verimliliğini kanıtlamak yaklaşık bir saniye sürdü. σ P σ = 3 n = 11 a = 7105σPσ=3n=11bir=7

şekil

Kırmızı eğri, ölçeklendirilmiş kesilmiş bir dağılımının yoğunluğudur . Histogramla yakın uyumu, bu tekniğin geçerliliğinin kanıtıdır.σ = 3χ(11)σ=3

Kesme için bir bilgi edinebilmek için, durumu göz önüne , içinde boyutları. İşte karşı karşısında bir dağılım ( bağımsız gerçekleşme için). Açıkça yarıçapı en deliği gösteren :σ = 1 n = 2 Y 2 Y 1 10 4 aa=3σ=1n=2Y2Y1104a

şekil 2

Son olarak, (1) bileşenlerinin aynı dağılımlara (küresel simetri nedeniyle) ve (2) dışında , bu ortak dağılımın Normal olmaması gerektiğine dikkat edin. Aslında, çok büyür, (tek değişkenli) normal dağılım hızla azalması yüzeyine yakın bir küme normal küresel kesilmiş değişkenli olasılık en neden -sphere (yarıçapı ). Bu nedenle marjinal dağılım aralığında konsantre edilmiş ölçekli simetrik Beta dağılımına yaklaşmalıdır . Bu, önceki dağılım grafiğinde belirgindir; burada a = 0 a n - 1 a ( ( n - 1 ) / 2 , ( n - 1 ) / 2 ) ( - a , a ) a = 3 σ 2 - 1 3 σXia=0an1a((n1)/2,(n1)/2)(a,a)a=3σzaten iki boyutta büyüktür: noktalar yarıçapına sahip bir halkayı ( küre) kirletir .213σ

Burada büyüklükte bir simülasyon marjinal dağılımlarının histogramlardır de ile boyutları , (bu yaklaşan beta dağıtım homojendir):1053a=10σ=1(1,1)

Figür 3

Soruda açıklanan prosedürün ilk marjinalleri normal olduğundan (yapım yoluyla), bu prosedür doğru olamaz.n1


Aşağıdaki Rkod ilk rakamı oluşturdu. üretilmesi için 1-3 arası paralel adımlara yapılandırılmıştır . Bu değiştirme değişkenlerinin, ikinci rakam oluşturmak için modifiye edilmiştir , , ve daha sonra arsa komutu veren sonra oluşturulmuştur.Yadnsigmaplot(y[1,], y[2,], pch=16, cex=1/2, col="#00000010")y

Daha yüksek sayısal çözünürlük için nesli kodda değiştirilir: kod aslında üretir ve bunu hesaplamak için kullanır .U1UP

Sözde bir algoritmaya göre veri simülasyonu, bir histogram ile özetleme ve bir histogramın üst üste getirilmesi ile aynı teknik, soruda açıklanan yöntemi test etmek için kullanılabilir. Yöntemin beklendiği gibi çalışmadığını doğrular.

a <- 7      # Lower threshold
d <- 11     # Dimensions
n <- 1e5    # Sample size
sigma <- 3  # Original SD
#
# The algorithm.
#
set.seed(17)
u.max <- pchisq((a/sigma)^2, d, lower.tail=FALSE)
if (u.max == 0) stop("The threshold is too large.")
u <- runif(n, 0, u.max)
rho <- sigma * sqrt(qchisq(u, d, lower.tail=FALSE)) 
x <- matrix(rnorm(n*d, 0, 1), ncol=d)
y <- t(x * rho / apply(x, 1, function(y) sqrt(sum(y*y))))
#
# Draw histograms of the marginal distributions.
#
h <- function(z) {
  s <- sd(z)
  hist(z, freq=FALSE, ylim=c(0, 1/sqrt(2*pi*s^2)),
       main="Marginal Histogram",
       sub="Best Normal Fit Superimposed")
  curve(dnorm(x, mean(z), s), add=TRUE, lwd=2, col="Red")
}
par(mfrow=c(1, min(d, 4)))
invisible(apply(y, 1, h))
#
# Draw a nice histogram of the distances.
#
#plot(y[1,], y[2,], pch=16, cex=1/2, col="#00000010") # For figure 2
rho.max <- min(qchisq(1 - 0.001*pchisq(a/sigma, d, lower.tail=FALSE), d)*sigma, 
               max(rho), na.rm=TRUE)
k <- ceiling(rho.max/a)
hist(rho, freq=FALSE, xlim=c(0, rho.max),  
     breaks=seq(0, max(rho)+a, by=a/ceiling(50/k)))
#
# Superimpose the theoretical distribution.
#
dchi <- function(x, d) {
  exp((d-1)*log(x) + (1-d/2)*log(2) - x^2/2 - lgamma(d/2))
}
curve((x >= a)*dchi(x/sigma, d) / (1-pchisq((a/sigma)^2, d))/sigma, add=TRUE, 
      lwd=2, col="Red", n=257)

1
Bu harika bir cevap! Ancak, söz konusu teklifin neden başarısız olduğuna da biraz ışık tutabilir misiniz ? (Xi'an'ın cevabı yeterince tatmin edici değil, argümanında bazı problemler görüyorum, örneğin bütünleştiğinde)
Olasılıkları Seviyor

1
Çok teşekkür ederim. Ancak, sizden yukarıdaki ilk yorumuma cevap vermenizi de isteyebilir miyim? Öyle görünüyor ki, teklifim de yeterince iyi bir histogram veriyor. Kafam karıştı!! Hata nerede? Bu, sorunun ana noktasıdır ve EĞER DOĞRU ise, yöntemin sadece bir "kesik Gauss" örnek PLUS'a ihtiyacı var Mevcut hızlı algoritmaların kullanılabilirliği ile büyük bir tasarruf sağlar (bölümlere ve çarpmalara ek olarak, nispeten daha karmaşık kesilmiş-ChiSquare ihtiyacından kaçınarak)
Olasılık

2
Söyleyebileceğim yakın olarak, çizim öneriyoruz Normal dağıtım ve gelen IID iki taraflı kesilmiş Normal çıkışlı. Açıkçası kesilmiş bir MVN dağılımı değil, çünkü için bir dağılım grafiği kolayca açığa çıkacak, sorunuzu o kısmı anlayamadığımı düşünüyorum. Daha genel olarak bir şey neden yaptığını sormak soruların yükü değil iş o kanıt sağlamaktır asker üzerindedir yapar işi. Belki de böyle bir kanıt sağladıysanız, sorunuzun niteliği netleşecektir. X1,,Xn1Xnn=2
whuber

1
Detaylar için teşekkürler. Dediğin gibi 2-B dağılım grafiği ekledim ve birkaç cümleyi düzelttim. Bu arada, özür dilerim toplam kanıt yükünü size aktarmak istememiştim. Teklifim tüm basit kontrollerle iyi çalışıyor gibi görünüyor, bu yüzden neden bu sorunun ana amacı olan yanlış olduğunu merak ediyorum.
Olasılığı

1
Marjinal dağılımlara bakmak, prosedürlerdeki farklılıkları göstermek için bulabildiğim en basit yoldur. Bu kenar boşluklarını göstermek için bir rakam ve kod ekledim.
whuber

7

Bunu herhangi bir puan istemediğinizi varsayarak yazdım || y || > a, olağan tek boyutlu kesmenin analogudur. Ancak, noktaları | y || > = a ve diğerlerini dışarı atın. Yine de, gerçekten | y || > = a.

Çok genel bir teknik olan en basit yol Kabul Kabul Reddi kullanmaktır https://en.wikipedia.org/wiki/Rejection_sampling . Prob (|| X ||> a) oldukça düşük olduğu sürece oldukça hızlı olacaktır, çünkü o zaman çok fazla reddetme olmayacaktır.

Kısıtsız Çok Değişkenli Normalden bir örnek değer x oluşturun (sorununuz Çok Değişkenli Normal'in küresel olduğunu belirtmesine rağmen, teknik olmasa bile uygulanabilir). || x || <= a, kabul et, yani x kullanın, aksi takdirde reddedin ve yeni bir örnek oluşturun. İstediğiniz sayıda kabul edilen örneğe sahip olana kadar bu işlemi tekrarlayın. Bu prosedürün uygulanmasının etkisi, y'nin yoğunluğu c * f_X (y) olacak şekilde üretilmesidir. <= a ve || y || > a, sorunuzun açılış kısmındaki düzeltmem uyarınca. Asla c hesaplamanıza gerek yoktur; aslında numunelerin reddedilme sıklığına göre algoritma tarafından otomatik olarak belirlenir.


3
+1 Teklifinizin küresel olmayan simetrik olmayan MVN'lerle çalışmasını, etkili olacağı koşulları açıkça tanımladığınızı ve ret örneklemesi kullanıp kullanmayacağınıza karar verirken reddetme oranını değerlendirme gereğini vurguladığınızı seviyorum.
whuber

2
Evet ve aynı zamanda, sadece 2-normun burada olduğu gibi bir eşiğin üstünde veya altında olmasının yanı sıra, rastgele şekillendirilmiş kabul bölgeleri için de işe yarayabileceğini unutmayın.
Mark L. Stone

5

Bu güzel bir girişimdir, ancak "normalleştirme sabiti" nedeniyle çalışmaz: eklem yoğunluğunu ayrıştırma

fX(x)α1(2πσ2)n/2tecrübe(-||x||22σ2)ben||x||>bir=1(2πσ2)n/2tecrübe(-x12+...+xn22σ2)ben||x||>bir
fX(x)α1(2πσ2)(n-1)/2tecrübe(-||x-n||22σ2)1(2πσ2)1/2tecrübe(-xn22σ2)ben||x||>bir
=1(2πσ2)(n-1)/2tecrübe(-||x-n||22σ2)1(2πσ2)1/2tecrübe(-xn22σ2)ben||x-n||2+xn2>bir2
=P(Xn2>bir2-||x-n||2)(2πσ2)(n-1)/2tecrübe(-||x-n||22σ2)
xP(Xn2>bir2-||x-n||2)-1(2πσ2)1/2tecrübe(-xn22σ2)benxn2>bir-||x-n||2
için bütünleştirir içinde , Şekil olduğu
fX-n(x-n)αP(Xn2>bir2-||x-n||2)(2πσ2)(n-1)/2tecrübe(-||x-n||22σ2)
xn
  1. Diğer bileşenler, verildiğinde koşullu dağılımı kesik normal dağılımdır;XnX-n
  2. Diğer bileşenlerin marjinal dağılım , olduğu değil , çünkü ekstra terimi bir normal dağılım ;X-nP(Xn2>bir2-||x-n||2)

Bu özellikten yararlanmanın tek yolu, kesilmiş normal koşullu dağılımları kullanarak bir seferde bir bileşen olan Gibbs örnekleyicisini çalıştırmaktır.


1
Ayrıntılı cevap için çok teşekkürler. Sadece bir açıklama, (ikinci eşdeğer) yoğunluğunuzun altındaki alan !! --- Bence, düzeltildikten sonra, bahsettiğiniz "normalleştirme faktörünü" iptal edecektir. Düşüncesi olan var mı? fX(x)
Olasılığı

3

Soru, vektör örnekleri çizmek için - ortak dağılımların temel koşullu ayrışımı - kullanma fikrinden kaynaklanmaktadır.

Let iid bileşenleri ile çok değişkenli Gauss olmak.X

Let ve prob(||X||>bir)TYX.ben||X||>bir

Söz konusu algoritma aşağıdaki (tamamen doğru ancak aldatıcı-yorumlama) koşullu çarpanlara dayalı olarak önerilmiştir:

fY(y)=1T1(2πσ2)n/2tecrübe(-||y||22σ2)ben||y||>bir=1T1(2πσ2)n/2tecrübe(-y12+...+yn22σ2)ben||y||>bir=(Πben=1n-112πσ2tecrübe(-yben22σ2))(1T12πσ2tecrübe(-yn22σ2)ben||y||>bir)=(Πben=1n-112πσ2tecrübe(-yben22σ2))Gauss(1T12πσ2tecrübe(-yn22σ2)benyn2>(bir2-y12-...yn-12))Kesik Gauss ??

En kısa cevap, ikinci faktörün kesilmiş bir Gauss değil, (daha da önemlisi) bir dağılım bile olmamasıdır.


Yukarıdaki çarpanlaştırmanın kendisinin neden bazı temel kusurlara sahip olduğunun ayrıntılı açıklaması. Tek bir cümleyle: belirli bir ortak dağılımın koşullu çarpanlarına ayırma işlemi bazı çok temel özellikleri sağlamalı ve yukarıdaki çarpanlara ayırma bunları karşılamıyor olmalıdır (Aşağıya bakınız).

Genel olarak, eğer hiç çarpanlara daha sonra marjinal olup ve , koşullu dağılımıdır . Bunun anlamı:fXY(x,y)=fX(x)fY|X(y|x)fX(x)XfY|X(y|x)Y

  1. " olarak kabul edilen " faktörü bir dağılım olmalıdır. Ve,f(x,y)fX(x)
  2. " " olarak kabul edilen ikinci faktör , her seçeneği için bir dağılım olmalıdırfY|X(y|x)x

Yukarıdaki örnekte, olarak çalışıyoruz . Bu, mülk-1'in Gauss faktörleri için tutulması ve mülk-2'nin ikinci kısım için iyi tutulması gerektiği anlamına gelir.Yn|(Y1...Yn-1)

Mülkiyet-1'in ilk faktörde iyi olduğu açıktır. Ama sorun özelliği-2. Yukarıdaki son faktör maalesef hemen hemen her değer için hiç bir dağılım değildir (Kesik !!(Y1...Yn-1)


Böyle bir algoritma önerisi muhtemelen aşağıdaki yanlış anlaşılmanın bir sonucudur: Bir dağılım, doğal olarak bir ortak dağılımdan (yukarıdaki Gaussianlar gibi) faktör oluşturduğunda, koşullu bir çarpanlara yol açar. ---- Olmaz! ---- Diğer (ikinci) faktör de iyi olmalıdır.


Not: @whuber'ın daha önce büyük bir cevabı var, bu aslında norm kesilmiş çok değişkenli Gauss üretme problemini çözüyor. Cevabını kabul ediyorum. Bu cevap sadece kendi anlayışımı ve sorunun oluşumunu netleştirmek ve paylaşmak içindir.


2
+1 Düşüncelerinizi paylaştığınız için teşekkür ederiz: bu konuya değerli bilgiler katıyorlar.
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.