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

 
Quantum:

Interessante Tatsache

Die Definitionen der Dichtewerte der Gamma-Verteilung in der russischen Übersetzung von

Johnson N.L., Kotz S., Balakrishnan N. Univariate kontinuierliche Verteilungen. Teil 1 und die frühere englische Version sind unterschiedlich:



aber die englische Version enthält vermutlich einen Tippfehler aufgrund unterschiedlicher Schriftzeichen.

Das ist kein Tippfehler. Wenn Sie sich die Mühe machen, verschiedene Gamma-Tutorials anzuschauen... Sie werden sehen, dass eine unterschiedlich definierte Unterstützung... Irgendwo mit Null und irgendwo ohne Null.
 
Alexey Burnakov:
Es handelt sich nicht um einen Druckfehler. Wenn Sie sich die Mühe machen, mehrere verschiedene Gamma-Tutorials durchzusehen... Sie werden sehen, dass der Helpdesk anders definiert ist... Irgendwo mit Null und irgendwo ohne Null.

Im Gegensatz zu @Quantum machen Sie sich nicht die Mühe, genau diese Materialien zu prüfen und zu zitieren.

Und Sie verweisen sogar auf Excel und Python, um kein klares Beispiel zu geben.

Bisher sind Sie der Einzige, der sich in der Kunst des Witzes übt.

Vergessen Sie natürlich nicht, die Antwort von R zu zitieren, wenn Sie sie erhalten.

 

Wie erklären die Entwickler von R ihre Ergebnisse?

dgamma(0,0.5,1)=inf

pgamma(0,0.5,1)=0

wenn sie einen Punkt 0 enthalten (wie in der Definition gesehen), ergibt sich eine unendliche Dichte bei x=0, und beim Integrieren in pgamma(x,0.5,1) wird die Unendlichkeit als Null betrachtet, als ob sie nicht existierte.

 
Quantum:

Wie die R-Entwickler ihre Ergebnisse erklären:

Gute Frage, aber warum stellen Sie sie hier im Forum? Laut Renat haben Sie ein ganzes Team von Wissenschaftlern, die an R-Algorithmen arbeiten, fragen Sie sie und erzählen Sie uns später davon. Der Quellcode von R liegt in der direkten Verantwortung Ihres Teams, wenn Sie eine vollwertige Portierung vornehmen wollen.

Ich habe den Eindruck, dass Ihre "Analyse von R-Algorithmen" nur darin besteht, Funktionen mit denselben Parametern wie in R zu erstellen, die in Lehrbüchern implementiert werden, ohne ins Detail zu gehen. Und dann kommt es zu Missverständnissen wie "0^0=1" als Fehler zu bezeichnen.
Bei dem derzeitigen Trend werden Sie mit Funktionen mit R-ähnlicher Schnittstelle enden, die sich unter bestimmten Bedingungen aufgrund unterschiedlicher Implementierungen unterschiedlich verhalten. Und wenn jemand seinen Code von R nach mql übertragen will, wird er schließlich unterschiedliche Ergebnisse erhalten, die Suche nach den Gründen für die unterschiedlichen Ergebnisse leid sein und alles aufgeben. Unit-Tests werden nur einen kleinen Teil solcher Unterschiede aufdecken, da sie nur einige gemeinsame unproblematische Daten abdecken werden.

Es ist ein sehr merkwürdiger Ansatz, die Schnittstelle von R zu kopieren, seine eigene Implementierung von Funktionen zu machen, ohne überhaupt den Quellcode von R zu studieren, und die Ergebnisse mit Wolfram zu überprüfen. Was wollen Sie mit diesem Ansatz überhaupt erreichen?
Was Sie tun, kann ich als "selbst geschriebene statistische Bibliothek mql, mit einer von R kopierten Schnittstelle, und in nicht spezifizierten Situationen an Wolfram angepasst" bezeichnen. Alle anderen Worte über R in https://www.mql5.com/ru/articles/2742 sind nur Marketing und haben nichts mit R zu tun. Enttäuschung.

 
Quantum:

und dann bei der Integration in pgamma(x,0.5,1) wird die Unendlichkeit als Null betrachtet, als ob sie nicht existierte.

Nehmen wir ein einfacheres Beispiel:
x=1*10^(-90)
Die Zahl ist sehr klein, nicht Null, und es gibt keine Ungewissheiten.
> dgamma(1*10^(-90), 0,5, 1)
[1] 5.641896e+44
> pgamma(1*10^(-90), 0,5, 1)
[1] 1.128379e-45

