Diskussion zum Artikel "R-squared als Gütemaß der Saldenkurve einer Strategie" - Seite 3

 
fxsaber:

In diesem Papier wird die lineare Regression mit einem Fehler betrachtet - über CLinReg::LRLine.

Beweis

Ergebnis

Das Vorzeichen ist falsch. Die alternative LR-Implementierung (CAlglib::LRBuild + CAlglib::LRUnpack) rechnet korrekt:

Ich weiß nicht, ich habe auf Gleichheit geprüft, das System LR zum Quadrat ist genau gleich R^2. Was das Vorzeichen angeht - es scheint schwierig zu sein, hier einen Fehler zu machen.
 
fxsaber:

Das ist der Punkt, an dem ich mich geirrt habe. Für mich ist es überhaupt keine offensichtliche Aussage.

Also beschloss ich, sie experimentell durch Animation zu bestätigen (ich kann mich nicht einfach auf Ihr Wort verlassen).

Es sieht so aus, als ob es wahr ist.

Das ist wirklich cool. Diese Animation sollte in den Artikel eingefügt werden! Wenn es dir nichts ausmacht, werde ich das tun.

 

Im Allgemeinen ist die gesamte Statistik ein Feld für Hoolivar.

Aber der Artikel ist in zwei Richtungen interessant:

  • Verbesserung von R^2: Ändern Sie es so, dass der Indikator für zufällige Spaziergänge eine Normalverteilung mit einem Mittelwert von 0,0 erzeugt.
  • Untersuchung von sehr nicht-trivialen Arkosin-Theoremen, Untersuchung von stochastischen Trends. Parallelen zwischen stochastischen Trends und Trends auf den Märkten.

 
Vasiliy Sokolov:
Ich weiß nicht, ich habe die Gleichheit geprüft, das System LR zum Quadrat ist genau gleich R^2. Was das Vorzeichen angeht - es scheint schwierig zu sein, hier einen Fehler zu machen.

Sie müssen diesen Code mehrmals ausführen, bis Sie den Unterschied im Vorzeichen erkennen können. Das Diagramm zeigt speziell einen Graphen zur Selbstüberprüfung an - R2. Und R ist Ihr Berechnungsalgorithmus.

Sie können sehen, dass R manchmal von dem exakt richtigen R2 abweicht. Es wäre notwendig, Ihre Art der Regressionsberechnung irgendwie anzupassen, damit das Vorzeichen übereinstimmt, denn sie ist um eine Größenordnung schneller als die Kontrollberechnung.

Wahrscheinlich sollten Sie das Quell-Array zur Verfügung stellen, das den Fehler zeigt. Dann wird er sofort offensichtlich.

Vasiliy Sokolov:

Das ist sehr cool. Diese Animation sollte in den Artikel eingefügt werden! Wenn es Ihnen nichts ausmacht, werde ich es tun.

Dann würde der Code der Animation gut sein, Sie zu einem normalen Zustand zu beenden, weil ich es selbst auf einer hastigen Hand in Buschbedingungen tat. Und gifku, bzw., um mehr visuelle machen.

 
fxsaber:

Equity für die R^2-Berechnung sollte nicht als AccountEquity ( == AccountBalance + Sum(Profit[i])), sondern als Sum(Profit[i] / Lots[i]) (für einstellige TS) berechnet werden.

Was ist, wenn das MM der Strategie auf der SL-Größe basiert und die SL selbst dynamisch ist?
Zwei benachbarte Trades können unterschiedliche Lots haben und dementsprechend Gewinn machen, wenn sie die gleiche Anzahl von Pips nehmen.
Obwohl das Risiko pro Trade das gleiche ist.

 
Andrey Khatimlianskii:

Was ist, wenn das MM der Strategie auf der SL-Größe basiert und die SL selbst dynamisch ist?
Zwei benachbarte Trades können unterschiedliche Lots haben und dementsprechend Gewinn machen, wenn sie die gleiche Anzahl von Pips nehmen.
Obwohl das Risiko pro Trade das gleiche ist.

