Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 198

 
Dr. Trader:

Ich habe einen weiteren Fehler in R gefunden. R dividiert nicht korrekt durch 0.

Hier ist das Skript:

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property script_show_inputs

input double div = 0.0;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print(1.0/div);
  }
//+------------------------------------------------------------------+

Die richtige Antwort in mql lautet.
Null-Division in 'test.mq5' (20,13)
bei
gestopptem Skript

Nicht urheberrechtlich geschützt, in R:
> 1/0
Inf
mit der
Fortsetzung des Drehbuchs

Ich meine das Gleiche wie Alexey - das Verhalten von Programmen unter undefinierten Bedingungen kann unterschiedlich sein, und das ist kein Fehler. So wie die Architektur sein soll, so wird auch das Ergebnis sein.


Sie haben Unrecht mit "nicht die richtige Antwort".

Die Antwort in R ist absolut korrekt und sehr praktisch. Der Punkt ist, dass R das Konzept des "Variablenwerts" zu seinem logischen Abschluss bringt und drei spezifische Werte für die Variable hat: NA (es gibt einen Wert, aber er ist nicht bekannt), NaN (kein numerischer Wert) und Inf - unendlich. Dies ist ein solcher Wert und es ist völlig falsch, die Arbeit des Programms zu unterbrechen. Wenn man die Einschränkungen des Computers in Bezug auf die tatsächliche Genauigkeit berücksichtigt, kann Inf durchaus einen endlichen Wert haben. Und es ist ganz natürlich, weiter zu arbeiten, und ein ordentlich geschriebenes Programm sollte solche Ergebnisse überprüfen, wenn sie angenommen werden.

In der MQL-Dokumentation findet sich beispielsweise ein Beispiel für den Arkussinus und die Aussage, dass arcsine(2) = unendlich ist. Dies ist nicht korrekt. Genau: arcsinus(2) = NaN, d.h. kein numerischer Wert, arcsinus(1) = Inf, aber fehlende Notierungen während des Handels = NA, d.h. sie sollten (oder könnten am Wochenende) sein und sind es nicht.

 
Alexey Burnakov:

Was Wolfram 0 sagt, ist nicht die endgültige Wahrheit. Ich meine, das Wort "Fehler" in der Formulierung ist überflüssig...

Es geht hier nicht um Wolfram. Das Integral der positiven Werte, die nicht Null sind, kann nicht Null sein.

Bei den Kontrollen wurden auch Fehler in den Algorithmen festgestellt.

Bei der nicht-zentralen t-Verteilung zum Beispiel werden die Quantile nicht umgerechnet:


