The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem
Es gibt zwei strukturell unterschiedliche Möglichkeiten, wie eine Regression Sie anlügen kann, und dieser Blog hat bisher nur eine davon angegriffen.
Der erste Grund ist die Selektionsverzerrung bei der Suche: Sie haben zehntausend Backtests durchgeführt, die besten behalten, und die Zahl, die Sie betrachten, ist eher das Maximum einer Rauschverteilung als eines Effekts. Das ist das Thema der deflationierten Sharpe-Ratio und ihres Schlusssteins ehrlich negativ. Die Lösung besteht darin, die Suche zu bepreisen.
Der zweite Grund ist eine Verzerrung im Koeffizienten selbst, bei einer einzelnen Regression, die Sie nie durchsucht haben. Wenn der Regressor mit dem Fehlerterm korreliert, ist OLS verzerrt und inkonsistent – und im Gegensatz zum Stichprobenrauschen nimmt dieses nicht mit der Stichprobengröße ab. Mehr Daten machen die falsche Zahl enger. Kein Bootstrapping, Walk-Forward oder Deflation ändert daran etwas, denn keine dieser Methoden stellt die Identifizierung in Frage, sondern nur die Auswahl.
In diesem Artikel geht es um den zweiten Fehler, und es handelt sich hier nicht um ein abstraktes Problem. Der Artikel zur Almgren-Chriss-Kalibrierung passt zu Permanent Impact durch Regression von 5-Minuten-Mittelpreisänderungen auf den Nettoabnehmerfluss erhält man eine von ein paar Prozent und einem Koeffizienten, der sich zwischen den Tagen um das Zwei- bis Fünffache bewegt, und nennt Endogenität als ersten strukturellen Grund: „Der Fluss reagiert auf den Preis genauso wie der Preis auf den Fluss. Momentum-Händler kaufen, weil der Preis gestiegen ist; ein naives OLS der Renditen auf den Fluss erfasst ihre Reaktion und führt sie auf die Auswirkung zurück.“ Es nennt auch die saubere Lösung – Ihre eigenen, konstruktionsbedingt exogenen Füllungen.
Dabei handelt es sich um ein Instrumentenvariablenproblem mit einem benannten Instrument und bereits internen Daten. Nachfolgend finden Sie den Schätzer, die Diagnose und das Experiment.
Endogenität in einem Absatz

OLS schätzt die Ursache In nur unter . Drei Dinge machen es kaputt. Bias aufgrund weggelassener Variablen: if fährt beides Und und ist unbeobachtet, es lebt im Irrtum, , Und Kräfte – In der Mikrostruktur treibt die unbeobachtete Ankunft von Informationen Volumen und Volatilität zusammen. Messfehler: mit einem verrauschten Proxy , , immer gegen Null abgeschwächt – der saldierte AggTrades-Fluss ist ein Stellvertreter für den echten Signed-Order-Fluss in einem fragmentierten Markt, und der Teil, den Sie nie sehen, ist der Messfehler. Gleichzeitigkeit: bereits in schärferer und konkreterer Form in der Almgren-Chriss-Auswirkungskalibrierung dargelegt, was das motivierende Problem für alles Nachfolgende ist.
Die IV-Lösung

Ein Instrument muss zwei Bedingungen erfüllen:
- Relevanz: . Testbar, und Sie müssen es testen.
- Ausschluss: — wirkt nur durch . Nicht testbar. Immer. Es handelt sich um ein ökonomisches Argument, nicht um eine Statistik.
Für ein Instrument und einen endogenen Regressor ist der Schätzer ein Verhältnis zweier Effekte in reduzierter Form (der Wald-Schätzer):
Bei Steuerungen und mehreren Instrumenten verwenden Sie 2SLS. Stufe 1: Regression der endogenen Variablen auf Instrumenten und Kontrollen, und behalten Sie die angepassten Werte bei – Aufgrund ihrer Konstruktion enthalten sie nur instrumentengesteuerte, exogene Variationen. Stufe 2: Laufen . In Matrixform, mit :
Die Falle, die jeden fängt, der dies per Hand würfelt: Wenn Sie buchstäblich zwei laufen lassen lstsq Anrufe, Ihre Standardfehler der Stufe 2 sind falsch. ist ein generierter Regressor und die Restvarianz muss aus dem Original berechnet werden , nicht das eingebaute. Naive zweistufige Standardfehler sind zu klein, also Ihr -Statistiken sind zu groß und Sie werden zu viel ablehnen. Verwenden Sie eine echte IV-Implementierung:
from linearmodels.iv import IV2SLS
import pandas as pd
def iv_regression(df, dep_var, endog_var, instruments, controls=None):
"""2SLS with correct generated-regressor standard errors."""
y = df[dep_var]
endog = df[[endog_var]]
instr = df[instruments]
const = pd.Series(1, index=df.index, name="const")
exog = pd.concat([const, df[controls]], axis=1) if controls else const
res = IV2SLS(dependent=y, exog=exog, endog=endog,
instruments=instr).fit(cov_type="robust")
print(res.summary)
return res
Das Experiment: OLS-Gamma versus 2SLS-Gamma

