Generieren Sie Zufallszahlen mit linearer Verteilung


8

Wie kann ich zufällige Gleitkommazahlen erzeugen, deren Wahrscheinlichkeitsfunktion linear ist? Angenommen, ich kann einheitliche Zufälle erzeugen.Verteilungsplot

Die Darstellung ist ein Beispiel für eine lineare Verteilung. f - Wahrscheinlichkeitsdichte, x - Zufallswert.



1
Was ist f1 in Ihrer Handlung? Wie stellen Sie sicher, dass f1 und f2 konsistent sind?
Aksakal

2
Eine reine Dreiecksverteilung kann als Summe zweier unabhängiger Uniformen erzeugt werden. Versuchen Sie, dies zu verallgemeinern.
kjetil b halvorsen

2
Ich denke nicht, dass dies ein Duplikat ist, was er gezeichnet hat, ist keine Beta-Distribution! Abstimmung, um offen zu bleiben.
kjetil b halvorsen

3
Ja, aber für Dreiecksverteilungen gibt es auch einige andere Methoden. Die einfachste ist die Summe von zwei Uniformen.
kjetil b halvorsen

Antworten:


11

Es gibt viele Methoden. Hier sind ein paar.

  • Sie können die Ablehnung ("Akzeptieren-Ablehnen") mit einem einheitlichen Umschlag verwenden.

  • könnte die inverse cdf-Methode für die Dichte verwenden, indem das cdf berechnet und invertiert wirdX=F1(U)

  • Sie könnten in einen einheitlichen und einen dreieckigen Teil (dh eine endliche Mischung aus beiden) teilen . Der dreieckige Teil kann auf verschiedene Arten erzeugt werden (z. B. das von zwei Uniformen oder unter Verwendung der inversen cdf-Methode, ...) und dann auf das richtige Intervall skaliert werden, und die Uniform ist trivial (einfach nach rechts skaliert) Intervall).max

  • Wenn positiv ist, können Sie on als dreieckig behandeln und dann die Zurückweisung verwenden, wenn es unter . Dies funktioniert ziemlich gut, wenn klein ist (etwa ein gutes Stück weniger als die Hälfte).x1(0,x2)x1x1/x2

  • Sie könnten die Zikkurat-Methode verwenden .

Es gibt eine Reihe anderer Ansätze. Die Wahl zwischen ihnen hängt von Überlegungen ab, wie wichtig Komfort und Geschwindigkeit sind (wenn Sie nur ein paar tausend Werte benötigen, spielt Geschwindigkeit wahrscheinlich keine große Rolle; wenn Sie sie bei potenziell langen Läufen viele Male verwenden müssen, ist sie vorhanden kann viel mehr bedeuten).


9

Dies erinnert mich an einen anderen Beitrag über ein lineares PDF, das eine funktionale Form hatte:

h(x)=1+αx2,x[1,1],α[1,1]


(Quelle: tri.org.au )

Ich nannte dies eine "akute lineare" Verteilung oder eine niedliche lineare Verteilung.

Wenn und unabhängig sind, dann ist . .. hat eine süße lineare Verteilung.X1Triangular(1,1,1)X2Uniform(1,1)

XαX1+(1α)X2

Pseudozufallszahlengenerierung

Das cdf (innerhalb des Unterstützungsbereichs) lautet:

H=14(x+1)(α(x1)+2)

Das inverse cdf lautet:

x=H1(u)=α22α+4αu+11α

Wenn Sie durch eine Pseudozufallszeichnung aus ersetzen, erhalten Sie eine Pseudozufallszeichnung aus dem obigen niedlichen linearen PDF .uUniform(0,1)h(x)

Wenn Sie den Maßstab ändern oder verschieben möchten, können Sie die von Ihnen generierten Daten transformieren. ..., die in der Lage sein sollten, den Reichtum der von Ihnen erstellten Struktur zu generieren Wunsch (erfordert möglicherweise ein wenig herumspielen, je nachdem, was Sie festhalten).XdataY=b+cXdata

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.