> n <- 10> k <- seq(0,1,by=1/n)> nt_pdf<-dt(k, 10,8, log = FALSE)> nt_cdf<-pt(k, 10,8, log = FALSE)> nt_quantile<-qt(nt_cdf, 10,8, log = FALSE)> nt_pdf [1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11> nt_cdf [1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12> k [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0> nt_quantile [1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 [7] -1.340781e+154 7.000000e-01 8 .000000e-01 9.000000e-01 1.000000e+154


Hier werden die Quantile 0-0,6 falsch berechnet.

Ein Beispiel für eine ähnliche Berechnung in MQL5:

2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) Einheitstests für Paket Stat
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1)
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) Nicht zentraler T-Verteilungstest gestartet
2016.11.10 17:53:32.645 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: Test 1: Berechnungen für Einzelwerte
2016.11.10 17:53:53:32.645 TestStatNCT (EURUSD,H1) 1 0, PDF=4.92773299108629100851e-15, CDF=6.23274905782904190070e-16, Q=1.51119154775858715131e-18,
2016.11.10 17:53:32.646 TestStatNCT (EURUSD,H1) 1 1, PDF=1.130226163094897516453e-14, CDF=1.3899389577957373769266e-15, Q=9.99999999999989369615e-02,
2016.11.10 17:53:32.647 TestStatNCT (EURUSD,H1) 1 2, PDF=2.64161256619123119969e-14, CDF=3.16755115913693189175e-15, Q=2.00000000000000004840572e-01,
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 3, PDF=6.28106243570810575054e-14, CDF=7.3638179090305861902898e-15, Q=2.9999999999999998601119e-01
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 4, PDF=1.5163698393962646374250e-13, CDF=1.743039359090744906969191e-14, Q=4.00000000000005184742e-01
2016.11.10 17:53:32.648 TestStatNCT (EURUSD,H1) 1 5, PDF=3.70864175555731463525e-13, CDF=4.19192812277470617962e-14, Q=5.000000000000000000000000e-01,
2016.11.10 17:53:32.649 TestStatNCT (EURUSD,H1) 1 6, PDF=9.16615229573755101565e-13, CDF=1.02187737277044947465e-13, Q=5.9999999999999998867573e-01,
2016.11.10 17:53:32.651 TestStatNCT (EURUSD,H1) 1 7, PDF=2.28327725393015114329e-12, CDF=2.51850847368662607692e-13, Q=6.9999999999999999289457e-01,
2016.11.10 17:53:32.652 TestStatNCT (EURUSD,H1) 1 8, PDF=5.7160930393970751591223e-12, CDF=6.25821417361289428232e-13, Q=7.9999999999999999299967253e-01,
2016.11.10 17:53:32.653 TestStatNCT (EURUSD,H1) 1 9, PDF=1.43395037240077606742e-11, CDF=1.56338059375202603523e-12, Q=8.999999999999999998578915e-01,
2016.11.10 17:53:32.655 TestStatNCT (EURUSD,H1) 1 10, PDF=3.59391445912256345050e-11, CDF=3.91468724033560601170e-12, Q=9.9999999999999998889777e-01,
2016.11.10 17:53:32.655 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: Test 2: Berechnungen auf Arrays
2016.11.10 17:53:53:32.665 TestStatNCT (EURUSD,H1) 2 0, PDF=4.92773299108629100851e-15, CDF=6.23274905782904190070e-16, Q=1.51119154775858715131e-18,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 1, PDF=1.130226163094897516453e-14, CDF=1.3899389577957373769266e-15, Q=9.99999999999989369615e-02,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 2, PDF=2.64161256619123119969e-14, CDF=3.16755115913693189175e-15, Q=2.00000000000000004840572e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 3, PDF=6.28106243570810575054e-14, CDF=7.3638179090305861902898e-15, Q=2.9999999999999998601119e-01
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 4, PDF=1.5163698393962646374250e-13, CDF=1.743039359090744906969191e-14, Q=4.00000000000005184742e-01
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 5, PDF=3.70864175555731463525e-13, CDF=4.19192812277470617962e-14, Q=5.000000000000000000000000e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 6, PDF=9.16615229573755101565e-13, CDF=1.02187737277044947465e-13, Q=5.9999999999999998867573e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 7, PDF=2.28327725393015114329e-12, CDF=2.51850847368662607692e-13, Q=6.9999999999999999289457e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 8, PDF=5.7160930393970751591223e-12, CDF=6.25821417361289428232e-13, Q=7.9999999999999999299967253e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 9, PDF=1.43395037240077606742e-11, CDF=1.56338059375202603523e-12, Q=8.999999999999999998578915e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) 2 10, PDF=3.59391445912256345050e-11, CDF=3.91468724033560601170e-12, Q=9.9999999999999998889777e-01,
2016.11.10 17:53:32.665 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: Test 3: R-ähnliche überladene Funktionen
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 0, PDF=-3.29438973521509552711e+01, CDF=-3.50115439911437320575e+01, Q=9.32008491370933962264e-15,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 1, PDF=-3.21137735448868468468779e+01, CDF=-3.42095165639872504926e+01, Q=9.9999999999999992561506e-02
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 2, PDF=-3.12648017507063613607e+01, CDF=-3.33858176105613679852e+01, Q=2.00000000000004563017e-01
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 3, PDF=-3.03986521580849320401e+01, CDF=-3.25421978598387227066e+01, Q=2.9999999999999998490097e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 4, PDF=-2.95172869939179705057e+01, CDF=-3.16805609544090991392e+01, Q=4.00000000000005240253e-01
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 5, PDF=-2.86229405029589081266e+01, CDF=-3.08030305013295588878e+01, Q=5.000000000000000000000000e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 6, PDF=-2.77180886076848480570e+01, CDF=-2.99119647118446110312e+01, Q=5.99999999999999987550e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 7, PDF=-2.680540931294946693489897e+01, CDF=-2.90099393581479034765e+01, Q=6.999999999999999999400480e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 8, PDF=-2.58877355789277032727e+01, CDF=-2.80997113402901490531e+01, Q=7.99999999999999489297e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 9, PDF=-2.49680028891657173062e+01, CDF=-2.71841705920503962091e+01, Q=8.9999999999999998689937e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) 3 10, PDF=-2.40491940358795979979193e+01, CDF=-2.62662856772029869035e+01, Q=9.99999999999998889777e-01,
2016.11.10 17:53:32.676 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: Test 4: Generatoren von Zufallswerten
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nicht zentraler T-Verteilungstest bestanden
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: PDF max Fehler : 1.48634016318122160328e-25
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: CDF max Fehler : 2.75966439373922392108e-18
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nicht-zentraler T-Verteilungstest: Quantile max error : 5.16253706450697791297e-15
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nicht-zentraler T-Verteilungstest: PDF richtige Ziffern : 24
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nichtzentraler T-Verteilungstest: CDF korrekte Ziffern : 17
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) Nicht-zentraler T-Verteilungstest: Quantil richtige Ziffern : 14
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1)
2016.11.10 17:53:32.683 TestStatNCT (EURUSD,H1) 1 von 1 bestanden

