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 i ≥ ∑ i w i = 1 w = ( w 1 , w 2 , … )
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. ωi∼w
Namun, mengingat kendala , tampaknya dimensi yang mendasari masalah adalah , dan harus dimungkinkan untuk memilih dengan memilih parameter sesuai dengan beberapa distribusi dan kemudian menghitung dari parameter tersebut (karena setelah dari bobot ditentukan, bobot yang tersisa sepenuhnya ditentukan).
Masalahnya tampaknya mirip dengan masalah memilih titik bola (tapi, daripada memilih 3-vektor yang norma adalah kesatuan, saya ingin memilih vektor yang norma adalah kesatuan).
Terima kasih!
sumber
Jawaban:
Pilih secara seragam (dengan cara seragam seragam dalam interval ). Urutkan koefisien sehingga . Set n - 1 [ 0 , 1 ]x∈[0,1]n−1 n−1 [0,1] 0≤x1≤⋯≤xn−1
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 x → w ( n - 1 ) ! n - 1 R n x w n - 1 wxi wi x→w (n−1)! n−1 Rn x w n−1 w
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) n n−1 n (x1,…,xn) [0,1]
(yang membuat setiap positif dengan probabilitas , dari mana jumlah mereka hampir pasti bukan nol) dan ditetapkanyi 1
Ini berfungsi karena setiap memiliki , yang menyiratkan memiliki distribusi Dirichlet - dan itu seragam.yi Γ(1) w (1,1,1)
sumber
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
zz
s acak . Distribusizz
s adalah distribusi nilai ekstrem; Anda perlu ini untuk memastikan bahwa bobot yang dihasilkan adalah iid awalnya saya menempatkan semua dirnorm
sana, tetapi kemudian punya firasat bahwa ini tidak akan berhasil.sumber
Solusinya jelas. Kode MathLab berikut memberikan jawaban untuk 3 bobot.
sumber