Ich habe 1000 gleichmäßig verteilte Zufallszahlen. Wie manipuliere ich sie, um ein V-förmiges Histogramm zu erhalten?
Ich habe 1000 gleichmäßig verteilte Zufallszahlen. Wie manipuliere ich sie, um ein V-förmiges Histogramm zu erhalten?
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
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
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.
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).
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 $
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.