Ich verstehe nicht, was sich in dieser Situation ändert.

 
fxsaber:

Ich verstehe nicht, was in dieser Situation einen Unterschied macht.

Ja, ich bin dumm. Die Division durch das Los würde das gleiche Ergebnis liefern.

 

Der Autor zeigt einen völligen Mangel an Verständnis für Zufallsprozesse. Alle Schlussfolgerungen des Artikels haben nichts mit dem eigentlichen Konzept des Zufalls zu tun und führen die Menschen in die Irre.


Lassen Sie mich diese Meinung erläutern.

Gleich zu Beginn des Artikels wird eine Definition gegeben:

Dielineare Regression ist eine lineare Abhängigkeit einer Variablen y von einer anderen unabhängigen Variablen x, ausgedrückt durch die Formel y = ax+b. In dieser Formel ist a der Multiplikator und b ist der Verzerrungskoeffizient


Die lineare Regression wird NICHT durch die folgende Formel ausgedrückt

y = ax+b ist eine lineare Gleichungsformel,

sondern wird ausgedrückt durch die Formel

y = ax+b + Fehler

Der Fehler muss NORMAL VERTEILT sein, und wenn dies nicht der Fall ist, ergeben sich viele Nuancen, die die Anwendung der linearen Regression stark einschränken.

Es ist äußerst wichtig zu wissen, dass die linearen Regressionskoeffizienten im Gegensatz zur linearen Gleichung KEINE Konstanten sind, sondern Zufallswerte, und wenn man eine standardmäßige lineare Regressionsanpassung, z. B. in R, vornimmt, wird für die linearen Regressionskoeffizienten immer die Abweichung von diesem Wert der Koeffizienten sowie die Wahrscheinlichkeit (Wahrscheinlichkeit in der Nullhypothese des NICHT-BEWEISES DIESES KOEFFIZIENTEN) angegeben. Noch einmal: Im Gegensatz zu einer linearen Gleichung können lineare Regressionskoeffizienten überhaupt nicht existieren. Deshalb ist der in dem Artikel diskutierte R2-Koeffizient nur für Regressionen sinnvoll, bei denen die Wahrscheinlichkeit des Nichtvorhandenseins der Regressionskoeffizienten unter 10 % liegt. Bei Finanzreihen habe ich noch nie gesehen, dass die Koeffizienten der linearen Regression signifikant sind, und daher ist es möglich, genau diese lineare Regression zu verwenden.

 
fxsaber:

In diesem Papier wird die lineare Regression mit einem Fehler betrachtet - über CLinReg::LRLine.

Beweis


Ergebnis


Das Vorzeichen ist falsch. Die alternative LR-Implementierung (CAlglib::LRBuild + CAlglib::LRUnpack) rechnet korrekt:



Ja, mit einem Fehler, Sie haben recht, das beste Ergebnis wird unter verlustbehafteten Mengen ermittelt, obwohl es positive mit demselben R2 gibt


Mit Ihrer Version ist alles in Ordnung:

 
fxsaber:

Das Kriterium für die Suche nach einer linearen Funktion mit der Bezeichnung "Lineare Regression" ist der MNC der Varianzen oder - was dasselbe ist - die Maximierung des absoluten Werts des Pearsonschen RQ, der MathAbs(LR) ist . Und die Maximierung von MathAbs(LR) ist dasselbe wie die Maximierung von R^2, da MathAbs(LR) = MathSqrt(R^2).

Der MNC der Ausreißer ist MathMin((Summe(X[i] - LR[i])^2)).

Erwünscht ist etwas ganz anderes - MathMin((Summe(X[i] - LR[i])^2 * (i / Länge)^2)). Das heißt, selbst ein großer Fehler am Anfang des Intervalls kann eine geringere Auswirkung auf das Ergebnis haben als ein kleiner Fehler am Ende des Intervalls.

Die klassische LR berücksichtigt dies nicht, alle Fehler sind dort "gleich".

Bitte schlagen Sie eine Funktion in R vor, die den Fehlern unterschiedliche Gewichtung gibt.