Wolfram, das Ergebnis ist das gleiche:
PDF[GammaDistribution[0.5,1], 1*10^(-90)]
5.6419×10^44
CDF[GammaDistribution[0.5,1], 1*10^(-90)]
1.12838×10^-45

Nun, um Ihre Frage zu paraphrasieren, ohne Unendlichkeiten in den Formeln:
Wie kann man dgamma integrieren, das große Zahlen wie 5.641896e+44 liefert, um am Ende eine sehr kleine Zahl1.128379e-45 zu erhalten?
Die Antwort lautet: Auf keinen Fall.* Die Integration von dgamma() wird nicht zur Berechnung von pgamma() verwendet, es gibt andere Formeln, und die Unendlichkeit von dgamma() wird nicht in Berechnungen verwendet.

Ich verstehe die Berechnung von pgamma(0, 0.5, 1) in diesem Fall so: Wenn man eine unendliche Menge von Zahlen [0;Inf) nimmt und zufällig eine davon auswählt, wie groß ist die Wahrscheinlichkeit, eine Zahl <=0 auszuwählen? Die Antwort ist 1/Inf , oder 0. Das entspricht dem Ergebnis von pgamma(). Korrigieren Sie mich, wenn ich falsch liege, ich bin nicht sehr gut darin, mit Unendlichkeiten und Grenzen auf der Ebene der Intuition und Logik zu arbeiten.

*hier bin ich gestolpert und habe die Rate unterschätzt, mit der das Ergebnis von dgamma() mit abnehmendem x abnimmt. bitte ignorieren Sie diese Aussage.

 
Dr. Trader:

Gute Frage, aber warum stellen Sie sie hier im Forum? Laut Renat haben Sie dort ein ganzes Team von Wissenschaftlern, die R-Algorithmen analysieren, sie fragen und uns dann informieren. Der Quellcode von R liegt in der direkten Verantwortung Ihres Teams, wenn Sie eine vollwertige Portierung vornehmen wollen.

Nun scheint mir, dass Ihre "Analyse von R-Algorithmen" nur darin besteht, Funktionen mit denselben Parametern wie in R zu erstellen, wobei die Implementierung anhand von Universitätslehrbüchern erfolgt, ohne ins Detail zu gehen. Und dann kommt es zu Missverständnissen wie "0^0=1" als Fehler zu bezeichnen.
Bei dem derzeitigen Trend werden Sie mit Funktionen mit R-ähnlicher Schnittstelle enden, die sich unter bestimmten Bedingungen aufgrund unterschiedlicher Implementierungen unterschiedlich verhalten. Und wenn jemand seinen Code von R auf mql übertragen will, wird er schließlich unterschiedliche Ergebnisse erhalten, die Suche nach den Gründen für die unterschiedlichen Ergebnisse leid sein und das Ganze aufgeben. Unit-Tests werden nur einen kleinen Teil solcher Unterschiede aufdecken, da sie nur einige gemeinsame unproblematische Daten abdecken werden.

Es ist ein sehr merkwürdiger Ansatz, die Schnittstelle von R zu kopieren, seine eigene Implementierung von Funktionen zu machen, ohne überhaupt den Quellcode von R zu studieren, und die Ergebnisse mit Wolfram zu überprüfen. Was wollen Sie mit diesem Ansatz überhaupt erreichen?
Was Sie tun, kann ich als "selbst geschriebene statistische Bibliothek mql, mit einer von R kopierten Schnittstelle, und in nicht spezifizierten Situationen an wolfram angepasst" bezeichnen. Alle anderen Worte über R in https://www.mql5.com/ru/articles/2742 sind nur Marketing und haben nichts mit R zu tun. Enttäuschend.

Über R haben wir uns getäuscht, auch ich. Natürlich können wir diese Täuschung auf Meta-Zitate schieben, aber die Wahrheit ist eine andere.

Diejenigen, die R verwenden, können sich an die Geschichte der Beförderung von R in den Olymp erinnern. Das gesamte R-System, das 1993 vollständig von S abgekupfert wurde, war weitere 10 Jahre lang in engen Kreisen bekannt. Und erst 10 Jahre nach seiner Gründung, mit 20 Jahren Geschichte mit S, von Anfang der Nullerjahre begann ein allmählicher Aufstieg und machte seinen Weg in die Top Ten vor fünf Jahren und hat heute nur einen Konkurrenten, Python. Heute ist R ein riesiges System, das den Standard in der Statistik darstellt.

