Frage:
How do I get "V-shaped" distributed random numbers from uniformly distributed numbers?
user137425
2014-03-23 22:53:39 UTC
view on stackexchange narkive permalink

Ich habe 1000 gleichmäßig verteilte Zufallszahlen. Wie manipuliere ich sie, um ein V-förmiges Histogramm zu erhalten?

"V-förmig" ist kein genauer Begriff. Wir können nicht wissen, ob Sie etwas meinen, das wie $ f (x) = | x | $ auf $ x \ in [-1,1] $ oder $ f (x) = 1- | x | aussieht $ on $ x \ in [-1,1] $ zum Beispiel.
Ich meine so etwas wie $ f (x) = | x | $
$ f (x) = | x | $ funktioniert nicht, wenn Ihre Daten $ \ mathcal U (0,1) $ sind. Sind Ihre Daten auf (-1, 1) einheitlich? Haben Sie versucht, einfach 0,5 zu subtrahieren, mit 2 zu multiplizieren und dann den absoluten Wert zu nehmen? Benötigen Sie die tatsächlichen Daten für die V-förmige Verteilung oder nur das Histogramm?
Ich möchte nur das Histogramm von gleichmäßig verteilten Zahlen. Ich habe keine tatsächlichen Daten.
Ist das für ein Thema?
Ja. Ich muss gleichmäßig verteilte Zufallsvariablen in Excel generieren und sie dann aus dieser Art der Verteilung in Zufallszahlen umwandeln.
Fünf antworten:
Szabolcs
2014-03-24 04:08:26 UTC
view on stackexchange narkive permalink

Suchen Sie nach der "Transformationsmethode" oder "inversen Transformationsmethode", mit der Zufallszahlen mit einer beliebigen Verteilung generiert werden können. Sie finden viele Vorlesungsunterlagen, die die Idee beschreiben. Dies ist die Wikipedia-Seite: Inverse Transformationsabtastung. Unten finden Sie Links zu detaillierteren Ressourcen.

Das grundlegende Ergebnis ist dieses Rezept: Wenn Sie eine Verteilung $ D $ benötigen, suchen Sie

  1. die CDF und invertieren Sie sie es.
  2. erzeugen gleichmäßig verteilte Zufallszahlen zwischen 0 und 1
  3. transformieren diese Zahlen mit der inversen CDF, um Zahlen zu erhalten, die gemäß $ D $
  4. ol>

    verteilt sind Die Berechnung kann nicht für jede Verteilung analytisch durchgeführt werden. Für Ihre Distribution kann es. Wenn die Domäne des "V" $ [- 1,1] $ ist, dann ist das PDF $ | x | $, die CDF ist $ (1+ \ operatorname {sign} (x) x ^ 2) / 2 $ und die inverse CDF ist $$ \ operatorname {sign} (2x-1) \ sqrt {| 1-2x |} $$

    Zum Beispiel in Mathematica

Ilmari Karonen
2014-03-24 04:18:44 UTC
view on stackexchange narkive permalink

Wenn $ X $ und $ Y $ unabhängige, gleichmäßig verteilte Zufallsvariablen auf $ [0,1] $ sind, hat $ X + Y $ eine pyramiden- oder "invertierte V" -förmige Verteilung auf $ [0,2] $

Alles, was wir tun müssen, um diese Pyramide in ein V zu verwandeln, ist, die beiden Hälften der Verteilung zu tauschen.

Wenn also unabhängiges $ X, Y \ sim \ mathcal U gegeben ist (0,1) $, lass $$ Z = \ begin {Fälle} X + Y & \ text {if} X + Y < 1 \\ X + Y-2 & \ text {sonst.} \ End {Fälle} $$

Die Zufallsvariable $ Z $ hat dann die V-förmige Verteilung, die Sie auf $ [- 1,1] $ wünschen.

Woher kommt dein $ Y $?
@NickStauner: Vom Zufallszahlengenerator, wie $ X $. Ich bin mir nicht sicher, ob ich deine Frage verstehe.
Francis Smart
2014-03-24 04:26:50 UTC
view on stackexchange narkive permalink