Die getestete Regression ist die Permanent-Impact-Anpassung aus dem Almgren-Chriss-Artikel:
ist nach dem obigen Gleichzeitigkeitsargument endogen. Das Instrument sind Ihre eigenen Ausführungen im Fenster: Ihre Maker-Ausfüllungen werden durch Ihren eigenen Angebotsplan und Ihre Bestandspolitik ausgelöst, nicht durch die Preisentwicklung des Marktes, sodass sie eine Quelle für Auftragsflussschwankungen sind, die plausibel nicht mit der Momentum-Reaktionskomponente des Fehlers korrelieren. Die Ausschlussbeschränkung – dass sich Ihre Füllungen nur durch ihren Beitrag zum Nettofluss in der Mitte bewegen – ist die Annahme, über die man streiten kann, und sie ist genau dann am schwächsten, wenn Ihr Zitat selbst signalgesteuert ist. Wenn Ihre Kurse auf einer kurzfristigen Preisvorhersage beruhen, ist das Instrument verunreinigt und dieser Entwurf schlägt fehl. Füllungen aus einer reinen Bestandsverwaltungs- oder Spread-Capture-Richtlinie sind der klare Fall.
Die Fülldaten stammen aus dem TCA-Datensatz, der in Implementierungsdefizit und DIY-TCA beschrieben wird – demselben Protokoll, das die passende Stichprobe für Slippage-Kurven aus Ihren eigenen Füllungen liefert. Kontrollen: verzögert und erkannte die Volatilität im Fenster.
ols = IV2SLS(dependent=df.dS, exog=df[["const", "dS_lag", "rv"]],
endog=None, instruments=None).fit(cov_type="robust")
tsls = iv_regression(df, "dS", "q_net", ["q_own"], ["dS_lag", "rv"])
Ob sich das gelohnt hat, entscheiden vier Zahlen: die OLS , der 2SLS , die erste Stufe und die Lücke zwischen den beiden Koeffizienten – das ist der Anteil der OLS-Schätzung, der eher eine Impulsreaktion als eine Auswirkung war.
Wenn die erste Stufe unter 10 zurückfällt, ist das Ergebnis: Die eigenen Füllungen sind ein zu kleiner Bruchteil des Nettoflusses bei 5-Minuten-Auflösung, um identifiziert zu werden , und der ehrliche Beitrag ist ein Negativ im Stil von dem ehrlichen Negativ. Ein schwaches Instrument-Negativ ist ein echter Befund – es zeigt Ihnen, dass die Endogenität in der Gamma-Anpassung bei dieser Stichprobengröße und diesem Horizont nicht korrigierbar ist und dass die Kostenschätzungen vor dem Handel auf dem OLS basieren tragen eine unauflösbare Aufwärtstendenz.
Diagnose