Daraus ergibt sich die Schlussfolgerung, dass Analoga von R in MKL unmöglich sind.

Womit haben wir es hier zu tun?

Wir haben es bei MKL5 mit einem sehr positiven Entwicklungsprozess zu tun, was die mathematischen Funktionen angeht. Wenn es metaquotes gelingt, die Menge der mathematischen Funktionen mit Analoga von Funktionen aus stats R-Paket aufzufüllen, sollte dieser Prozess nur begrüßt werden. Dennoch ist es eine sehr gute Wahl, R und nicht irgendein anderes mathematisches Paket als Vorlage für die Nachahmung zu nehmen. Dies ist jedoch kein Import von Funktionen aus R - es handelt sich um neu geschriebene Funktionen, die analog sind und mit dem Original übereinstimmen können oder auch nicht. Dass sie nicht übereinstimmen, schmälert jedoch keineswegs die Bedeutung der Arbeit, die mit den Metaquotes begonnen wurde. Und wer sich entschließt, Code von R nach MKL5 zu portieren, sollte bedenken, dass es sich um eine andere Implementierung als R handelt, mit ihren eigenen Nuancen, ihren eigenen Fehlern und ihrer eigenen Sprachumgebung.

Es gibt also keinen Grund, etwas zu vergleichen. MKL5 wird um statistische Funktionen erweitert, und das ist gut so. Wenn die Plot-Methode hinzukommt, wird dies eine Revolution in den MKL5-Grafikwerkzeugen sein.

PS

Und Sie, ich und viele andere Benutzer von R werden nicht nur in einem Fall enttäuscht sein: Das Terminal wird neu geschrieben und seine Programmiersprache wird R sein.

 

Die erste Version des Floßes ist bereits erschienen:https://www.mql5.com/ru/forum/97153/page10#comment_3831485

Sie werden Fehler in R in Kauf nehmen müssen; der Glaube an Unfehlbarkeit ist ein schlechter Begleiter. Wir haben auch mit dem Mythos über die Geschwindigkeit von Berechnungen in R aufgeräumt. Der Code ist dort mit einer Geradlinigkeit und Nachlässigkeit geschrieben.

Der Fehler bei der Verwendung von AS 243 ist unbestreitbar und durch unsere Studien zur Qualität der Ergebnisse belegt und durch Materialien Dritter bestätigt.

Sie argumentieren jetzt nur noch mit Null, aber auch hier werden Sie aufgeben müssen. Sie bemühen sich bereits, vom Thema abzulenken, indem Sie andere Punkte vorschlagen.

Wir haben wieder einmal gute Arbeit geleistet, uns mit dem Thema beschäftigt und alles mit Tests abgedeckt.

Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее"
Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее"
  • www.mql5.com
Опубликована статья Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее: Автор: MetaQuotes Software Corp...
 

In der Sprache R, die - richtigerweise - von S abstammt und seit mindestens 15, wenn nicht 20 Jahren für jede Statistikfunktion existiert, werden die Codes von Leuten mit Hochschulabschluss bereitgestellt. Professoren, außerordentliche Professoren in den Abteilungen für Statistik, in vielerlei Hinsicht, an amerikanischen Universitäten. Ihre Berechnungen werden nicht nur dummerweise in Commits aufgenommen, weil sie sie kostenlos durchgeführt haben, sondern sie werden von wissenschaftlichen Veröffentlichungen in Fachzeitschriften begleitet. Und das gilt für jede weniger wichtige Funktion und jedes Paket. Wenn ich zum Beispiel eine Funktion verwende, um die Aussagekraft eines Tests zu ermitteln, muss ich ein Argument für die Effektgröße eingeben. Und in der Dokumentation habe ich gelesen, dass die gepoolte Standardabweichung auf diese Weise gezählt wird. Ich gehe ins Internet, finde den Autor der Methode, lese darüber... Und ich argumentiere über die Ergebnisse der Anwendung dieser Funktion.

dgamma basiert auf dem Binomialverteilungscode von Catherine Loader. Ihr Artikel über diese Methode stammt aus dem Jahr 2000. Sie können ihn gerne lesen.

