Es ist üblich, Gewichte in Anwendungen wie der Gemischmodellierung zu verwenden und Basisfunktionen linear zu kombinieren. Gewichte muss oft gehorchen 0 und . Aus einer gleichmäßigen Verteilung solcher Vektoren möchte ich zufällig einen Gewichtsvektor auswählen .
Es kann verlockend sein, wobeiU (0, 1) ist, jedoch, wie in den nachstehenden Kommentaren erörtert, die Verteilung vonnicht gleichmäßig.
Angesichts der Bedingung scheint es jedoch, dass die zugrunde liegende Dimension des Problems n - 1 ist und dass es möglich sein sollte, ein w zu wählen, indem n - 1 Parameter gemäß einer gewissen Verteilung ausgewählt werden und dann das berechnet wird entsprechend w von diesen Parametern (da, sobald n - 1 der Gewichte spezifiziert sind, das verbleibende Gewicht vollständig bestimmt ist).
Das Problem scheint mit dem ähnlich zu sein sphere Punkt picking Problem (aber, anstatt Kommissionierung 3-Vektoren , deren norm Einheit ist, mag ich holen n -Vektoren deren l 1 Norm ist Eins).
Vielen Dank!
quelle
Antworten:
Wählen Sie gleichmäßig (mittels n - 1 gleichförmiger Realzahlen im Intervall [ 0 , 1 ] ). Sortieren Sie die Koeffizienten so, dass 0 ≤ x 1 ≤ ⋯ ≤ x n - 1 ist . einstellenx∈[0,1]n−1 n−1 [0,1] 0≤x1≤⋯≤xn−1
Weil wir die sortierte erholen kann mittels der Teilsummen von der w i , die Abbildung x → w ist ( n - 1 ) ! bis 1; insbesondere ist sein Bild der n - 1- Simplex in R n . Da (a) jeder Swap in einer Sortierung eine lineare Transformation ist, (b) die vorhergehende Formel linear ist und (c) lineare Transformationen die Gleichförmigkeit der Verteilungen bewahren, impliziert die Gleichförmigkeit von x die Gleichförmigkeit von w auf dem n - 1- Simplex.xi wi x→w (n−1)! n−1 Rn x w n−1 Note dass die Ränder von w nicht unbedingt unabhängig sind.
Dieses 3D-Punktdiagramm zeigt die Ergebnisse von 2000 Iterationen dieses Algorithmus fürn=3 . Die Punkte beschränken sich auf den Simplex und sind ungefähr gleichmäßig über diesen verteilt.
Da die Ausführungszeit dieses Algorithmus , ist es für große n ineffizient . Aber das beantwortet die Frage! Ein besserer Weg (im Allgemeinen), gleichmäßig verteilte Werte auf dem n - 1- Implex zu erzeugen, besteht darin, n gleichförmige Reelle ( x 1 , … , x n ) auf dem Intervall [ 0 , 1 ] zu berechnenO(nlog(n))≫O(n) n n−1 n (x1,…,xn) [0,1]
(was jedes mit Wahrscheinlichkeit 1 positiv macht , von wo aus ihre Summe fast sicher ungleich Null ist) und setzeyi 1
Dies funktioniert, weil jedes eine Γ ( 1 ) -Verteilung hat, was impliziert, dass w eine Dirichlet ( 1 , 1 , 1 ) -Verteilung hat - und das ist gleichmäßig.yi Γ(1) w (1,1,1)
quelle
The first entry is put to zero for identification; you would see that done in multinomial logistic models. Of course, in multinomial models, you would also have covariates under the exponents, rather than just the random
zz
s. The distribution of thezz
s is the extreme value distribution; you'd need this to ensure that the resulting weights are i.i.d. I initially putrnorm
als there, but then had a gut feeling that this ain't gonna work.quelle
The solution is obvious. The following MathLab code provides the answer for 3 weights.
quelle