Hasilkan bobot yang terdistribusi secara seragam yang menghasilkan kesatuan?

14

Adalah umum untuk menggunakan bobot dalam aplikasi seperti pemodelan campuran dan untuk menggabungkan fungsi dasar secara linier. Bobot harus sering mematuhi 0 dan . Saya ingin secara acak memilih vektor bobot dari distribusi seragam vektor tersebut.w ii w i = 1 w = ( w 1 , w 2 , )wiwiiwi=1w=(w1,w2,)

Mungkin tergoda untuk menggunakan mana \ omega_i \ sim U (0, 1), namun seperti yang dibahas dalam komentar di bawah ini, distribusi \ mathbf {w } tidak seragam. ωiwwi=ωijωjωiw

Namun, mengingat kendala iwi=1 , tampaknya dimensi yang mendasari masalah adalah n1 , dan harus dimungkinkan untuk memilih w dengan memilih parameter n1 sesuai dengan beberapa distribusi dan kemudian menghitung w dari parameter tersebut (karena setelah n1 dari bobot ditentukan, bobot yang tersisa sepenuhnya ditentukan).

Masalahnya tampaknya mirip dengan masalah memilih titik bola (tapi, daripada memilih 3-vektor yang 2 norma adalah kesatuan, saya ingin memilih n vektor yang 1 norma adalah kesatuan).

Terima kasih!

Chris
sumber
3
Metode Anda tidak menghasilkan vektor yang terdistribusi secara merata pada simpleks. Untuk melakukan apa yang Anda inginkan dengan benar, cara yang paling mudah adalah dengan menghasilkan iid variabel acak dan kemudian menormalkannya dengan jumlah mereka. Anda dapat mencoba melakukannya dengan menemukan beberapa metode lain untuk menggambar hanya varian secara langsung, tetapi saya ragu mengenai efisiensi tradeoff karena variates dapat dihasilkan dengan sangat efisien dari variates. E x p ( 1 ) n - 1 E x p ( 1 )nExp(1)n1Exp(1)U(0,1)
kardinal

Jawaban:

22

Pilih secara seragam (dengan cara seragam seragam dalam interval ). Urutkan koefisien sehingga . Set n - 1 [ 0 , 1 ]x[0,1]n1n1[0,1]0x1xn1

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

Karena kita dapat memulihkan diurutkan dengan menggunakan jumlah parsial dari , pemetaan adalahke 1; khususnya, citranya adalah simpleks di . Karena (a) setiap swap dalam bentuk adalah transformasi linear, (b) rumus sebelumnya adalah linear, dan (c) transformasi linear mempertahankan keseragaman distribusi, keseragaman menyiratkan keseragaman pada simpleks . Khususnya, perhatikan bahwa marginal tidak harus independen.w i xw ( n - 1 ) ! n - 1 R n x w n - 1 wxiwixw(n1)!n1Rnxw n1w

Plot titik 3D

Plot titik 3D ini menunjukkan hasil 2000 iterasi dari algoritma ini untuk . Titik-titik terbatas pada simpleks dan didistribusikan secara merata di atasnya.n=3


Karena waktu eksekusi algoritma ini adalah , maka tidak efisien untuk besar . Tapi ini menjawab pertanyaannya! Cara yang lebih baik (secara umum) untuk menghasilkan nilai-nilai yang terdistribusi secara merata pada -simplex adalah menggambar real seragam pada interval , menghitungn n - 1 n ( x 1 , , x n ) [ 0 , 1 ]O(nlog(n))O(n)nn1n(x1,,xn)[0,1]

yi=log(xi)

(yang membuat setiap positif dengan probabilitas , dari mana jumlah mereka hampir pasti bukan nol) dan ditetapkanyi1

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

Ini berfungsi karena setiap memiliki , yang menyiratkan memiliki distribusi Dirichlet - dan itu seragam.yiΓ(1)w(1,1,1)

[Plot titik 3D 2]