Ergebnis des Skripts TestStatNCT.mq5 (Test aus TestStat.mq5, zusätzliche Ausgabe der berechneten Werte in der Funktion TestNoncentralTDistribution)

Wie man sieht, werden die Quantile angesprochen und die Tests werden bestanden.

Es handelt sich um folgende Fehler:

//--- precision
double calc_precision_pdf=10 E-15;
double calc_precision_cdf=10 E-15;
double calc_precision_quantile=10 E-14;

In Denise Benton, K. Krishnamoorthy, "Computing discrete mixtures of continuous distributions: noncentral chisquare, noncentral t and the distribution of the square of the sample multiple correlation coefficient" (Berechnung diskreter Mischungen kontinuierlicher Verteilungen: nicht zentrales Chisquare, nicht zentrales t und die Verteilung des Quadrats des multiplen Stichprobenkorrelationskoeffizienten), wurde gezeigt, dass der Algorithmus AS 243 Fehler aufweist:


Es gibt also Fehler in R, deren Ursache wahrscheinlich im Algorithmus AS 243 liegt, der für die Berechnung der CDF verwendet wird.

Dateien:
TestStatNCT.mq5  16 kb
 
Quantum:

1) Dies ist bei Wolfram nicht der Fall. Das Integral von positiven Werten, die nicht Null sind, kann nicht Null sein.

2) Bei den Tests traten auch Fehler in den Algorithmen auf.

3) Bei einer nicht-zentralen t-Verteilung beispielsweise sind die Quantile nicht umkehrbar:


1 - Wenn Sie auch über einen Fehler bei der Gamma-Verteilung schreiben, dann richte ich meine Forderung an Sie. Es ist nicht korrekt zu sagen, dass in R ein Fehler vorliegt. Ich sehe in diesem Beitrag einen Versuch der Etikettierung. Offensichtlich haben Sie keine Gelehrten konsultiert, die Pakete verwenden und dort keine Fehler sehen. Die Funktion in Python gibt ebenfalls 1 Dichte in Null aus.

Noch einmal. Der Dichtewert ist nicht auf Null definiert. Wolfram glaubt, dass es 0 ist, und du stimmst dem einfach zu, ohne irgendwelche unabhängigen Ableitungen zu machen.

Sie sagen, dass Wolfram nichts damit zu tun hat, aber Sie können meine Frage nach der Potenzierung von Null durch Null nicht beantworten. Stattdessen zeigen Sie mir Wolfram...

Sie sehen selbst, dass in der rechten Näherung der Wert gegen Eins geht, was bedeutet, dass das Integral in der Näherung auch nicht Null ist. Und sie ist nicht gleich Null, ebenso wenig wie die Dichte, denn es macht keinen Sinn, einen unbestimmten Wert zu integrieren.

2 - Dies kann weiter überprüft werden, und es kann z. B. ein Fehler im Algorithmus festgestellt werden.

