Birliğe varan muntazam dağıtılmış ağırlıklar mı üretiyorsunuz?


15

Ağırlıkların karışım modellemesi gibi uygulamalarda kullanılması ve temel fonksiyonların doğrusal olarak birleştirilmesi yaygındır. ağırlıkları genellikle 0 ve . Bu tür vektörlerin eşit dağılımından rastgele bir ağırlık vektörü seçmek istiyorum .w ii w i = 1 w = ( w 1 , w 2 , )wiwiiwi=1w=(w1,w2,)

kullanmak cazip olabilir, burada U (0, 1), ancak aşağıdaki yorumlarda tartışıldığı gibi düzgün değil. ωiwwi=ωijωjωiw

Ancak, kısıtı göz önüne alındığında, sorunun temel boyutsallığının olduğu ve parametrelerini seçerek bir seçmenin mümkün olabileceği anlaşılmaktadır . bazı dağılımlar ve daha sonra bu parametrelerden ilgili hesaplanır (çünkü ağırlıkların belirtildikten sonra, kalan ağırlık tamamen belirlenir).n - 1 w n - 1 w n - 1iwi=1n1wn1wn1

Problemi benzer görünmektedir küre noktası sorunu çekme (yerine olan 3-vektörleri çekme daha ama norm birlik, I almak isteyen olan -vectors norm birdir). n 12n1

Teşekkürler!


3
Metodunuz simpleks üzerinde eşit olarak dağıtılmış bir vektör oluşturmaz. İstediğinizi doğru bir şekilde yapmak için en basit yol, iid rasgele değişkenler oluşturmak ve bunları toplamlarına göre normalleştirmektir. Yalnızca çizmek için başka bir yöntemi bularak bunu yapmak için deneyebilirsiniz direkt dağılımı özellikleri, ama beri etkinlik arasında ilgili şüphelerim var edilebilir dağılımı özellikleri çok verimli üretilen değişir. E x p ( 1 ) n - 1 E x p ( 1 ) U ( 0 , 1 )nExp(1)n1Exp(1)U(0,1)
kardinal

Yanıtlar:


22

Seçim eşit (vasıtasıyla n - 1 muntazam real aralığında [ 0 , 1 ] ). Sıralama katsayıları böylece 0 x 1x n - 1 . Ayarlamakx[0,1]n1n1[0,1]0x1xn1

w=(x1,x2x1,x3x2,,xn1xn2,1xn1).

Biz sıralanmış geri çünkü kısmi toplamlarının vasıtasıyla i , eşleme xağırlık olduğu ( n - 1 ) ! 1'e; özellikle de, bu görüntü , n - 1 simplex R n . (A) bir türdeki her bir takas doğrusal bir dönüşüm olduğu için, (b) önceki formül doğrusaldır ve (c) doğrusal dönüşümler dağılımların tekdüzeliğini korur, x'in tekdüzeliği, w'nin n - 1 simpleks üzerindeki tekdüzeliğini ima eder .xiwixw(n1)!n1Rnxw n1 Özellikle, kenar boşluklarının bağımsız olması gerekmediğini unutmayın .w

3D nokta grafiği

Bu 3B nokta grafiği, için bu algoritmanın 2000 yinelemesinin sonuçlarını gösterir . Noktalar simpleks ile sınırlıdır ve yaklaşık olarak eşit olarak dağıtılır.n=3


Bu algoritmanın yürütme süresi , büyük n için verimsizdir . Ama bu soruya cevap veriyor! Daha iyi bir yolu (genel olarak) üzerine homojen bir şekilde dağıtılır değerlerini oluşturmak n - 1 -simplex çekmektir , n homojen real ( X 1 , ... , x , n ) aralığında [ 0 , 1 ] , hesaplamaO(nlog(n))O(n)nn1n(x1,,xn)[0,1]

yi=log(xi)

(bu, her olasılık 1 ile pozitif yapar , bu nedenle toplamları neredeyse sıfır değildir) veyi1

w=(y1,y2,,yn)/(y1+y2++yn).