Und jetzt die MQL-Frage - Sie schreiben Ihre Algorithmen, es ist klar, dass Sie sich fast alles ausleihen. In seltenen Fällen sagen Sie, dass der Algorithmus nicht genau genug ist, aber es gibt einen anderen Algorithmus, der in diesem Magazin beschrieben wird, und wir werden ihn verwenden. Was ist mit den anderen Algorithmen? Vermerken Sie in den Unterlagen, dass Sie sie ausleihen? Ich glaube nicht, dass Sie die Wahrscheinlichkeitsberechnung in der Binomialverteilung neu erfinden werden...

Gibt es einen solchen Hinweis in Ihrer Referenz?

pwr.t2n.test {pwr} R Dokumentation

Leistungsberechnungen für t-Tests für zwei Stichproben (unterschiedliche Größen)


Beschreibung


Berechnung der Leistung von Tests oder Bestimmung von Parametern zur Erreichung der Zielleistung (ähnlich wie power.t.test).


Verwendung


pwr.t2n.test(n1 = NULL, n2= NULL, d = NULL, sig.level = 0.05, power = NULL,

Alternative = c("zweiseitig",

"kleiner", "größer"))

Argumente


n1

Anzahl der Beobachtungen in der ersten Stichprobe

n2

Anzahl der Beobachtungen in der zweiten Stichprobe

d

Effektgröße

sig.level

Signifikanzniveau (Fehlerwahrscheinlichkeit vom Typ I)

Strom

Aussagekraft des Tests (1 minus Fehlerwahrscheinlichkeit Typ II)

alternativ

eine Zeichenkette, die die Alternativhypothese angibt, muss eine der folgenden sein: "zweiseitig" (Standard), "größer" oder "kleiner".

Einzelheiten


Genau einer der Parameter 'd','n1','n2','power' und 'sig.level' muss als NULL übergeben werden, und dieser Parameter wird aus den anderen bestimmt. Beachten Sie, dass der letzte Wert eine Nicht-NULL-Vorgabe hat, so dass NULL explizit übergeben werden muss, wenn Sie ihn berechnen wollen.


Wert


Objekt der Klasse ''power.htest'', eine Liste der Argumente (einschließlich des berechneten), ergänzt um die Elemente 'method' und 'note'.


Hinweis


uniroot' wird verwendet, um Potenzgleichungen für Unbekannte zu lösen, daher können Fehler auftreten, insbesondere die Unfähigkeit, die Wurzel einzuklammern, wenn ungültige Argumente angegeben werden.


Autor(en)


Stéphane Champely <champely@univ-lyon1.fr> aber das ist nur eine Kopie von Peter Dalgaards Arbeit (power.t.test)


Referenzen


Cohen, J. (1988). Statistische Leistungsanalyse für die Verhaltenswissenschaften (2. Auflage). Hillsdale,NJ: Lawrence Erlbaum.

Und wenn Sie Code ausleihen, ohne die Quelle des Codes und den Autor der Methode zu nennen, ist Ihre Arbeit ein Plagiat. Und wie wird man in der statistischen Gemeinschaft dastehen, wenn irgendein Quantum einen verleumderischen Artikel über eine falsche Dichtefunktion veröffentlicht, die aus Catherines Arbeit abgeleitet wurde? Ich glaube nicht, dass sie das tun werden...

Für die Gamma-Familie von Funktionen:

GammaDist {stats} R Dokumentation

Die Gamma-Verteilung


Beschreibung


Dichte, Verteilungsfunktion, Quantilsfunktion und Zufallsgenerierung für die Gamma-Verteilung mit den Parametern Form und Skala.


Verwendung


dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)

pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

log.p = FALSE)

qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

log.p = FALSE)

rgamma(n, form, rate = 1, scale = 1/rate)

Argumente


x, q

Vektor der Quantile.

p

Vektor der Wahrscheinlichkeiten.

n

Anzahl der Beobachtungen. Wenn length(n) > 1 ist, wird die Länge als die erforderliche Anzahl angenommen.

Satz

Eine alternative Möglichkeit zur Angabe der Skala.

Form, Maßstab

Form- und Skalierungsparameter. Muss positiv sein, streng skalieren.

log, log.p

logisch; wenn TRUE, werden Wahrscheinlichkeiten/Dichten p als log(p) zurückgegeben.

unterer.Schwanz

logisch; wenn TRUE (Standard), sind die Wahrscheinlichkeiten P[X ≤ x], sonst P[X > x].

Einzelheiten


Wird die Skalierung weggelassen, nimmt sie den Standardwert 1 an.


Die Gamma-Verteilung mit den Parametern Form = a und Skala = s hat die Dichte


f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)