3) Es kann zum Beispiel überprüft werden.

 
Quantum:


Bei der nicht-zentralen t-Verteilung zum Beispiel werden die Quantile nicht umgekehrt:


Die Quantile 0-0,6 werden hier nicht korrekt berechnet.

> n <- 10> k <- seq(0,1,by=1/n)> nt_pdf<-dt(k, 10,8, log = FALSE)> nt_cdf<-pt(k, 10,8, log = FALSE)> quantile<-qt(nt_cdf, 10,8, log = FALSE)> nt_pdf [1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11> nt_cdf [1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12> k [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0> nt_quantile [1] -Inf -1.340781e+154 -1.340781e+154-1.340781e+154 -1.340781e+154 [7] -1.340781e+154 7 .000000e-01 8.000000e-01 9.000000e-01
Entschuldigung, wo in Ihrem Code wird die Variable nt_quantile initialisiert, d. h. woher kommt sie?
 

1) Wie lässt sich erklären, dass an einem Punkt cdf=0 ist, während pdf ungleich Null ist?

> n <- 5> k <- seq(0,1,by=1/n)> gamma_pdf<-dgamma(k, 1,1, log = FALSE)> gamma_cdf<-pgamma(k, 1,1, log = FALSE)> k[1] 0.0 0.2 0.4 0.6 0,8 1,0> gamma_pdf[1] 1,0000000 0,8187308 0,6703200 0,5488116 0,4493290 0,3678794> gamma_cdf[1] 0,0000000 0,1812692 0,3296800 0,4511884 0,5506710 0,6321206

2) Wie lässt sich erklären, dass die Quantile nicht mit den ursprünglichen übereinstimmen?

> n <- 10> k <- seq(0,1,by=1/n)> nt_pdf<-dt(k, 10,8, log = FALSE)> nt_cdf<-pt(k, 10,8, log = FALSE)> nt_quantile<-qt(nt_cdf, 10,8, log = FALSE)> nt_pdf [1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11> nt_cdf [1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12> k [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0> nt_quantile [1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01
 
Alexey Burnakov:
Entschuldigung, wo in Ihrem Code wird die Variable nt_quantile initialisiert, d. h. woher kommt sie?

Entschuldigung, es gab einen Tippfehler im Skript, ich habe ihn korrigiert.

Das Drehbuch sieht folgendermaßen aus:

> n <- 10> k <- seq(0,1,by=1/n)> nt_pdf<-dt(k, 10,8, log = FALSE)> nt_cdf<-pt(k, 10,8, log = FALSE)> nt_quantile<-qt(nt_cdf, 10,8, log = FALSE)> nt_pdf [1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11> nt_cdf [1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12> k [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0> nt_quantile [1] -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 [7] -1.340781e+154 7.000000e-01 8.000000e-01 9.000000e-01
 
Quantum:

1) Wie lässt sich erklären, dass an dem Punkt cdf=0 ist, während pdf ungleich Null ist?

2) Wie lässt sich erklären, dass die Quantile nicht mit den ursprünglichen Quantilen übereinstimmen?

Ich werde darüber nachdenken und Ihnen antworten. Beantworten Sie eine Frage immer mit einer Frage? Wo sind Ihre eigenen statistischen Überlegungen?
 
Alexey Burnakov:

Der Punkt ist, dass @Quantum sich ausschließlich mit der Implementierung und vollständigen Verifizierung von R's Analogon der mathematischen Bibliotheken in MQL5 beschäftigt.

Dies ist nicht die Argumentation eines Theoretikers. Und er greift tief in die Tasche, wenn er Unit-Tests schreibt, die sicherstellen, dass die Bibliothek korrekt ist.


Man sollte nicht a priori davon ausgehen, dass in R alles richtig ist. Im Gegenteil, ich würde sagen, dass, selbst wenn es eine C++-Implementierung der Funktionen gibt, alles ziemlich primitiv ist. Und in Bezug auf die Geschwindigkeit können Sie sehen, dass die MQL5-Bibliothek im Quellcode auf unserem Compiler im Durchschnitt um den Faktor 3 gewinnt.

Wir haben uns die Mühe gemacht, alles noch einmal zu überprüfen und dabei offensichtliche Fehler gefunden. Diese Fehler haben sich bestätigt:

Der Algorithmus AS 243 wurde von Lenth vorgeschlagen [Lenth, R.V., "Cumulative distribution function of the noncentral t distribution", Applied Statistics, Vol. 38 (1989), 185-189]. Der Vorteil dieser Methode ist die schnelle Rekursionsberechnung von unendlichen Reihentermini mit unvollständigen Betafunktionen. Aber in dem Artikel [D. Benton, K. Krishnamoorthy, "Computing discrete mixtures of continuous distributions: noncentral chisquare, noncentral t and the distribution of the square of the sample multiple correlation coefficient", Computational Statistics & Data Analysis, 43, (2003), 249-267], wurde gezeigt, dass dieser Algorithmus zu Fehlern aufgrund des Fehlers der Präzisionsauswertung bei der Summierung der Reihenterme führt, insbesondere für große Werte des nicht zentralen Delta-Parameters. Die Autoren des Papiers schlugen einen korrigierten Algorithmus zur rekursionsbasierten Berechnung der dezentralen T-Verteilungswahrscheinlichkeit vor.

Wir verwenden in der Statistikbibliothek MQL5 den korrekten Algorithmus zur Berechnung der Wahrscheinlichkeiten aus dem Artikel [D. Benton, K. Krishnamoorthy, "Computing discrete mixtures of continuous distributions: noncentral chisquare, noncentral t and the distribution of the sample multiple correlation coefficient", Computational Statistics & Data Analysis, 43, (2003), 249-267]. die genaue Ergebnisse liefert.

Um die Genauigkeit der Berechnungen zu gewährleisten und um Drittentwicklern die Möglichkeit zu geben, die Qualität der Bibliothek zu überprüfen, haben wir mehrere Unit-Test-Skripte in die Lieferung aufgenommen. Sie finden sie unter /Scripts/UnitTests/Stat.

Schauen Sie sich bitte die Veröffentlichungsdaten an. Sie werden sehen, wie die Arbeit mit den Tipps der Wissenschaftler voranschreitet.

Außerdem wäre es ein Fehler, @Quantum nicht als Wissenschaftler zu betrachten.

 

Erläutern Sie dann in der Reihenfolge der Wörtlichkeit, wie bei einer gleichmäßigen, kontinuierlichen Verteilung die Dichte am Extrempunkt positiv ist und das Integral Null ist: https://en.wikipedia.org/wiki/Uniform_distribution_(kontinuierlich)

 
Renat Fatkhullin:

Der Punkt ist, dass @Quantum sich ausschließlich mit der Implementierung und vollständigen Validierung von Rs analogen mathematischen Bibliotheken in MQL5 beschäftigt.

Dies ist nicht die Argumentation eines Theoretikers. Und er greift tief in die Tasche, wenn er Unit-Tests schreibt, die sicherstellen, dass die Bibliothek korrekt ist.


Man sollte nicht a priori davon ausgehen, dass in R alles richtig ist. Im Gegenteil, ich würde sagen, dass, selbst wenn es eine C++-Implementierung der Funktionen gibt, alles ziemlich primitiv ist. Und in Bezug auf die Geschwindigkeit können Sie sehen, dass die MQL5-Bibliothek im Quellcode auf unserem Compiler im Durchschnitt um den Faktor 3 gewinnt.

Wir haben uns die Mühe gemacht, alles noch einmal zu überprüfen und dabei offensichtliche Fehler gefunden. Diese Fehler haben sich bestätigt:

Schauen Sie sich bitte die Daten der Veröffentlichungen an. Sie werden sehen, wie die Arbeit mit den Ratschlägen der Wissenschaftler voranschreitet.

Darüber hinaus wäre es ein Fehler, @Quantum nicht als Wissenschaftler zu betrachten.

Ich habe nichts über diesen Fehler gesagt. Es ist so, es ist so, es ist so.

Was die Gamma-Verteilung angeht, so habe ich ihn so verstanden, dass er das mit Ihrer Implementierung erreichen wollte. Und ich wiederhole, dass seine Behauptung darüber reine Wortklauberei ist.

Grund der Beschwerde: