Welcher Algorithmus verwendet standardmäßig die Funktion rnorm
, um normal normalverteilte Zufallszahlen zu generieren?Welcher von der Funktion rnorm verwendete Algorithmus
Antwort
Siehe ?RNGkind
. Der Standardwert ist ein Inversionsalgorithmus:
normal.kind
kann "Kinderman-Ramage" seine "Buggy Kinderman-Ramage" (nicht fürset.seed
), "Ahrens-Dieter", "Box-Muller", "Inversion" (die Standard) oder "vom Benutzer zur Verfügung gestellt". (Für die Inversion, siehe die Referenz inqnorm
.) Der Kinderman-Ramage Generator in den Versionen vor 1.7.1 (jetzt "Buggy" genannt) hatte mehrere Näherungsfehler und sollte nur für die Reproduktion von alten Ergebnissen verwendet werden. Der Generator "Box-Muller" ist Stateful, da Paare von Normalen sequenziell generiert und zurückgegeben werden. Der Status wird zurückgesetzt, wenn er ausgewählt wird (auch wenn es der aktuelle Normalgenerator ist) und wenn art geändert wird.
können Sie den Algorithmus ändern, indem
RNGkind(normal.kind = "Box-Muller")
können Sie finden, was zur Zeit durch einen Blick auf RNGkind()[2]
gesetzt.
Die andere Antwort ist ausreichend, aber ließ mich mit einigen weiteren Fragen; Insbesondere habe ich nirgends in der Dokumentation * was auf der Erde der "Inversion"
Algorithmus ist, also bin ich in die source code getaucht, die auch akademische Hinweise auf die Papiere gibt, die die anderen möglichen Algorithmen hervorbringen, um herauszufinden, was genau getan wird .
case INVERSION:
#define BIG 134217728 /* 2^27 */
/* unif_rand() alone is not of high enough precision */
u1 = unif_rand();
u1 = (int)(BIG*u1) + unif_rand();
return qnorm5(u1/BIG, 0.0, 1.0, 1, 0);
So scheint es, Basis an dem Standard "Inversion"
Algorithmus eine sehr lange Gleitkommazahl erzeugt, dann sendet sie an die qnorm5
Funktion, die eine CDF-Funktion für die Normalverteilung ist.
Wie funktioniert die qnorm5
Funktion (vorausgesetzt, es gibt keine geschlossene Form für die normale CDF noch inverse CDF), ich hatte nicht viel Glück Cracking was scheint der Quellcode here zu sein, aber sie geben weitere akademische Referenzen, nämlich Beasley, J. D. and S. G. Springer (1977) und Wichura, M.J. (1988); ersterer wird typischerweise für kleine Quantile der CDF und letzterer für große verwendet (z>7
oder so).
Es kann auch interessant sein zu beachten, dass (zum Zeitpunkt dieses Schreibens) dieser Algorithmus scheint shared by the Julia language, die auch die qnorm5
Code von R
verwendet.
* Um fair zu sein, wird Wichura im Rückblick in ?qnorm
erwähnt, auf die oben verwiesen wird. Trotzdem lohnt es sich, Dinge in diesem Thread zu formulieren, denke ich.
Danke! Ich habe nach dieser Antwort gesucht! –
- 1. Welcher Algorithmus ist geeignet?
- 2. Transaktionsvorhersage: Welcher Algorithmus?
- 3. Algorithmus von JavaScript "sort()" Funktion
- 4. Welcher Algorithmus kann dieses Constraint-Programmierproblem lösen?
- 5. Welcher Algorithmus zum Generieren der Zeittabelle für Schulen verwendet wird
- 6. Welcher Algorithmus wäre der beste nächste Nachbar für diese Anwendung?
- 7. Welcher Hash-Algorithmus wird für die integrierte HASH() -Funktion von Hive verwendet?
- 8. Welcher Cache-Algorithmus wird in Ccache verwendet?
- 9. Welcher ist besser, wenn der von JAVA oder Glassfish Server verwendete Port geändert wird?
- 10. Welcher Algorithmus wird von GMP für Primfeldinversion (mpz_invert) verwendet?
- 11. Algorithmus: Grundlegende rekursive Funktion
- 12. Erhalten hexadezimalen Farbcodes verwendete in „scale_fill_grey“ -Funktion
- 13. Was ist die von GCC verwendete Funktion rem_pio2f()?
- 14. Suchen Sie nicht verwendete Funktion in Vc2008?
- 15. Algorithmus zur Schätzung der Komplexität von Wörtern
- 16. Welcher Typ ist eine Funktion?
- 17. Welcher Knopf nannte die Funktion?
- 18. Welcher FIPS-kompatible Algorithmus ist in dotNet 2.0 besser?
- 19. Algorithmus-Funktion für Fibonacci-Serie
- 20. Richtiges Layout für einen Mempool/Speicherzuordner? (welcher Algorithmus)
- 21. Canny Algorithmus: Hysterese Mal-Funktion
- 22. Welcher Sortieralgorithmus wird von der STL-Liste verwendet :: sort()?
- 23. Von den Börsen verwendete Protokolle
- 24. Wie kann ich die von C# verwendete Datumsformat-Zeichenfolge in das von moment.js verwendete Format konvertieren?
- 25. PyQt: Abrufen welcher Taste eine bestimmte Funktion
- 26. Krukshal-Algorithmus oder Prim-Algorithmus, welcher ist besser darin, einen minimalen Spannbaum zu finden?
- 27. Bester Algorithmus für die Reihenentwicklung der Rational-Funktion
- 28. Excel-Funktion: Welcher Wert ist größer
- 29. Spalt Datenrahmen hinzufügen, die die sd von rnorm aus früheren Spalten sind
- 30. Welcher Container von der AjaxComplete betroffen ist
danke, weißt du, ob die rnorm-funktion vom mvtnorm-paket verwendet wird, um normalverteilte standardzahlen zu generieren? – Klaus
@Klaus ja, 'mvtnorm's' rmvnorm' verwendet die gleiche 'rnorm' Funktion. –
sie verwenden die Standardoption? – Klaus