Erste Stufe F (schwache Instrumente). Staiger-Stock-Faustregel: . Die kritischen Stock-Yogo-Werte für einen endogenen Regressor sind strenger – für 10 % der maximalen IV-Größe, mit einem Instrument, 19,93 mit zwei, 22,30 mit drei; für 15 % Größe 8,96 / 11,59 / 12,83; für 20 %, 6,66 / 8,75 / 9,54.
Durbin-Wu-Hausman (ist IV überhaupt erforderlich). Wenn OLS konsistent ist, ist es auch effizienter, also testen Sie es, bevor Sie wechseln. Die Residual-Augmentation-Form ist die praktische: Stufe 1 ausführen, behalten , und führen Sie dann die OLS-Strukturregression mit aus als Regressor hinzugefügt. Ein signifikanter Koeffizient auf ist ein Beweis für Endogenität.
def durbin_wu_hausman(df, dep, endog, instruments, controls):
"""Augmented-regression form of the DWH endogeneity test."""
import statsmodels.api as sm
X1 = sm.add_constant(df[instruments + controls])
v_hat = df[endog] - sm.OLS(df[endog], X1).fit().fittedvalues
X2 = sm.add_constant(df[[endog] + controls].assign(v_hat=v_hat))
res = sm.OLS(df[dep], X2).fit(cov_type="HC1")
return res.tvalues["v_hat"], res.pvalues["v_hat"]
Sargan-Hansen (Überidentifizierung). Mit Instrumente, mit denen Sie die gemeinsame Gültigkeit testen können: , wo die ergibt sich aus der Regression der 2SLS-Residuen aller Instrumente und exogenen Kontrollen. Der Vorbehalt ist wichtiger als die Statistik: Sargan erkennt nur Instrumente, die auf unterschiedliche Weise ungültig sind. Wenn jedes Instrument mit derselben ausgelassenen Variablen korreliert ist, besteht der Test sauber und sagt Ihnen nichts.
Instrumente, die in der Krypto-Mikrostruktur existieren

Die ganze Schwierigkeit besteht darin, ein gültiges Instrument zu finden, und die Eigenkapital-Unternehmensfinanzierungs-Bereitschaften (Analystenberichterstattung, Steuerschirme, unerwarteter Cashflow) sind hier wirkungslos. Tatsächlich gelten zwei Klassen:
| Endogene Variable | Instrument | Begründung |
|---|---|---|
| Nettoabnehmerfluss | Ihre eigenen Füllungen | Angetrieben durch Ihre Angebots- und Bestandspolitik, nicht durch die Preisentwicklung des Marktes – konstruktionsbedingt exogen, wenn Ihre Angebote nicht signalbedingt sind |
| Gesamtfluss/Volumen | Börsenmechanische Ströme: Neuausrichtung des Index, Finanzierungs- und Abwicklungsfenster, geplante Liquidationskaskaden | Der Zeitpunkt wird durch Austauschregeln festgelegt, nicht durch den Informationseingang |
Fallstricke

Schwache Instrumente versagen nicht lautstark. Bei einer schwachen ersten Stufe ist 2SLS in endlichen Stichproben ungefähr in Richtung OLS voreingenommen
Bei Sie behalten 25 % des OLS-Bias bei, während Sie eine „kausale“ Schätzung melden. Die Abhilfemaßnahmen sind LIML, das ein besseres Verhalten bei endlichen Stichproben aufweist, oder der Anderson-Rubin-Test, der unabhängig von der Instrumentenstärke gültig ist.
Viele Instrumente sind voreingenommen. . Wirf Verzögerungen von allem hinein um die erste Stufe anzukurbeln leitet den Kostenvoranschlag direkt an OLS zurück. Wenn nicht vernachlässigbar ist, verwenden Sie LIML, Jackknife IV (JIVE) oder eine regulierte erste Stufe.
Die Ausschlussbeschränkung kann nicht getestet werden. Nicht von Sargan, von nichts. Es wird mit Domänenbegründung verteidigt, und die ehrliche Form dieser Verteidigung ist eine Sensitivitätsanalyse: Wie groß wäre ein Verstoß, um die Schlussfolgerung zunichte zu machen?
Imbissbuden

- Die Deflation behebt die Verzerrung durch die Suche. Es trägt nicht zur Verzerrung des Koeffizienten bei. Es handelt sich um unterschiedliche Fehler und sie benötigen unterschiedliche Werkzeuge.
- Der Endogenitätsbias verschwindet nicht mit der Stichprobengröße. Ein enger, gut angelegter und durch Walk-Forward validierter Koeffizient kann immer noch systematisch falsch sein.
- Die Gamma-Regression in der Almgren-Chriss-Kalibrierung ist eine Live-Inhouse-Instanz mit einem benannten Instrument (eigene Füllungen) und den Daten, die bereits von der TCA-Pipeline protokolliert wurden.
- Melden Sie die erste Stufe vor dem 2SLS-Koeffizienten. Unter 10 ist der Koeffizient kein Beweis, sondern ein veröffentlichungsfähiges Ergebnis.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.