Ich bin kürzlich auf dieses Problem gestoßen. Naiv dachte ich, dass jede Transformation von Uniform funktionieren würde, also steckte ich eine 1D Sobol (und Halton) Sequenz ein, als ob die Sequenz ein Zufallszahlengenerator in eine std::normal_distribution<>
Variable wäre. Zu meiner Überraschung hat es nicht funktioniert, es hat offensichtlich eine nicht normale Verteilung erzeugt.
Ok, dann habe ich die Funktion Numerical Recipes Third Edition Chapter 7.3.9 Normal_dev
verwendet, um normale Zahlen aus den Sobol- oder Halton-Sequenzen nach der Methode "Ratio-of-Uniforms" zu generieren, und sie ist auf die gleiche Weise fehlgeschlagen. Dann denke ich, ok, wenn Sie sich den Code ansehen, sind zwei einheitliche Zufallszahlen erforderlich, um zwei normalverteilte Zufallszahlen zu generieren. Vielleicht funktioniert es, wenn ich eine Sobol (oder Halton) 2D-Sequenz verwendet habe. Nun, es ist wieder gescheitert.
Ich erinnerte mich an die "Box-Muller-Methode" (in den Kommentaren erwähnt) und da sie eine geometrischere Interpretation hat, dachte ich, dass sie funktionieren könnte. Nun, es hat funktioniert! Ich war sehr aufgeregt, einen anderen Test zu machen, die Verteilung sieht normal aus.
Das Problem, das ich sah, war, dass die Verteilung nicht besser als zufällig war, was die Füllung betrifft. Ich war ein bisschen enttäuscht, aber bereit, das Ergebnis zu veröffentlichen.
Dann habe ich eine tiefere Suche durchgeführt (jetzt, da ich wusste, wonach ich suchen sollte), und es stellte sich heraus, dass es bereits ein Papier zu diesem Thema gibt: http://www.sciencedirect.com/science/article/pii/S0895717710005935
In diesem Artikel wird es tatsächlich behauptet
Zwei bekannte Methoden, die mit Pseudozufallszahlen verwendet werden, sind die Box-Muller-Methode und die inverse Transformationsmethode. Einige Forscher und Finanzingenieure haben behauptet, es sei falsch, die Box-Muller-Methode mit Sequenzen mit geringer Diskrepanz zu verwenden, und stattdessen sollte die inverse Transformationsmethode verwendet werden. In diesem Artikel beweisen wir, dass die Box-Muller-Methode mit Sequenzen mit geringer Diskrepanz verwendet werden kann, und diskutieren, wann ihre Verwendung tatsächlich vorteilhaft sein könnte.
Die allgemeine Schlussfolgerung lautet also:
1) Sie können den Box-Muller für 2D-Sequenzen mit geringer Diskrepanz verwenden, um normalverteilte Sequenzen zu erhalten. Meine wenigen Experimente scheinen jedoch zu zeigen, dass die geringe Diskrepanz / der geringe Abstand, z. B. die Fülleigenschaften, in der normal transformierten Sequenz verloren gehen.
2) Sie können die inverse Methode verwenden, wobei vermutlich die geringen Diskrepanz- / Raumfüllungseigenschaften erhalten bleiben.
3) Verhältnis der Uniformen kann nicht verwendet werden.
EDIT : Diese https://mathoverflow.net/a/144234 verweist auf die gleichen Schlussfolgerungen.
Ich habe eine Illustration gemacht (die erste Abbildung (Verhältnis der Uniformen bei Sobol) zeigt, dass die erhaltene Verteilung nicht normal ist, aber die Ohters (Box-Muller und zufällig zum Vergleich) sind):
EDIT2:
Der Hauptpunkt ist, dass selbst wenn Sie eine Methode finden, die die "Verteilung" einer Sequenz mit geringer Diskrepanz transformieren kann, es nicht offensichtlich ist, dass Sie die guten Fülleigenschaften beibehalten. Sie sind also nicht besser als mit einer wirklich zufälligen (Standard-) Normalverteilung. Ich habe noch keine Methode gefunden, die eine geringe Diskrepanz aufweist und sich dennoch gut mit einer ungleichmäßigen Verteilung füllt. Ich wette, eine solche Methode ist nicht offensichtlich und vielleicht ein offenes Problem.