whuber
sumber
1
@ Chris Jika dengan "Dir (1)" yang Anda maksud adalah distribusi Dirichlet dengan parameter = ( 1 , 1 , , 1 ) , maka jawabannya adalah ya. (α1,,αn)(1,1,,1)
whuber
1
(+1) Satu komentar kecil: Intuisi sangat bagus. Perhatian dalam menafsirkan (a) mungkin perlu diambil, karena tampaknya "transformasi linear" pada bagian itu adalah acak . Namun, ini dengan mudah dikerjakan dengan mengorbankan formalitas tambahan dengan menggunakan pertukaran proses pembuatan dan properti invarian tertentu.
kardinal
1
Lebih eksplisit: Untuk distribusi dengan kepadatan , kepadatan statistik urutan sampel iid berukuran n adalah n ! f ( x 1 ) f ( x n ) 1 ( x 1 < x 2 < < x n ) . Dalam kasus f = 1 [ 0 , 1 ] ( x )fnn!f(x1)f(xn)1(x1<x2<<xn)f=1[0,1](x), distribusi statistik pesanan seragam pada polytope. Diambil dari titik ini, transformasi yang tersisa bersifat deterministik dan hasilnya mengikuti.
kardinal
1
@ cardinal Itu poin yang menarik, tapi saya rasa itu tidak penting, walaupun Anda benar bahwa detail tambahan bisa membantu. Swap (sebenarnya refleksi, transformasi linear qua ) tidak acak: mereka sudah ditentukan sebelumnya. Efeknya, diukir menjadi ( n - 1 ) !In1=[0,1]n1(n1)!daerah, yang satu dibedakan dari yang lain, dan ada ikatan afine ditentukan sebelumnya antara masing-masing daerah dan yang dibedakan. Dari mana, satu-satunya fakta tambahan yang kita butuhkan adalah bahwa distribusi seragam pada suatu wilayah seragam pada setiap subset terukurnya, yang merupakan hal sepele yang lengkap.
whuber
2
@whuber: Pernyataan menarik. Terima kasih telah berbagi! Saya selalu menghargai pemikiran mendalam Anda tentang hal-hal seperti itu. Mengenai komentar saya sebelumnya tentang "transformasi linear acak", poin saya adalah, setidaknya melalui , transformasi yang digunakan tergantung pada titik sampel ω . Cara lain untuk memikirkannya adalah ada fungsi tetap, yang telah ditentukan T : R n - 1R n - 1 sedemikian rupa sehingga w = T ( x ) , tetapi saya tidak akan menyebut fungsi itu linear, meskipun linear pada himpunan bagian partisi itu ( n - 1 )xωT:Rn1Rn1w=T(x)(n1)-kubus. :)
kardinal
1
    zz <- c(0, log(-log(runif(n-1))))
    ezz <- exp(zz)
    w <- ezz/sum(ezz)

Entri pertama dimasukkan ke nol untuk identifikasi; Anda akan melihat bahwa dilakukan dalam model logistik multinomial. Tentu saja, dalam model multinomial, Anda juga akan memiliki kovariat di bawah eksponen, bukan hanya zzs acak . Distribusi zzs adalah distribusi nilai ekstrem; Anda perlu ini untuk memastikan bahwa bobot yang dihasilkan adalah iid awalnya saya menempatkan semua di rnormsana, tetapi kemudian punya firasat bahwa ini tidak akan berhasil.

Tugas
sumber
Itu tidak berhasil. Apakah Anda mencoba melihat histogram?
kardinal
4
Jawaban Anda sekarang hampir benar. Jika Anda menghasilkan iid E x p ( 1 ) dan membaginya dengan jumlah, maka Anda akan mendapatkan distribusi yang benar. Lihat distribusi Dirichlet untuk lebih jelasnya, meskipun tidak membahas hal ini secara eksplisit . nExp(1)
kardinal
1
Mengingat terminologi yang Anda gunakan, Anda terdengar sedikit bingung.
kardinal
2
Sebenarnya, tautan Wiki memang membahas hal ini (cukup) secara eksplisit. Lihat paragraf kedua di bawah tajuk Dukungan .
kardinal
1
Karakterisasi ini terlalu membatasi dan terlalu umum. Terlalu umum dalam distribusi dihasilkan harus "seragam" pada simpleks n - 1 dalam R n . Hal ini terlalu ketat dalam pertanyaan tersebut diuraikan umumnya cukup untuk memungkinkan bahwa w ada beberapa fungsi dari n - 1 distribusi -variate, yang pada gilirannya mungkin , tetapi tidak harus, terdiri dari n - 1 independen (dan mungkin iid) variabel. wn1Rnwn1n1
whuber
0

Solusinya jelas. Kode MathLab berikut memberikan jawaban untuk 3 bobot.

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

enter image description here

pengguna96990
sumber
1
Marginal Anda tidak memiliki distribusi yang benar. Menilai dari artikel Wikipedia tentang distribusi Dirichlet (bagian pembuatan nomor acak, yang memiliki algoritma yang Anda kodekan), Anda harus menggunakan distribusi beta (1,2) untuk V (1), bukan seragam [0,1] distribusi.
soakley
Tampaknya kepadatan meningkat di sudut-sudut segitiga miring ini. Meskipun demikian, ini memberikan tampilan geometris yang bagus dari masalahnya.
DWin