Dies sollte wirklich ein Kommentar unter der obigen Antwort sein. Aber da ich nicht genug Ruf habe, um diesen Kommentar abzugeben, werde ich ihn hier posten. In der Frage haben Sie ursprünglich gefragt, wie dies in "Excel" zu tun ist. Dies sollte es tun,

  = SIGN(2*RAND()-1)*(ABS(1-2*RAND()))^0.5 

Ein interessanter Hinweis zur vorherigen Antwort ist, dass die Verteilung der erstellten Variablen überhaupt nicht geändert wird, wenn Sie eine einheitliche Zufallsvariable (für beide gleich) verwenden, um die V-förmige Verteilung oder zwei (für das Vorzeichen) zu generieren Funktion und die abs-Funktion).

Ben Elizabeth Ward
2014-03-24 02:42:45 UTC
view on stackexchange narkive permalink

Sie möchten $ U \ sim \ text {Uniform} (0,1) $ verwenden. Sie suchen nach etwas, das als Probability Integral Transform (PIT) bezeichnet wird.

Wenn $ X \ sim F $, dann $ F (X) \ sim \ text {Uniform} (0,1) $. Daher finden Sie zuerst die CDF für die Distribution, an der Sie interessiert sind, und dann die Transformation. Wenn Sie beispielsweise $ f (x) = | x | $, $ x \ in (-1,1) $ möchten, integrieren Sie, um $ F (x) = P (X \ leq x) = \ begin {case} zu erhalten. \ frac {-x ^ 2} {2} + \ frac {1} {2} & x \ leq 0 \\ \ frac {x ^ 2} {2} + \ frac {1} {2} & x> 0 \ Ende {Fälle} $. Dann $ F ^ {- 1} (u) \ sim F $

Glen_b
2014-03-24 02:49:09 UTC
view on stackexchange narkive permalink

Es gibt verschiedene Ansätze, die geeignet sein könnten.

Selbst mit den Kommentaren haben Sie es nicht genug festgehalten (Sie geben ein Beispiel für das, was Sie wollen, aber nicht für die Anzahl der Fälle, die Sie berücksichtigen möchten), aber hier sind einige Beispiele für Ansätze:

1) Ablehnungsstichprobe. Generieren Sie eine Uniform im gewünschten Bereich und verwenden Sie die Zurückweisung, um die gewünschte Verteilung zu erhalten. Dies funktioniert ganz allgemein und kann selbst in ziemlich allgemeinen Fällen einigermaßen effizient gemacht werden. Varianten der Ablehnungsstichprobe, wie der Zikkurat-Ansatz, können sehr schnell sein, sind jedoch möglicherweise recht umständlich einzurichten, wenn Sie nur wenige Zahlen möchten.

2) Für den Fall von $ f (x) = | x | $ auf $ (- 1,1) $. Sei $ U_1, U_2 $ iid Standarduniform. Dann hat $ \ text {max} (U_1, U_2) $ eine Verteilung wie die positive Hälfte der gewünschten Dichte. Sei $ Z $ ein Zufallszeichen - d. H. $ \ {- 1, +1 \} $ mit gleicher Wahrscheinlichkeit. Dann hat $ X = Z \, \ text {max} (U_1, U_2) $ die gewünschte Verteilung.

3) (nach dem gleichen Aufbau wie in (2)): Sei $ V = \ sqrt {U_1} $, und fügen Sie dem ein zufälliges Vorzeichen hinzu, $ X = Z \, V $. (Dies verwendet die Wahrscheinlichkeitsintegraltransformation, um V der richtigen Form zu erhalten.)

Es gibt unzählige andere Ansätze mit unterschiedlichen Mischungen aus Zweckmäßigkeit und Geschwindigkeit. Zum Beispiel kann der Ansatz in (2) verwendet werden, um zwei solcher Variablen gleichzeitig zu erzeugen, und wenn die Geschwindigkeit von größter Bedeutung ist, kann das für ein Zufallszeichen erforderliche Bit einer der verwendeten Uniformen entnommen werden (vorzugsweise vor dem Normalisieren auf (0,1) und dann dem Bit-Shifting oder einem kleineren Skalierungsfaktor, der verwendet wird, um das zu nehmen, was noch einheitlich ist); Dieser spätere Ansatz könnte beispielsweise in (3) oder in einer modifizierten Version von (1) verwendet werden.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...