Her için bu işleri bir sahiptir Γ ( 1 ) ifade eder dağılımı, ağırlık bir Dirichlet vardır ( 1 , 1 , 1 ) dağıtımı - ve homojendir.yiΓ(1)w(1,1,1)

[3B nokta çizimi 2]


1
@Chris "Dir (1)" ile = ( 1 , 1 , , 1 ) parametreleriyle Dirichlet dağılımını kastediyorsanız , cevap evettir. (α1,,αn)(1,1,,1)
whuber

1
(+1) Küçük bir yorum: Sezgi mükemmel. (A) 'nın yorumlanmasına özen gösterilmesi gerekebilir, çünkü o kısımdaki "doğrusal dönüşüm" rastgele bir dönüşümdür . Bununla birlikte, bu, üretim sürecinin değiştirilebilirliği ve belirli bir değişmezlik özelliği kullanılarak ek formalite pahasına kolayca çözülebilir.
kardinal

1
fnn!f(x1)f(xn)1(x1<x2<<xn)f=1[0,1](x), sipariş istatistiklerinin dağılımı bir politop üzerinde eşittir. Bu noktadan hareketle, kalan dönüşümler deterministiktir ve sonuç takip eder.
kardinal

1
In1=[0,1]n1(n1)!biri diğerinden ayırt edilen bölgeler ve her bölge ile seçkin bölge arasında önceden belirlenmiş bir afinite bijeksiyonu vardır. Bu nedenle, ihtiyacımız olan tek ek gerçek, bir bölgede tekdüze bir dağılımın, onun ölçülebilir herhangi bir alt kümesinde tekdüze olmasıdır;
whuber

2
xωT:Rn1Rn1w=T(x)(n1)-küp. :)
kardinal

1
    zz <- c(0, log(-log(runif(n-1))))
    ezz <- exp(zz)
    w <- ezz/sum(ezz)

İlk giriş tanımlama için sıfıra konur; bunun çok uluslu lojistik modellerde yapıldığını görürsünüz. Tabii ki, çok terimli modellerde, sadece rastgele slerden ziyade üslerin altında ortak değişkenler de olurdu zz. S'nin dağılımı zzaşırı değer dağılımıdır; başlangıçta rnormals koyduğumda ortaya çıkan ağırlıkların olmasını sağlamak için buna ihtiyacınız olacaktı , ancak daha sonra bunun işe yaramayacağına dair bir his vardı.


Bu işe yaramıyor. Bir histograma bakmayı denedin mi?
kardinal

4
nExp(1)

1
Kullandığınız terminoloji göz önüne alındığında, biraz karışık geliyorsunuz.
kardinal

2
Aslında, Wiki bağlantısı bunu (oldukça) açıkça tartışır. Destek başlığı altındaki ikinci paragrafa bakın .
kardinal

1
wn1Rnwn1n1

0

Çözüm açıktır. Aşağıdaki MathLab kodu 3 ağırlık için yanıt sağlar.

function [  ] = TESTGEN( )
SZ  = 1000;
V  = zeros (1, 3);
VS = zeros (SZ, 3);
for NIT=1:SZ   
   V(1) = rand (1,1);     % uniform generation on the range 0..1
   V(2) = rand (1,1) * (1 - V(1));
   V(3) = 1 - V(1) - V(2);  
   PERM = randperm (3);    % random permutation of values 1,2,3
   for NID=1:3
         VS (NIT, NID) = V (PERM(NID));
    end
end 
figure;
scatter3 (VS(:, 1), VS(:,2), VS (:,3));
end

resim açıklamasını buraya girin


1
Marjinalleriniz doğru dağılıma sahip değil. Dirichlet dağılımı (kodladığınız algoritmaya sahip rastgele sayı oluşturma bölümü) hakkındaki Wikipedia makalesine bakılırsa, tekdüze değil V (1) için beta (1,2) dağıtımı kullanmalısınız [0,1] dağılımı.
soakley

Bu eğimli üçgenin köşelerinde yoğunluk arttığı görülüyor. Bununla birlikte, sorunun güzel bir geometrik görüntüsünü sağlar.
DWin
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.