für x ≥ 0, a > 0 und s > 0. (Gamma(a) ist hier die Funktion, die von R's gamma() implementiert und in dessen Hilfe definiert wird. Man beachte, dass a = 0 der Trivialverteilung entspricht, bei der sich die gesamte Masse im Punkt 0 befindet).


Der Mittelwert und die Varianz sind E(X) = a*s und Var(X) = a*s^2.


Das kumulative Risiko H(t) = - log(1 - F(t)) ist


-pgamma(t, ..., niedriger = FALSE, log = TRUE)

Man beachte, dass bei kleinen Werten der Form (und moderater Skalierung) ein großer Teil der Masse der Gamma-Verteilung auf Werte von x entfällt, die so nahe bei Null liegen, dass sie in der Computerarithmetik als Null dargestellt werden. Daher kann rgamma durchaus Werte zurückgeben, die als Null dargestellt werden. (Dies geschieht auch bei sehr großen Werten von scale, da die eigentliche Generierung für scale = 1 erfolgt).


Wert


dgamma gibt die Dichte an, pgamma die Verteilungsfunktion, qgamma die Quantilfunktion und rgamma erzeugt Zufallsabweichungen.


Ungültige Argumente führen zum Rückgabewert NaN, mit einer Warnung.


Die Länge des Ergebnisses wird durch n für rgamma bestimmt und ist das Maximum der Längen der numerischen Argumente für die anderen Funktionen.


Die numerischen Argumente außer n werden zur Länge des Ergebnisses recycelt. Es werden nur die ersten Elemente der logischen Argumente verwendet.


Hinweis


Die Parametrisierung von S (Becker et al. (1988)) erfolgte über Form und Rate: S hatte keinen Skalenparameter. In R 2.x.y hatte die Skalierung Vorrang vor der Rate, aber jetzt ist es ein Fehler, beide anzugeben.


pgamma ist eng mit der unvollständigen Gamma-Funktion verwandt. Nach der Definition von Abramowitz und Stegun 6.5.1 (und von "Numerical Recipes") ist dies


P(a,x) = 1/Gamma(a) integral_0^x t^(a-1) exp(-t) dt


P(a, x) ist pgamma(x, a). Andere Autoren (z. B. Karl Pearson in seinen Tabellen von 1922) lassen den Normalisierungsfaktor weg und definieren die unvollständige Gammafunktion γ(a,x) als gamma(a,x) = integral_0^x t^(a-1) exp(-t) dt, d. h. pgamma(x, a) * gamma(a). Andere wiederum verwenden die "obere" unvollständige Gamma-Funktion,


Gamma(a,x) = integral_x^Inf t^(a-1) exp(-t) dt,


die durch pgamma(x, a, lower = FALSE) * gamma(a) berechnet werden kann.


Beachten Sie jedoch, dass pgamma(x, a, ...) derzeit a > 0 erfordert, während die unvollständige Gammafunktion auch für negatives a definiert ist. In diesem Fall können Sie gamma_inc(a,x) (für Γ(a,x)) aus dem Paket gsl verwenden.


Siehe auch https://en.wikipedia.org/wiki/Incomplete_gamma_function, oder http://dlmf.nist.gov/8.2#i.


Quelle


dgamma wird über die Poisson-Dichte berechnet, wobei der von Catherine Loader beigesteuerte Code verwendet wird (siehe dbinom).


pgamma verwendet einen unveröffentlichten (und nicht anderweitig dokumentierten) Algorithmus "hauptsächlich von Morten Welinder".


qgamma basiert auf einer C-Übersetzung von


Am besten, D. J. und D. E. Roberts (1975). Algorithmus AS91. Prozentpunkte der Chi-Quadrat-Verteilung. Angewandte Statistik, 24, 385-388.


plus einem letzten Newton-Schritt zur Verbesserung der Annäherung.


rgamma für Form >= 1 verwendet


Ahrens, J. H. und Dieter, U. (1982). Generierung von Gamma-Variablen durch eine modifizierte Ablehnungstechnik. Communications of the ACM, 25, 47-54,


und für 0 < Form < 1 verwendet


Ahrens, J. H. und Dieter, U. (1974). Computermethoden für Stichproben aus Gamma-, Beta-, Poisson- und Binomialverteilungen. Computing, 12, 223-246.


Referenzen


Becker, R. A., Chambers, J. M. und Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.


Shea, B. L. (1988) Algorithmus AS 239, Chi-Quadrat und unvollständiges Gamma-Integral, Angewandte Statistik (JRSS C) 37, 466-473.


Abramowitz, M. und Stegun, I. A. (1972) Handbuch der mathematischen Funktionen. New York: Dover. Kapitel 6: Gamma und verwandte Funktionen.


NIST Digitale Bibliothek der mathematischen Funktionen. http://dlmf.nist.gov/, Abschnitt 8.2.


Also, meine Lieben, die Portierung von Code ist eine ganz andere Aufgabe als das Zusammenstellen dieses Codes auf einem Array der Schriften von Statistikern.

 

Dieser Teil ist wissenschaftlicher Unfug:

6. Обнаруженные ошибки расчетов в R

В процессе тестирования расчетов в R была обнаружена ошибка расчета функции плотности для распределений Gamma, и ChiSquare и Noncentral ChiSquare в точке x=0.

> 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

Значение вероятности гамма-распределения в точке x=0 считается верно (gamma_cdf=0), но значение плотности гамма-распределения (функция dgamma() в R) в точке x=0 должно быть равно 0 (а показывает gamma_pdf=1) по определению плотности вероятности гамма-распределения.

Для функций ChiSquare и Noncentral ChiSquare плотность вероятности в точке x=0 также вычисляется с ошибкой:

> n <- 5
> k <- seq(0,1,by=1/n)
> chisquare_pdf<-dchisq(k,2,log = FALSE)
> chisquare_cdf<-pchisq(k,2,log = FALSE)
> k
[1] 0.0 0.2 0.4 0.6 0.8 1.0
> chisquare_pdf
[1] 0.5000000 0.4524187 0.4093654 0.3704091 0.3351600 0.3032653
> chisquare_cdf
[1] 0.00000000 0.09516258 0.18126925 0.25918178 0.32967995 0.39346934
> n <- 5
> k <- seq(0,1,by=1/n)
> nchisquare_pdf<-dchisq(k,2,1,log = FALSE)
> nchisquare_cdf<-pchisq(k,2,1,log = FALSE)
> k
[1] 0.0 0.2 0.4 0.6 0.8 1.0
> nchisquare_pdf
[1] 0.3032653 0.2882986 0.2737496 0.2596492 0.2460204 0.2328798
> nchisquare_cdf
[1] 0.00000000 0.05914973 0.11534730 0.16867948 0.21923842 0.26712020

В точке x=0 функция dchisq()  выдает ненулевые значения 0.5 и 0.3032653, при этом функция pchisq() вероятности вычисляет правильно (они равны 0).

Es sollte heißen - Unterschiede in den Konventionen bei der Berechnung von Dichtefunktionen am Extrempunkt für einseitige Verteilungen. Und erklären Sie für Statistiker - und warum Sie sich an andere Konventionen halten und nicht auf dem Niveau des dritten Jahres (weil Wolfram das so sieht).

Und dies ist die einzige gefundene Verbindung, die für den Abschnitt über das Recht relevant ist:

Для расчета вероятности нецентрального T-распределения Стьюдента в языке R используется алгоритм AS 243, предложенный Lenth [6]. Достоинством этого метода является быстрый рекуррентный расчет членов бесконечного ряда с неполной бета-функций. Но в статье [7] было показано, что из-за ошибки оценки точности при суммировании членов ряда данный алгоритм приводит к ошибкам (таблица 3 в статье [7]), особенно для больших значений параметра нецентральности delta. Авторы статьи [7] предложили скорректированный алгоритм рекуррентного расчета вероятности нецентрального T-распределения.

У нас в в статистической библиотеке MQL5 используется правильный алгоритм для расчета вероятностей из статьи [7] , что дает точные результаты.

 

Ich sage Ihnen, Sie versuchen so sehr, sich von einer konkreten Diskussion zu entfernen.

Wenigstens haben Sie ein Problem erkannt. Sie haben vergessen zuzugeben, dass wir Experten haben, die in der Lage sind, Kontrollen durchzuführen, um zu verstehen und eine bessere Lösung zu finden.

Alexey, warte auf eine Antwort von R. Und bemerken Sie, dass Sie nicht mehr auf die Fragen von @Quantum antworten. Er führt Sie ganz bewusst auf ein bekanntes Ziel zu.

Bisher ist auf unserer Seite Mathematica + Wolfram Alpha + Mathlab + MQL5, während auf Ihrer Seite das opsorced R ist. Der Code ist schlampig geschrieben und überhaupt nicht ausgefeilt, wie man es von einem 20 Jahre alten Projekt erwarten würde.